Add JSC:RegExp functional tests
[WebKit-https.git] / Source / JavaScriptCore / tests / regexp / RegExpTest.data
1 # Test data file for JavaScriptCore::RegExp functional test.
2 # The format of this file is:
3 # # comment line
4 # /{pattern}/{flags}
5 #  "{string}", {offset}, {return-value}, {match-offset-vector}
6 # Both the pattern and string accept backslash escapes.
7 #
8 /A/
9  "A", 0, 0, (0, 1)
10  "A2", 0, 0, (0, 1)
11 /A2/
12  "A2", 0, 0, (0, 2)
13 /\\u0041/
14  "A", 0, 0, (0, 1)
15 /\\u00412/
16  "A2", 0, 0, (0, 2)
17 /abc/
18  "abc", 0, 0, (0, 3)
19  "xabcy", 0, 1, (1, 4)
20  "ababc", 0, 2, (2, 5)
21  "xbc", 0, -1, (-1, -1)
22  "axc", 0, -1, (-1, -1)
23  "abx", 0, -1, (-1, -1)
24  "b", 0, -1, (-1, -1)
25 /a|ab/
26  "abc", 0, 0, (0, 1)
27 /(a|d|q|)x/i
28  "bcaDxqy", 0, 3, (3, 5, 3, 4)
29 /(a|(e|q))(x|y)/
30  "bcaddxqy", 0, 6, (6, 8, 6, 7, 6, 7, 7, 8)
31 /a*b/
32  "aaadaabaaa", 0, 4, (4, 7)
33  "xxx", 0, -1, (4, 4)
34 /[^abc]def[abc]+/
35  "abxdefbb", 0, 2, (2, 8)
36 /(a*)baa/
37  "ccdaaabaxaabaa", 0, 9, (9, 14, 9, 11)
38  "aabaa", 0, 0, (0, 5, 0, 2)
39 /q(a|b)*q/
40  "xxqababqyy", 0, 2, (2, 8, 6, 7)
41 /(a(.|[^d])c)*/
42  "adcaxc", 0, 0, (0, 6, 3, 6, 4, 5)
43 /(a*)b\\1/
44  "abaaaxaabaayy", 0, 0, (0, 3, 0, 1)
45  "cccdaaabaxaabaayy", 0, 6, (6, 9, 6, 7)
46  "cccdaaabqxaabaayy", 0, 7, (7, 8, 7, 7)
47 /x1g/
48  "x1g", 0, 0, (0, 3)
49 /^x/
50  "x412", 0, 0, (0, 1)
51 /\\u001g/
52  "u001g", 0, 0, (0, 5)
53 /34/g
54  "343443444", 0, 0, (0, 2)
55  "343443444", 2, 2, (2, 4)
56  "343443444", 4, 5, (5, 7)
57  "343443444", 7, -1, (-1, -1)
58 /\\d{1}/g
59  "123456abcde7890", 0, 0, (0, 1)
60  "123456abcde7890", 1, 1, (1, 2)
61  "123456abcde7890", 2, 2, (2, 3)
62  "123456abcde7890", 3, 3, (3, 4)
63  "123456abcde7890", 4, 4, (4, 5)
64  "123456abcde7890", 5, 5, (5, 6)
65  "123456abcde7890", 6, 11, (11, 12)
66  "123456abcde7890", 12, 12, (12, 13)
67  "123456abcde7890", 13, 13, (13, 14)
68  "123456abcde7890", 14, 14, (14, 15)
69  "123456abcde7890", 15, -1, (-1, -1)
70 /\\d{2}/g
71  "123456abcde7890", 0, 0, (0, 2)
72  "123456abcde7890", 2, 2, (2, 4)
73  "123456abcde7890", 4, 4, (4, 6)
74  "123456abcde7890", 6, 11, (11, 13)
75  "123456abcde7890", 13, 13, (13, 15)
76  "123456abcde7890", 15, -1, (-1, -1)
77 /\\D{2}/g
78  "123456abcde7890", 0, 6, (6, 8)
79  "123456abcde7890", 8, 8, (8, 10)
80  "123456abcde7890", 10, -1, (-1, -1)
81 /([\\d]{5})([-\\ ]?[\\d]{4})?$/
82  "Boston, Mass. 02134", 0, 14, (14, 19, 14, 19, -1, -1)
83 /l/
84  "hello", 0, 2, (2, 3)
85  "hello", 3, 3, (3, 4)
86  "hello", 4, -1, (-1, -1)
87 /\\s/g
88  "x, x, x, x", 0, 2, (2, 3)
89  "x, x, x, x", 3, 5, (5, 6)
90  "x, x, x, x", 6, 8, (8, 9)
91  "x, x, x, x", 9, -1, (-1, -1)
92 /((a)|(ab))((c)|(bc))/
93  "abc", 0, 0, (0, 3, 0, 1, 0, 1, -1, -1, 1, 3, -1, -1, 1, 3)
94 /a[a-z]{2,4}/
95  "abcdefghi", 0, 0, (0, 5)
96 /a[a-z]{2,4}?/
97  "abcdefghi", 0, 0, (0, 3)
98 /(aa|aabaac|ba|b|c)*/
99  "aabaac", 0, 0, (0, 4, 2, 4)
100 /^(a+)\\1*,\\1+$/
101  "aaaaaaaaaa,aaaaaaaaaaaaaaa", 0, 0, (0, 26, 0, 5)
102 /(z)((a+)?(b+)?(c))*/
103  "zaacbbbcac", 0, 0, (0, 10, 0, 1, 8, 10, 8, 9, -1, -1, 9, 10)
104 /(a*)*/
105  "b", 0, 0, (0, 0, -1, -1)
106  "ab", 0, 0, (0, 1, 0, 1)
107 /(a*)b\\1+/
108  "baaaac", 0, 0, (0, 1, 0, 0)
109 /(?=(a+))/
110  "baaabac", 0, 1, (1, 1, 1, 4)
111 /(?=(a+))a*b\\1/
112  "baaabac", 0, 3, (3, 6, 3, 4)
113 /(.*?)a(?!(a+)b\\2c)\\2(.*)/
114  "baaabaac", 0, 0, (0, 8, 0, 2, -1, -1, 3, 8)
115 /\\w\\s\\w/g
116  "a b c d e", 0, 0, (0, 3)
117  "a b c d e", 3, 4, (4, 7)
118  "a b c d e", 7, -1, (-1, -1)
119 /\\d\\d\\d/g
120  "12345678", 0, 0, (0, 3)
121  "12345678", 3, 3, (3, 6)
122  "12345678", 6, -1, (-1, -1)
123 /abc/gi
124  "AbcaBcabC", 0, 0, (0, 3)
125  "AbcaBcabC", 3, 3, (3, 6)
126  "AbcaBcabC", 6, 6, (6, 9)
127  "AbcaBcabC", 9, -1, (-1, -1)
128 /abc/i
129  "AbcaBcabC", 0, 0, (0, 3)
130  "ABC", 0, 0, (0, 3)
131  "XABCY", 0, 1, (1, 4)
132  "ABABC", 0, 2, (2, 5)
133  "XBC", 0, -1, (-1, -1)
134  "AXC", 0, -1, (-1, -1)
135  "ABX", 0, -1, (-1, -1)
136  "aaxabxbaxbbx", 0, -1, (-1, -1)
137 /ab*c/
138  "abc", 0, 0, (0, 3)
139 /ab*bc/
140  "abc", 0, 0, (0, 3)
141  "abbc", 0, 0, (0, 4)
142  "abbbbc", 0, 0, (0, 6)
143 /.{1}/
144  "abbbbc", 0, 0, (0, 1)
145 /.{3,4}/
146  "abbbbc", 0, 0, (0, 4)
147 /ab{0,}bc/
148  "abbbbc", 0, 0, (0, 6)
149 /ab+bc/
150  "abbc", 0, 0, (0, 4)
151  "abbbbc", 0, 0, (0, 6)
152  "abc", 0, -1, (0, 9)
153  "abq", 0, -1, (0, 9)
154  "abc", 0, -1, (0, -1)
155  "abq", 0, -1, (0, -1)
156 /ab{1,}bc/
157  "abbbbc", 0, 0, (0, 6)
158  "abq", 0, -1, (0, 9)
159 /ab{1,3}bc/
160  "abbbbc", 0, 0, (0, 6)
161  "abbbc", 0, 0, (0, 5)
162  "abbc", 0, 0, (0, 4)
163  "abc", 0, -1, (0, -1)
164  "abbbbbc", 0, -1, (4, -1)
165 /ab{3,4}bc/
166  "abbbbc", 0, 0, (0, 6)
167 /ab?bc/
168  "abbc", 0, 0, (0, 4)
169  "abc", 0, 0, (0, 3)
170  "abbbbc", 0, -1, (4, 9)
171 /ab{0,1}bc/
172  "abc", 0, 0, (0, 3)
173 /ab?c/
174  "abc", 0, 0, (0, 3)
175 /ab{0,1}c/
176  "abc", 0, 0, (0, 3)
177 /^abc$/
178  "abc", 0, 0, (0, 3)
179  "abcc", 0, -1, (-1, -1)
180  "aabc", 0, -1, (-1, -1)
181  "abbbbc", 0, -1, (-1, -1)
182  "qqq\nabc", 0, -1, (-1, -1)
183  "abc\nzzz", 0, -1, (-1, -1)
184  "qqq\nabc\nzzz", 0, -1, (-1, -1)
185 /^abc/
186  "abcc", 0, 0, (0, 3)
187  "abcdefghi", 0, 0, (0, 3)
188  "abc", 0, 0, (0, 3)
189  "xyzabc", 0, -1, (-1, -1)
190 /abc$/
191  "aabc", 0, 1, (1, 4)
192  "aabcd", 0, -1, (-1, -1)
193  "abc", 0, 0, (0, 3)
194  "abc\n", 0, -1, (-1, -1)
195  "abc\ndef", 0, -1, (-1, -1)
196 /^/
197  "abc", 0, 0, (0, 0)
198  "test", 0, 0, (0, 0)
199 /$/
200  "abc", 0, 3, (3, 3)
201  "a\nb\n", 0, 4, (4, 4)
202  "b\na\n", 0, 4, (4, 4)
203  "b\na", 0, 3, (3, 3)
204  "xxx", 0, 3, (3, 3)
205  "xxxx", 0, 4, (4, 4)
206 /a.c/
207  "abc", 0, 0, (0, 3)
208  "axc", 0, 0, (0, 3)
209 /a.*c/
210  "axyzc", 0, 0, (0, 5)
211  "axyzd", 0, -1, (4, 10)
212 /a[bc]d/
213  "abd", 0, 0, (0, 3)
214  "abc", 0, -1, (-1, -1)
215  "axyzd", 0, -1, (-1, -1)
216 /a[b-d]e/
217  "ace", 0, 0, (0, 3)
218  "abd", 0, -1, (-1, -1)
219 /a[b-d]/
220  "aac", 0, 1, (1, 3)
221 /a[-b]/
222  "a-", 0, 0, (0, 2)
223 /a[b-]/
224  "a-", 0, 0, (0, 2)
225 /a]/
226  "a]", 0, 0, (0, 2)
227 /a[^bc]d/
228  "aed", 0, 0, (0, 3)
229  "abd", 0, -1, (-1, -1)
230 /a[^-b]c/
231  "adc", 0, 0, (0, 3)
232  "a-c", 0, -1, (-1, -1)
233 /\\ba\\b/
234  "a-", 0, 0, (0, 1)
235  "-a", 0, 1, (1, 2)
236  "-a-", 0, 1, (1, 2)
237 /\\By\\b/
238  "xy", 0, 1, (1, 2)
239 /\\by\\B/
240  "yz", 0, 0, (0, 1)
241 /\\By\\B/
242  "xyz", 0, 1, (1, 2)
243 /a\\Sb/
244  "a-b", 0, 0, (0, 3)
245  "a\tb a b a-b", 0, 8, (8, 11)
246  "a b", 0, -1, (-1, -1)
247 /\\d/
248  "1", 0, 0, (0, 1)
249  "-", 0, -1, (-1, -1)
250  "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\f\n\r\t\v~`!@#$%^&*()-+={[}]|\\:;'<,>./? \"", 0, -1, (-1, -1)
251  "ab1cd", 0, 2, (2, 3)
252  "ab2cd", 0, 2, (2, 3)
253  "ab3cd", 0, 2, (2, 3)
254  "ab4cd", 0, 2, (2, 3)
255  "ab5cd", 0, 2, (2, 3)
256  "ab6cd", 0, 2, (2, 3)
257  "ab7cd", 0, 2, (2, 3)
258  "ab8cd", 0, 2, (2, 3)
259  "ab9cd", 0, 2, (2, 3)
260  "ab0cd", 0, 2, (2, 3)
261  "\u01003", 0, 1, (1, 2)
262 /\\D/
263  "-", 0, 0, (0, 1)
264  "1", 0, -1, (-1, -1)
265  "1234567890", 0, -1, (-1, -1)
266  "12_34", 0, 2, (2, 3)
267  "12a34", 0, 2, (2, 3)
268  "12b34", 0, 2, (2, 3)
269  "1X2", 0, 1, (1, 2)
270  "1\u01002", 0, 1, (1, 2)
271 /[\\w]/
272  "a", 0, 0, (0, 1)
273  "-", 0, -1, (-1, -1)
274 /[\\W]/
275  "-", 0, 0, (0, 1)
276  "a", 0, -1, (-1, -1)
277 /a[\\S]b/
278  "a-b", 0, 0, (0, 3)
279  "a b", 0, -1, (-1, -1)
280 /[\\d]/
281  "1", 0, 0, (0, 1)
282  "-", 0, -1, (-1, -1)
283 /[\\D]/
284  "-", 0, 0, (0, 1)
285  "1", 0, -1, (-1, -1)
286 /ab|cd/
287  "abc", 0, 0, (0, 2)
288  "abcd", 0, 0, (0, 2)
289 /()ef/
290  "def", 0, 1, (1, 3, 1, 1)
291 /a\\(b/
292  "a(b", 0, 0, (0, 3)
293 /a\\(*b/
294  "ab", 0, 0, (0, 2)
295  "a((b", 0, 0, (0, 4)
296 /a\\\\b/
297  "a\\b", 0, 0, (0, 3)
298  "a\b", 0, -1, (-1, -1)
299 /((a))/
300  "abc", 0, 0, (0, 1, 0, 1, 0, 1)
301 /(a)b(c)/
302  "abc", 0, 0, (0, 3, 0, 1, 2, 3)
303 /a+b+c/
304  "aabbabc", 0, 4, (4, 7)
305 /a{1,}b{1,}c/
306  "aabbabc", 0, 4, (4, 7)
307 /a.+?c/
308  "abcabc", 0, 0, (0, 3)
309 /(a+|b)*/
310  "ab", 0, 0, (0, 2, 1, 2)
311 /(a+|b){0,}/
312  "ab", 0, 0, (0, 2, 1, 2)
313 /(a+|b)+/
314  "ab", 0, 0, (0, 2, 1, 2)
315 /(a+|b){1,}/
316  "ab", 0, 0, (0, 2, 1, 2)
317 /(a+|b)?/
318  "ab", 0, 0, (0, 1, 0, 1)
319 /(a+|b){0,1}/
320  "ab", 0, 0, (0, 1, 0, 1)
321 /[^ab]*/
322  "cde", 0, 0, (0, 3)
323 /([abc])*d/
324  "abbbcd", 0, 0, (0, 6, 4, 5)
325 /([abc])*bcd/
326  "abcd", 0, 0, (0, 4, 0, 1)
327 /a|b|c|d|e/
328  "e", 0, 0, (0, 1)
329 /(a|b|c|d|e)f/
330  "ef", 0, 0, (0, 2, 0, 1)
331 /abcd*efg/
332  "abcdefg", 0, 0, (0, 7)
333 /ab*/
334  "xabyabbbz", 0, 1, (1, 3)
335  "xayabbbz", 0, 1, (1, 2)
336 /(ab|cd)e/
337  "abcde", 0, 2, (2, 5, 2, 4)
338 /[abhgefdc]ij/
339  "hij", 0, 0, (0, 3)
340 /(abc|)ef/
341  "abcdef", 0, 4, (4, 6, 4, 4)
342 /(a|b)c*d/
343  "abcd", 0, 1, (1, 4, 1, 2)
344 /(ab|ab*)bc/
345  "abc", 0, 0, (0, 3, 0, 1)
346 /a([bc]*)c*/
347  "abc", 0, 0, (0, 3, 1, 3)
348 /a([bc]*)(c*d)/
349  "abcd", 0, 0, (0, 4, 1, 3, 3, 4)
350 /a([bc]+)(c*d)/
351  "abcd", 0, 0, (0, 4, 1, 3, 3, 4)
352 /a([bc]*)(c+d)/
353  "abcd", 0, 0, (0, 4, 1, 2, 2, 4)
354 /a[bcd]*dcdcde/
355  "adcdcde", 0, 0, (0, 7)
356 /(ab|a)b*c/
357  "abc", 0, 0, (0, 3, 0, 2)
358 /((a)(b)c)(d)/
359  "abcd", 0, 0, (0, 4, 0, 3, 0, 1, 1, 2, 3, 4)
360 /[a-zA-Z_][a-zA-Z0-9_]*/
361  "alpha", 0, 0, (0, 5)
362 /^a(bc+|b[eh])g|.h$/
363  "abh", 0, 1, (1, 3, -1, -1)
364 /(bc+d$|ef*g.|h?i(j|k))/
365  "effgz", 0, 0, (0, 5, 0, 5, -1, -1)
366  "ij", 0, 0, (0, 2, 0, 2, 1, 2)
367  "reffgz", 0, 1, (1, 6, 1, 6, -1, -1)
368  "effg", 0, -1, (3, 10, -1, -1, -1, -1)
369  "bcdd", 0, -1, (3, 10, -1, -1, -1, -1)
370  "effg", 0, -1, (3, -1, -1, -1, -1, -1)
371  "bcdd", 0, -1, (3, -1, -1, -1, -1, -1)
372 /((((((((((a))))))))))/
373  "a", 0, 0, (0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1)
374  "a!", 0, 0, (0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1)
375 /((((((((((a))))))))))\\10/
376  "aa", 0, 0, (0, 2, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1)
377 /(((((((((a)))))))))/
378  "a", 0, 0, (0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1)
379 /(.*)c(.*)/
380  "abcde", 0, 0, (0, 5, 0, 2, 3, 5)
381 /abcd/
382  "abcd", 0, 0, (0, 4)
383 /a(bc)d/
384  "abcd", 0, 0, (0, 4, 1, 3)
385 /a[-]?c/
386  "ac", 0, 0, (0, 2)
387 /(abc)\\1/
388  "abcabc", 0, 0, (0, 6, 0, 3)
389 /([a-c]*)\\1/
390  "abcabc", 0, 0, (0, 6, 0, 3)
391 /(a)|\\1/
392  "a", 0, 0, (0, 1, 0, 1)
393  "x", 0, 0, (0, 0, -1, -1)
394  "ab", 0, 0, (0, 1, 0, 1)
395 /(([a-c])b*?\\2)*/
396  "ababbbcbc", 0, 0, (0, 5, 3, 5, 3, 4)
397 /(([a-c])b*?\\2){3}/
398  "ababbbcbc", 0, 0, (0, 9, 6, 9, 6, 7)
399 /ab*c/i
400  "ABC", 0, 0, (0, 3)
401 /ab*bc/i
402  "ABC", 0, 0, (0, 3)
403  "ABBC", 0, 0, (0, 4)
404 /ab*?bc/i
405  "ABBBBC", 0, 0, (0, 6)
406 /ab{0,}?bc/i
407  "ABBBBC", 0, 0, (0, 6)
408 /ab+?bc/i
409  "ABBC", 0, 0, (0, 4)
410 /ab+bc/i
411  "ABBBBC", 0, 0, (0, 6)
412  "ABC", 0, -1, (0, 10)
413  "ABQ", 0, -1, (0, 10)
414  "ABC", 0, -1, (0, -1)
415  "ABQ", 0, -1, (0, -1)
416 /ab{1,}?bc/i
417  "ABBBBC", 0, 0, (0, 6)
418 /ab{1,3}?bc/i
419  "ABBBBC", 0, 0, (0, 6)
420 /ab{3,4}?bc/i
421  "ABBBBC", 0, 0, (0, 6)
422 /ab??bc/i
423  "ABBC", 0, 0, (0, 4)
424  "ABC", 0, 0, (0, 3)
425  "ABBBBC", 0, -1, (4, 10)
426 /ab{0,1}?bc/i
427  "ABC", 0, 0, (0, 3)
428 /ab??c/i
429  "ABC", 0, 0, (0, 3)
430 /ab{0,1}?c/i
431  "ABC", 0, 0, (0, 3)
432 /^abc$/i
433  "ABC", 0, 0, (0, 3)
434  "ABCC", 0, -1, (-1, -1)
435  "AABC", 0, -1, (-1, -1)
436  "ABBBBC", 0, -1, (-1, -1)
437 /^abc/i
438  "ABCC", 0, 0, (0, 3)
439 /abc$/i
440  "AABC", 0, 1, (1, 4)
441 /^/i
442  "ABC", 0, 0, (0, 0)
443 /$/i
444  "ABC", 0, 3, (3, 3)
445 /a.c/i
446  "ABC", 0, 0, (0, 3)
447  "AXC", 0, 0, (0, 3)
448 /a.*?c/i
449  "AXYZC", 0, 0, (0, 5)
450  "ABCABC", 0, 0, (0, 3)
451 /a[bc]d/i
452  "ABD", 0, 0, (0, 3)
453  "ABC", 0, -1, (-1, -1)
454 /a[b-d]e/i
455  "ACE", 0, 0, (0, 3)
456  "ABD", 0, -1, (-1, -1)
457  "ABC", 0, -1, (-1, -1)
458 /a[b-d]/i
459  "AAC", 0, 1, (1, 3)
460 /a[-b]/i
461  "A-", 0, 0, (0, 2)
462 /a[b-]/i
463  "A-", 0, 0, (0, 2)
464 /a]/i
465  "A]", 0, 0, (0, 2)
466 /a[^bc]d/i
467  "AED", 0, 0, (0, 3)
468  "ABD", 0, -1, (-1, -1)
469 /a[^-b]c/i
470  "ADC", 0, 0, (0, 3)
471  "A-C", 0, -1, (-1, -1)
472  "ABD", 0, -1, (-1, -1)
473 /ab|cd/i
474  "ABC", 0, 0, (0, 2)
475  "ABCD", 0, 0, (0, 2)
476 /()ef/i
477  "DEF", 0, 1, (1, 3, 1, 1)
478 /a\\(b/i
479  "A(B", 0, 0, (0, 3)
480 /a\\(*b/i
481  "AB", 0, 0, (0, 2)
482  "A((B", 0, 0, (0, 4)
483 /a\\\\b/i
484  "A\\B", 0, 0, (0, 3)
485  "AB", 0, -1, (-1, -1)
486 /((a))/i
487  "ABC", 0, 0, (0, 1, 0, 1, 0, 1)
488 /(a)b(c)/i
489  "ABC", 0, 0, (0, 3, 0, 1, 2, 3)
490 /a+b+c/i
491  "AABBABC", 0, 4, (4, 7)
492 /a{1,}b{1,}c/i
493  "AABBABC", 0, 4, (4, 7)
494 /a.+?c/i
495  "ABCABC", 0, 0, (0, 3)
496 /a.{0,5}?c/i
497  "ABCABC", 0, 0, (0, 3)
498 /(a+|b)*/i
499  "AB", 0, 0, (0, 2, 1, 2)
500 /(a+|b){0,}/i
501  "AB", 0, 0, (0, 2, 1, 2)
502 /(a+|b)+/i
503  "AB", 0, 0, (0, 2, 1, 2)
504 /(a+|b){1,}/i
505  "AB", 0, 0, (0, 2, 1, 2)
506 /(a+|b)?/i
507  "AB", 0, 0, (0, 1, 0, 1)
508 /(a+|b){0,1}/i
509  "AB", 0, 0, (0, 1, 0, 1)
510 /(a+|b){0,1}?/i
511  "AB", 0, 0, (0, 0, -1, -1)
512 /[^ab]*/i
513  "CDE", 0, 0, (0, 3)
514 /([abc])*d/i
515  "ABBBCD", 0, 0, (0, 6, 4, 5)
516 /([abc])*bcd/i
517  "ABCD", 0, 0, (0, 4, 0, 1)
518 /a|b|c|d|e/i
519  "E", 0, 0, (0, 1)
520 /(a|b|c|d|e)f/i
521  "EF", 0, 0, (0, 2, 0, 1)
522 /abcd*efg/i
523  "ABCDEFG", 0, 0, (0, 7)
524 /ab*/i
525  "XABYABBBZ", 0, 1, (1, 3)
526  "XAYABBBZ", 0, 1, (1, 2)
527 /(ab|cd)e/i
528  "ABCDE", 0, 2, (2, 5, 2, 4)
529 /[abhgefdc]ij/i
530  "HIJ", 0, 0, (0, 3)
531 /(abc|)ef/i
532  "ABCDEF", 0, 4, (4, 6, 4, 4)
533 /(a|b)c*d/i
534  "ABCD", 0, 1, (1, 4, 1, 2)
535 /(ab|ab*)bc/i
536  "ABC", 0, 0, (0, 3, 0, 1)
537 /a([bc]*)c*/i
538  "ABC", 0, 0, (0, 3, 1, 3)
539 /a([bc]*)(c*d)/i
540  "ABCD", 0, 0, (0, 4, 1, 3, 3, 4)
541 /a([bc]+)(c*d)/i
542  "ABCD", 0, 0, (0, 4, 1, 3, 3, 4)
543 /a([bc]*)(c+d)/i
544  "ABCD", 0, 0, (0, 4, 1, 2, 2, 4)
545 /a[bcd]*dcdcde/i
546  "ADCDCDE", 0, 0, (0, 7)
547 /(ab|a)b*c/i
548  "ABC", 0, 0, (0, 3, 0, 2)
549 /((a)(b)c)(d)/i
550  "ABCD", 0, 0, (0, 4, 0, 3, 0, 1, 1, 2, 3, 4)
551 /[a-zA-Z_][a-zA-Z0-9_]*/i
552  "ALPHA", 0, 0, (0, 5)
553 /^a(bc+|b[eh])g|.h$/i
554  "ABH", 0, 1, (1, 3, -1, -1)
555 /(bc+d$|ef*g.|h?i(j|k))/i
556  "EFFGZ", 0, 0, (0, 5, 0, 5, -1, -1)
557  "IJ", 0, 0, (0, 2, 0, 2, 1, 2)
558  "REFFGZ", 0, 1, (1, 6, 1, 6, -1, -1)
559  "EFFG", 0, -1, (3, 10, -1, -1, -1, -1)
560  "BCDD", 0, -1, (3, 10, -1, -1, -1, -1)
561  "ADCDCDE", 0, -1, (6, -1, -1, -1, -1, -1)
562  "EFFG", 0, -1, (3, -1, -1, -1, -1, -1)
563  "BCDD", 0, -1, (3, -1, -1, -1, -1, -1)
564 /((((((((((a))))))))))/i
565  "A", 0, 0, (0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1)
566  "A!", 0, 0, (0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1)
567 /((((((((((a))))))))))\\10/i
568  "AA", 0, 0, (0, 2, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1)
569 /(((((((((a)))))))))/i
570  "A", 0, 0, (0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1)
571 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
572  "A", 0, 0, (0, 1, 0, 1)
573 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
574  "C", 0, 0, (0, 1, 0, 1)
575 /(.*)c(.*)/i
576  "ABCDE", 0, 0, (0, 5, 0, 2, 3, 5)
577 /abcd/i
578  "ABCD", 0, 0, (0, 4)
579 /a(bc)d/i
580  "ABCD", 0, 0, (0, 4, 1, 3)
581 /a[-]?c/i
582  "AC", 0, 0, (0, 2)
583 /(abc)\\1/i
584  "ABCABC", 0, 0, (0, 6, 0, 3)
585  "abcabc", 0, 0, (0, 6, 0, 3)
586  "ABCabc", 0, 0, (0, 6, 0, 3)
587  "abcABC", 0, 0, (0, 6, 0, 3)
588 /([a-c]*)\\1/i
589  "ABCABC", 0, 0, (0, 6, 0, 3)
590 /a(?!b)./
591  "abad", 0, 2, (2, 4)
592 /a(?=d)./
593  "abad", 0, 2, (2, 4)
594 /a(?=c|d)./
595  "abad", 0, 2, (2, 4)
596 /a(?:b|c|d)(.)/
597  "ace", 0, 0, (0, 3, 2, 3)
598 /a(?:b|c|d)*(.)/
599  "ace", 0, 0, (0, 3, 2, 3)
600 /a(?:b|c|d)+?(.)/
601  "ace", 0, 0, (0, 3, 2, 3)
602  "acdbcdbe", 0, 0, (0, 3, 2, 3)
603 /a(?:b|c|d)+(.)/
604  "acdbcdbe", 0, 0, (0, 8, 7, 8)
605 /a(?:b|c|d){2}(.)/
606  "acdbcdbe", 0, 0, (0, 4, 3, 4)
607 /a(?:b|c|d){4,5}(.)/
608  "acdbcdbe", 0, 0, (0, 7, 6, 7)
609 /a(?:b|c|d){4,5}?(.)/
610  "acdbcdbe", 0, 0, (0, 6, 5, 6)
611 /((foo)|(bar))*/
612  "foobar", 0, 0, (0, 6, 3, 6, -1, -1, 3, 6)
613 /a(?:b|c|d){6,7}(.)/
614  "acdbcdbe", 0, 0, (0, 8, 7, 8)
615 /a(?:b|c|d){6,7}?(.)/
616  "acdbcdbe", 0, 0, (0, 8, 7, 8)
617 /a(?:b|c|d){5,6}(.)/
618  "acdbcdbe", 0, 0, (0, 8, 7, 8)
619 /a(?:b|c|d){5,6}?(.)/
620  "acdbcdbe", 0, 0, (0, 7, 6, 7)
621 /a(?:b|c|d){5,7}(.)/
622  "acdbcdbe", 0, 0, (0, 8, 7, 8)
623 /a(?:b|c|d){5,7}?(.)/
624  "acdbcdbe", 0, 0, (0, 7, 6, 7)
625 /a(?:b|(c|e){1,2}?|d)+?(.)/
626  "ace", 0, 0, (0, 3, 1, 2, 2, 3)
627 /^(.+)?B/
628  "AB", 0, 0, (0, 2, 0, 1)
629 /^([^a-z])|(\\^)$/
630  ".", 0, 0, (0, 1, 0, 1, -1, -1)
631 /^[<>]&/
632  "<&OUT", 0, 0, (0, 2)
633 /((a{4})+)/
634  "aaaaaaaaa", 0, 0, (0, 8, 0, 8, 4, 8)
635 /(((aa){2})+)/
636  "aaaaaaaaaa", 0, 0, (0, 8, 0, 8, 4, 8, 6, 8)
637 /(((a{2}){2})+)/
638  "aaaaaaaaaa", 0, 0, (0, 8, 0, 8, 4, 8, 6, 8)
639 /(?:(f)(o)(o)|(b)(a)(r))*/
640  "foobar", 0, 0, (0, 6, -1, -1, -1, -1, -1, -1, 3, 4, 4, 5, 5, 6)
641 /(?:..)*a/
642  "aba", 0, 0, (0, 3)
643 /(?:..)*?a/
644  "aba", 0, 0, (0, 1)
645 /^(?:b|a(?=(.)))*\\1/
646  "abc", 0, 0, (0, 2, -1, -1)
647 /^(){3,5}/
648  "abc", 0, 0, (0, 0, 0, 0)
649 /^(a+)*ax/
650  "aax", 0, 0, (0, 3, 0, 1)
651 /^((a|b)+)*ax/
652  "aax", 0, 0, (0, 3, 0, 1, 0, 1)
653 /^((a|bc)+)*ax/
654  "aax", 0, 0, (0, 3, 0, 1, 0, 1)
655 /(a|x)*ab/
656  "cab", 0, 1, (1, 3, -1, -1)
657 /(a)*ab/
658  "cab", 0, 1, (1, 3, -1, -1)
659 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
660  "cabbbb", 0, 0, (0, 6)
661 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
662  "caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", 0, 0, (0, 41)
663 /(ab)\\d\\1/i
664  "Ab4ab", 0, 0, (0, 5, 0, 2)
665  "ab4Ab", 0, 0, (0, 5, 0, 2)
666 /foo\\w*\\d{4}baz/
667  "foobar1234baz", 0, 0, (0, 13)
668 /x(~~)*(?:(?:F)?)?/
669  "x~~", 0, 0, (0, 3, 1, 3)
670 /(?=(a+?))(\\1ab)/
671  "aaab", 0, 1, (1, 4, 1, 2, 1, 4)
672 /(\\w+:)+/
673  "one:", 0, 0, (0, 4, 0, 4)
674 /([\\w:]+::)?(\\w+)$/
675  "abcd", 0, 0, (0, 4, -1, -1, 0, 4)
676  "xy:z:::abcd", 0, 0, (0, 11, 0, 7, 7, 11)
677  "abcd:", 0, -1, (6, 11, -1, -1, -1, -1)
678  "abcd:", 0, -1, (6, -1, -1, -1, -1, -1)
679 /^[^bcd]*(c+)/
680  "aexycd", 0, 0, (0, 5, 4, 5)
681 /(a*)b+/
682  "caab", 0, 1, (1, 4, 1, 3)
683 /([[:]+)/
684  "a:[b]:", 0, 1, (1, 3, 1, 3)
685 /([[=]+)/
686  "a=[b]=", 0, 1, (1, 3, 1, 3)
687 /([[.]+)/
688  "a.[b].", 0, 1, (1, 3, 1, 3)
689 /$/m
690  "a\nb\n", 0, 1, (1, 1)
691  "b\na\n", 0, 1, (1, 1)
692  "b\na", 0, 1, (1, 1)
693 /a$/
694  "b\na", 0, 2, (2, 3)
695  "a\nb\n", 0, -1, (-1, -1)
696  "aaab", 0, -1, (-1, -1)
697 /a$/m
698  "a\nb\n", 0, 0, (0, 1)
699  "b\na\n", 0, 2, (2, 3)
700  "b\na", 0, 2, (2, 3)
701 /aa$/
702  "b\naa", 0, 2, (2, 4)
703  "aa\nb\n", 0, -1, (-1, -1)
704  "ac\nb\n", 0, -1, (-1, -1)
705  "b\nac\n", 0, -1, (-1, -1)
706  "b\nac", 0, -1, (-1, -1)
707  "ca\nb\n", 0, -1, (-1, -1)
708  "b\nca\n", 0, -1, (-1, -1)
709  "b\nca", 0, -1, (-1, -1)
710 /aa$/m
711  "aa\nb\n", 0, 0, (0, 2)
712  "b\naa\n", 0, 2, (2, 4)
713  "b\naa", 0, 2, (2, 4)
714  "ac\nb\n", 0, -1, (-1, -1)
715  "b\nac\n", 0, -1, (-1, -1)
716  "b\nac", 0, -1, (-1, -1)
717  "ca\nb\n", 0, -1, (-1, -1)
718  "b\nca\n", 0, -1, (-1, -1)
719  "b\nca", 0, -1, (-1, -1)
720 /ab$/
721  "b\nab", 0, 2, (2, 4)
722  "ab\nb\n", 0, -1, (-1, -1)
723  "ac\nb\n", 0, -1, (-1, -1)
724  "b\nac\n", 0, -1, (-1, -1)
725  "b\nac", 0, -1, (-1, -1)
726  "ca\nb\n", 0, -1, (-1, -1)
727  "b\nca\n", 0, -1, (-1, -1)
728  "b\nca", 0, -1, (-1, -1)
729 /ab$/m
730  "ab\nb\n", 0, 0, (0, 2)
731  "b\nab\n", 0, 2, (2, 4)
732  "b\nab", 0, 2, (2, 4)
733  "ac\nb\n", 0, -1, (-1, -1)
734  "b\nac\n", 0, -1, (-1, -1)
735  "b\nac", 0, -1, (-1, -1)
736  "ca\nb\n", 0, -1, (-1, -1)
737  "b\nca\n", 0, -1, (-1, -1)
738  "b\nca", 0, -1, (-1, -1)
739 /abb$/
740  "b\nabb", 0, 2, (2, 5)
741  "abb\nb\n", 0, -1, (-1, -1)
742  "ac\nb\n", 0, -1, (-1, -1)
743  "b\nac\n", 0, -1, (-1, -1)
744  "b\nac", 0, -1, (-1, -1)
745  "ca\nb\n", 0, -1, (-1, -1)
746  "b\nca\n", 0, -1, (-1, -1)
747  "b\nca", 0, -1, (-1, -1)
748 /abb$/m
749  "abb\nb\n", 0, 0, (0, 3)
750  "b\nabb\n", 0, 2, (2, 5)
751  "b\nabb", 0, 2, (2, 5)
752  "ac\nb\n", 0, -1, (-1, -1)
753  "b\nac\n", 0, -1, (-1, -1)
754  "b\nac", 0, -1, (-1, -1)
755  "ca\nb\n", 0, -1, (-1, -1)
756  "b\nca\n", 0, -1, (-1, -1)
757  "b\nca", 0, -1, (-1, -1)
758 /(^|x)(c)/
759  "ca", 0, 0, (0, 1, 0, 0, 0, 1)
760 /foo.bart/
761  "foo.bart", 0, 0, (0, 8)
762 /^d[x][x][x]/m
763  "abcd\ndxxx", 0, 5, (5, 9)
764 /tt+$/
765  "xxxtt", 0, 3, (3, 5)
766 /(\\d+\\.\\d+)/
767  "3.1415926", 0, 0, (0, 9, 0, 9)
768 /\\.c(pp|xx|c)?$/i
769  "IO.c", 0, 2, (2, 4, -1, -1)
770  "Changes", 0, -1, (6, 11, -1, -1)
771 /(\\.c(pp|xx|c)?$)/i
772  "IO.c", 0, 2, (2, 4, 2, 4, -1, -1)
773 /(^|a)b/
774  "ab", 0, 0, (0, 2, 0, 1)
775 /^([ab]*?)(b)?(c)$/
776  "abac", 0, 0, (0, 4, 0, 3, -1, -1, 3, 4)
777 /^(?:.,){2}c/i
778  "a,b,c", 0, 0, (0, 5)
779 /^(.,){2}c/i
780  "a,b,c", 0, 0, (0, 5, 2, 4)
781 /^(?:[^,]*,){2}c/
782  "a,b,c", 0, 0, (0, 5)
783 /^([^,]*,){2}c/
784  "a,b,c", 0, 0, (0, 5, 2, 4)
785 /^([^,]*,){3}d/
786  "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
787 /^([^,]*,){3,}d/
788  "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
789 /^([^,]*,){0,3}d/
790  "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
791 /^([^,]{1,3},){3}d/i
792  "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
793 /^([^,]{1,3},){3,}d/
794  "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
795 /^([^,]{1,3},){0,3}d/
796  "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
797 /^([^,]{1,},){3}d/
798  "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
799 /^([^,]{1,},){3,}d/
800  "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
801 /^([^,]{1,},){0,3}d/
802  "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
803 /^([^,]{0,3},){3}d/i
804  "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
805 /^([^,]{0,3},){3,}d/
806  "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
807 /^([^,]{0,3},){0,3}d/
808  "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
809 /^(a(b)?)+$/
810  "aba", 0, 0, (0, 3, 2, 3, -1, -1)
811 /^(aa(bb)?)+$/
812  "aabbaa", 0, 0, (0, 6, 4, 6, -1, -1)
813 /^.{9}abc.*\\n/m
814  "123\nabcabcabcabc\n", 0, 4, (4, 17)
815 /^(a)?a$/
816  "a", 0, 0, (0, 1, -1, -1)
817 /^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/
818  "aaaaaa", 0, 0, (0, 6, 0, 1, 1, 3, 3, 4, 4, 6)
819  "a", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1)
820  "aa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1)
821  "aaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1)
822  "aaaa", 0, 0, (0, 4, 0, 1, 1, 2, 2, 3, 3, 4)
823  "aaaaa", 0, 0, (0, 5, 0, 1, 1, 3, 3, 4, 4, 5)
824  "aaaaaaa", 0, 0, (0, 7, 0, 1, 1, 3, 3, 6, 6, 7)
825  "aaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1)
826  "aaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1)
827  "aaaaaaaaaa", 0, 0, (0, 10, 0, 1, 1, 3, 3, 6, 6, 10)
828  "aaaaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1)
829  "aaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1)
830  "aaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1)
831  "aaaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1)
832  "aaaaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1)
833  "aaaaaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1)
834 /^(0+)?(?:x(1))?/
835  "x1", 0, 0, (0, 2, -1, -1, 1, 2)
836 /^([0-9a-fA-F]+)(?:x([0-9a-fA-F]+)?)(?:x([0-9a-fA-F]+))?/
837  "012cxx0190", 0, 0, (0, 10, 0, 4, -1, -1, 6, 10)
838 /^(b+?|a){1,2}c/
839  "bbbac", 0, 0, (0, 5, 3, 4)
840  "bbbbac", 0, 0, (0, 6, 4, 5)
841 /((?:aaaa|bbbb)cccc)?/
842  "aaaacccc", 0, 0, (0, 8, 0, 8)
843  "bbbbcccc", 0, 0, (0, 8, 0, 8)
844 /ab{4,5}bc/
845  "abbbbc", 0, -1, (0, 9)
846  "abq", 0, -1, (0, -1)
847  "abbbbc", 0, -1, (0, -1)
848 /a[^]b]c/
849  "a]c", 0, -1, (-1, -1)
850 /\\by\\b/
851  "xy", 0, -1, (-1, -1)
852  "yz", 0, -1, (-1, -1)
853  "xyz", 0, -1, (-1, -1)
854 /\\Ba\\B/
855  "a-", 0, -1, (-1, -1)
856  "-a", 0, -1, (-1, -1)
857  "-a-", 0, -1, (-1, -1)
858 /a\\sb/
859  "a-b", 0, -1, (-1, -1)
860  "a b", 0, 0, (0, 3)
861 /a[\\s]b/
862  "a-b", 0, -1, (-1, -1)
863  "a b", 0, 0, (0, 3)
864 /$b/
865  "b", 0, -1, (-1, -1)
866 /^(ab|cd)e/
867  "abcde", 0, -1, (0, 10, -1, -1)
868 /a[bcd]+dcdcde/
869  "adcdcde", 0, -1, (0, 10)
870  "abcde", 0, -1, (0, -1)
871  "adcdcde", 0, -1, (0, -1)
872 /[k]/
873  "ab", 0, -1, (-1, -1)
874 /((\\3|b)\\2(a)x)+/
875  "aaxabxbaxbbx", 0, 1, (1, 3, 1, 3, 1, 1, 1, 2)
876  "aaaxabaxbaaxbbax", 0, 2, (2, 4, 2, 4, 2, 2, 2, 3)
877 /ab{1,}bc/i
878  "ABQ", 0, -1, (0, 10)
879 /ab{4,5}?bc/i
880  "ABBBBC", 0, -1, (0, 10)
881  "ABQ", 0, -1, (0, -1)
882  "ABBBBC", 0, -1, (0, -1)
883 /a.*c/i
884  "AXYZD", 0, -1, (4, 10)
885  "AABC", 0, 0, (0, 4)
886  "AXYZD", 0, -1, (4, -1)
887 /a[^]b]c/i
888  "A]C", 0, -1, (-1, -1)
889 /$b/i
890  "B", 0, -1, (-1, -1)
891  "A]C", 0, -1, (-1, -1)
892 /^(ab|cd)e/i
893  "ABCDE", 0, -1, (0, 10, -1, -1)
894  "ABCDE", 0, -1, (0, -1, -1, -1)
895 /a[bcd]+dcdcde/i
896  "ADCDCDE", 0, -1, (0, 10)
897 /[k]/i
898  "AB", 0, -1, (-1, -1)
899 /^(a\\1?){4}$/
900  "aaaaaaaaa", 0, -1, (-1, -1, -1, -1)
901  "aaaaaaaaaaa", 0, -1, (-1, -1, -1, -1)
902  "a", 0, -1, (-1, -1, -1, -1)
903  "aa", 0, -1, (-1, -1, -1, -1)
904  "aaa", 0, -1, (-1, -1, -1, -1)
905  "aaaa", 0, 0, (0, 4, 3, 4)
906  "aaaaa", 0, -1, (-1, -1, -1, -1)
907  "aaaaaaa", 0, -1, (-1, -1, -1, -1)
908  "aaaaaaaa", 0, -1, (-1, -1, -1, -1)
909  "aaaaaaaaaa", 0, -1, (-1, -1, -1, -1)
910  "aaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1)
911  "aaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1)
912  "aaaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1)
913  "aaaaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1)
914  "aaaaaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1)
915  "AB", 0, -1, (-1, -1, -1, -1)
916 /^(?:a?b?)*$/
917  "a--", 0, -1, (-1, -1)
918  "", 0, 0, (0, 0)
919  "a", 0, 0, (0, 1)
920  "ab", 0, 0, (0, 2)
921  "aaa", 0, 0, (0, 3)
922  "dbcb", 0, -1, (-1, -1)
923  "aa--", 0, -1, (-1, -1)
924 /^b/
925  "a\nb\nc\n", 0, -1, (-1, -1)
926 /()^b/
927  "a\nb\nc\n", 0, -1, (7, 10, -1, -1)
928  "a\nb\nc\n", 0, -1, (7, -1, -1, -1)
929 /^(?=(a+?))\\1ab/
930  "aaab", 0, -1, (-1, -1, 0, 1)
931 /(>a+)ab/
932  "aaab", 0, -1, (1, 11, -1, -1)
933 /a\\Z/
934  "a\nb\n", 0, -1, (-1, -1)
935 /a\\z/
936  "a\nb\n", 0, -1, (-1, -1)
937  "b\na\n", 0, -1, (-1, -1)
938  "az", 0, 0, (0, 2)
939 /a\\z/m
940  "a\nb\n", 0, -1, (-1, -1)
941  "b\na\n", 0, -1, (-1, -1)
942 /aa\\Z/
943  "aa\nb\n", 0, -1, (-1, -1)
944  "ac\nb\n", 0, -1, (-1, -1)
945  "b\nac\n", 0, -1, (-1, -1)
946  "b\nac", 0, -1, (-1, -1)
947  "ca\nb\n", 0, -1, (-1, -1)
948  "b\nca\n", 0, -1, (-1, -1)
949  "b\nca", 0, -1, (-1, -1)
950 /aa\\z/
951  "aa\nb\n", 0, -1, (-1, -1)
952  "b\naa\n", 0, -1, (-1, -1)
953  "ac\nb\n", 0, -1, (-1, -1)
954  "b\nac\n", 0, -1, (-1, -1)
955  "b\nac", 0, -1, (-1, -1)
956  "ca\nb\n", 0, -1, (-1, -1)
957  "b\nca\n", 0, -1, (-1, -1)
958  "b\nca", 0, -1, (-1, -1)
959 /aa\\z/m
960  "aa\nb\n", 0, -1, (-1, -1)
961  "b\naa\n", 0, -1, (-1, -1)
962  "ac\nb\n", 0, -1, (-1, -1)
963  "b\nac\n", 0, -1, (-1, -1)
964  "b\nac", 0, -1, (-1, -1)
965  "ca\nb\n", 0, -1, (-1, -1)
966  "b\nca\n", 0, -1, (-1, -1)
967  "b\nca", 0, -1, (-1, -1)
968 /aa\\Z/m
969  "ac\nb\n", 0, -1, (-1, -1)
970  "b\nac\n", 0, -1, (-1, -1)
971  "b\nac", 0, -1, (-1, -1)
972  "ca\nb\n", 0, -1, (-1, -1)
973  "b\nca\n", 0, -1, (-1, -1)
974  "b\nca", 0, -1, (-1, -1)
975 /ab\\Z/
976  "ab\nb\n", 0, -1, (-1, -1)
977  "ac\nb\n", 0, -1, (-1, -1)
978  "b\nac\n", 0, -1, (-1, -1)
979  "b\nac", 0, -1, (-1, -1)
980  "ca\nb\n", 0, -1, (-1, -1)
981  "b\nca\n", 0, -1, (-1, -1)
982  "b\nca", 0, -1, (-1, -1)
983 /ab\\z/
984  "ab\nb\n", 0, -1, (-1, -1)
985  "b\nab\n", 0, -1, (-1, -1)
986  "ac\nb\n", 0, -1, (-1, -1)
987  "b\nac\n", 0, -1, (-1, -1)
988  "b\nac", 0, -1, (-1, -1)
989  "ca\nb\n", 0, -1, (-1, -1)
990  "b\nca\n", 0, -1, (-1, -1)
991  "b\nca", 0, -1, (-1, -1)
992 /ab\\z/m
993  "ab\nb\n", 0, -1, (-1, -1)
994  "b\nab\n", 0, -1, (-1, -1)
995  "ac\nb\n", 0, -1, (-1, -1)
996  "b\nac\n", 0, -1, (-1, -1)
997  "b\nac", 0, -1, (-1, -1)
998  "ca\nb\n", 0, -1, (-1, -1)
999  "b\nca\n", 0, -1, (-1, -1)
1000  "b\nca", 0, -1, (-1, -1)
1001 /ab\\Z/m
1002  "ac\nb\n", 0, -1, (-1, -1)
1003  "b\nac\n", 0, -1, (-1, -1)
1004  "b\nac", 0, -1, (-1, -1)
1005  "ca\nb\n", 0, -1, (-1, -1)
1006  "b\nca\n", 0, -1, (-1, -1)
1007  "b\nca", 0, -1, (-1, -1)
1008 /abb\\Z/
1009  "abb\nb\n", 0, -1, (-1, -1)
1010  "ac\nb\n", 0, -1, (-1, -1)
1011  "b\nac\n", 0, -1, (-1, -1)
1012  "b\nac", 0, -1, (-1, -1)
1013  "ca\nb\n", 0, -1, (-1, -1)
1014  "b\nca\n", 0, -1, (-1, -1)
1015  "b\nca", 0, -1, (-1, -1)
1016 /abb\\z/
1017  "abb\nb\n", 0, -1, (-1, -1)
1018  "b\nabb\n", 0, -1, (-1, -1)
1019  "ac\nb\n", 0, -1, (-1, -1)
1020  "b\nac\n", 0, -1, (-1, -1)
1021  "b\nac", 0, -1, (-1, -1)
1022  "ca\nb\n", 0, -1, (-1, -1)
1023  "b\nca\n", 0, -1, (-1, -1)
1024  "b\nca", 0, -1, (-1, -1)
1025 /abb\\z/m
1026  "abb\nb\n", 0, -1, (-1, -1)
1027  "b\nabb\n", 0, -1, (-1, -1)
1028  "ac\nb\n", 0, -1, (-1, -1)
1029  "b\nac\n", 0, -1, (-1, -1)
1030  "b\nac", 0, -1, (-1, -1)
1031  "ca\nb\n", 0, -1, (-1, -1)
1032  "b\nca\n", 0, -1, (-1, -1)
1033  "b\nca", 0, -1, (-1, -1)
1034 /abb\\Z/m
1035  "ac\nb\n", 0, -1, (-1, -1)
1036  "b\nac\n", 0, -1, (-1, -1)
1037  "b\nac", 0, -1, (-1, -1)
1038  "ca\nb\n", 0, -1, (-1, -1)
1039  "b\nca\n", 0, -1, (-1, -1)
1040  "b\nca", 0, -1, (-1, -1)