1 # Test data file for JavaScriptCore::RegExp functional test.
2 # The format of this file is:
5 # "{string}", {offset}, {return-value}, {match-offset-vector}
6 # Both the pattern and string accept backslash escapes.
21 "xbc", 0, -1, (-1, -1)
22 "axc", 0, -1, (-1, -1)
23 "abx", 0, -1, (-1, -1)
28 "bcaDxqy", 0, 3, (3, 5, 3, 4)
30 "bcaddxqy", 0, 6, (6, 8, 6, 7, 6, 7, 7, 8)
32 "aaadaabaaa", 0, 4, (4, 7)
35 "abxdefbb", 0, 2, (2, 8)
37 "ccdaaabaxaabaa", 0, 9, (9, 14, 9, 11)
38 "aabaa", 0, 0, (0, 5, 0, 2)
40 "xxqababqyy", 0, 2, (2, 8, 6, 7)
42 "adcaxc", 0, 0, (0, 6, 3, 6, 4, 5)
44 "abaaaxaabaayy", 0, 0, (0, 3, 0, 1)
45 "cccdaaabaxaabaayy", 0, 6, (6, 9, 6, 7)
46 "cccdaaabqxaabaayy", 0, 7, (7, 8, 7, 7)
54 "343443444", 0, 0, (0, 2)
55 "343443444", 2, 2, (2, 4)
56 "343443444", 4, 5, (5, 7)
57 "343443444", 7, -1, (-1, -1)
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)
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)
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)
86 "hello", 4, -1, (-1, -1)
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)
95 "abcdefghi", 0, 0, (0, 5)
97 "abcdefghi", 0, 0, (0, 3)
99 "aabaac", 0, 0, (0, 4, 2, 4)
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)
105 "b", 0, 0, (0, 0, -1, -1)
106 "ab", 0, 0, (0, 1, 0, 1)
108 "baaaac", 0, 0, (0, 1, 0, 0)
110 "baaabac", 0, 1, (1, 1, 1, 4)
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)
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)
120 "12345678", 0, 0, (0, 3)
121 "12345678", 3, 3, (3, 6)
122 "12345678", 6, -1, (-1, -1)
124 "AbcaBcabC", 0, 0, (0, 3)
125 "AbcaBcabC", 3, 3, (3, 6)
126 "AbcaBcabC", 6, 6, (6, 9)
127 "AbcaBcabC", 9, -1, (-1, -1)
129 "AbcaBcabC", 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)
142 "abbbbc", 0, 0, (0, 6)
144 "abbbbc", 0, 0, (0, 1)
146 "abbbbc", 0, 0, (0, 4)
148 "abbbbc", 0, 0, (0, 6)
151 "abbbbc", 0, 0, (0, 6)
154 "abc", 0, -1, (0, -1)
155 "abq", 0, -1, (0, -1)
157 "abbbbc", 0, 0, (0, 6)
160 "abbbbc", 0, 0, (0, 6)
161 "abbbc", 0, 0, (0, 5)
163 "abc", 0, -1, (0, -1)
164 "abbbbbc", 0, -1, (4, -1)
166 "abbbbc", 0, 0, (0, 6)
170 "abbbbc", 0, -1, (4, 9)
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)
187 "abcdefghi", 0, 0, (0, 3)
189 "xyzabc", 0, -1, (-1, -1)
192 "aabcd", 0, -1, (-1, -1)
194 "abc\n", 0, -1, (-1, -1)
195 "abc\ndef", 0, -1, (-1, -1)
201 "a\nb\n", 0, 4, (4, 4)
202 "b\na\n", 0, 4, (4, 4)
210 "axyzc", 0, 0, (0, 5)
211 "axyzd", 0, -1, (4, 10)
214 "abc", 0, -1, (-1, -1)
215 "axyzd", 0, -1, (-1, -1)
218 "abd", 0, -1, (-1, -1)
229 "abd", 0, -1, (-1, -1)
232 "a-c", 0, -1, (-1, -1)
245 "a\tb a b a-b", 0, 8, (8, 11)
246 "a b", 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)
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)
270 "1\u01002", 0, 1, (1, 2)
279 "a b", 0, -1, (-1, -1)
290 "def", 0, 1, (1, 3, 1, 1)
298 "a\b", 0, -1, (-1, -1)
300 "abc", 0, 0, (0, 1, 0, 1, 0, 1)
302 "abc", 0, 0, (0, 3, 0, 1, 2, 3)
304 "aabbabc", 0, 4, (4, 7)
306 "aabbabc", 0, 4, (4, 7)
308 "abcabc", 0, 0, (0, 3)
310 "ab", 0, 0, (0, 2, 1, 2)
312 "ab", 0, 0, (0, 2, 1, 2)
314 "ab", 0, 0, (0, 2, 1, 2)
316 "ab", 0, 0, (0, 2, 1, 2)
318 "ab", 0, 0, (0, 1, 0, 1)
320 "ab", 0, 0, (0, 1, 0, 1)
324 "abbbcd", 0, 0, (0, 6, 4, 5)
326 "abcd", 0, 0, (0, 4, 0, 1)
330 "ef", 0, 0, (0, 2, 0, 1)
332 "abcdefg", 0, 0, (0, 7)
334 "xabyabbbz", 0, 1, (1, 3)
335 "xayabbbz", 0, 1, (1, 2)
337 "abcde", 0, 2, (2, 5, 2, 4)
341 "abcdef", 0, 4, (4, 6, 4, 4)
343 "abcd", 0, 1, (1, 4, 1, 2)
345 "abc", 0, 0, (0, 3, 0, 1)
347 "abc", 0, 0, (0, 3, 1, 3)
349 "abcd", 0, 0, (0, 4, 1, 3, 3, 4)
351 "abcd", 0, 0, (0, 4, 1, 3, 3, 4)
353 "abcd", 0, 0, (0, 4, 1, 2, 2, 4)
355 "adcdcde", 0, 0, (0, 7)
357 "abc", 0, 0, (0, 3, 0, 2)
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)
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)
380 "abcde", 0, 0, (0, 5, 0, 2, 3, 5)
384 "abcd", 0, 0, (0, 4, 1, 3)
388 "abcabc", 0, 0, (0, 6, 0, 3)
390 "abcabc", 0, 0, (0, 6, 0, 3)
392 "a", 0, 0, (0, 1, 0, 1)
393 "x", 0, 0, (0, 0, -1, -1)
394 "ab", 0, 0, (0, 1, 0, 1)
396 "ababbbcbc", 0, 0, (0, 5, 3, 5, 3, 4)
398 "ababbbcbc", 0, 0, (0, 9, 6, 9, 6, 7)
405 "ABBBBC", 0, 0, (0, 6)
407 "ABBBBC", 0, 0, (0, 6)
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)
417 "ABBBBC", 0, 0, (0, 6)
419 "ABBBBC", 0, 0, (0, 6)
421 "ABBBBC", 0, 0, (0, 6)
425 "ABBBBC", 0, -1, (4, 10)
434 "ABCC", 0, -1, (-1, -1)
435 "AABC", 0, -1, (-1, -1)
436 "ABBBBC", 0, -1, (-1, -1)
449 "AXYZC", 0, 0, (0, 5)
450 "ABCABC", 0, 0, (0, 3)
453 "ABC", 0, -1, (-1, -1)
456 "ABD", 0, -1, (-1, -1)
457 "ABC", 0, -1, (-1, -1)
468 "ABD", 0, -1, (-1, -1)
471 "A-C", 0, -1, (-1, -1)
472 "ABD", 0, -1, (-1, -1)
477 "DEF", 0, 1, (1, 3, 1, 1)
485 "AB", 0, -1, (-1, -1)
487 "ABC", 0, 0, (0, 1, 0, 1, 0, 1)
489 "ABC", 0, 0, (0, 3, 0, 1, 2, 3)
491 "AABBABC", 0, 4, (4, 7)
493 "AABBABC", 0, 4, (4, 7)
495 "ABCABC", 0, 0, (0, 3)
497 "ABCABC", 0, 0, (0, 3)
499 "AB", 0, 0, (0, 2, 1, 2)
501 "AB", 0, 0, (0, 2, 1, 2)
503 "AB", 0, 0, (0, 2, 1, 2)
505 "AB", 0, 0, (0, 2, 1, 2)
507 "AB", 0, 0, (0, 1, 0, 1)
509 "AB", 0, 0, (0, 1, 0, 1)
511 "AB", 0, 0, (0, 0, -1, -1)
515 "ABBBCD", 0, 0, (0, 6, 4, 5)
517 "ABCD", 0, 0, (0, 4, 0, 1)
521 "EF", 0, 0, (0, 2, 0, 1)
523 "ABCDEFG", 0, 0, (0, 7)
525 "XABYABBBZ", 0, 1, (1, 3)
526 "XAYABBBZ", 0, 1, (1, 2)
528 "ABCDE", 0, 2, (2, 5, 2, 4)
532 "ABCDEF", 0, 4, (4, 6, 4, 4)
534 "ABCD", 0, 1, (1, 4, 1, 2)
536 "ABC", 0, 0, (0, 3, 0, 1)
538 "ABC", 0, 0, (0, 3, 1, 3)
540 "ABCD", 0, 0, (0, 4, 1, 3, 3, 4)
542 "ABCD", 0, 0, (0, 4, 1, 3, 3, 4)
544 "ABCD", 0, 0, (0, 4, 1, 2, 2, 4)
546 "ADCDCDE", 0, 0, (0, 7)
548 "ABC", 0, 0, (0, 3, 0, 2)
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)
576 "ABCDE", 0, 0, (0, 5, 0, 2, 3, 5)
580 "ABCD", 0, 0, (0, 4, 1, 3)
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)
589 "ABCABC", 0, 0, (0, 6, 0, 3)
597 "ace", 0, 0, (0, 3, 2, 3)
599 "ace", 0, 0, (0, 3, 2, 3)
601 "ace", 0, 0, (0, 3, 2, 3)
602 "acdbcdbe", 0, 0, (0, 3, 2, 3)
604 "acdbcdbe", 0, 0, (0, 8, 7, 8)
606 "acdbcdbe", 0, 0, (0, 4, 3, 4)
608 "acdbcdbe", 0, 0, (0, 7, 6, 7)
609 /a(?:b|c|d){4,5}?(.)/
610 "acdbcdbe", 0, 0, (0, 6, 5, 6)
612 "foobar", 0, 0, (0, 6, 3, 6, -1, -1, 3, 6)
614 "acdbcdbe", 0, 0, (0, 8, 7, 8)
615 /a(?:b|c|d){6,7}?(.)/
616 "acdbcdbe", 0, 0, (0, 8, 7, 8)
618 "acdbcdbe", 0, 0, (0, 8, 7, 8)
619 /a(?:b|c|d){5,6}?(.)/
620 "acdbcdbe", 0, 0, (0, 7, 6, 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)
628 "AB", 0, 0, (0, 2, 0, 1)
630 ".", 0, 0, (0, 1, 0, 1, -1, -1)
632 "<&OUT", 0, 0, (0, 2)
634 "aaaaaaaaa", 0, 0, (0, 8, 0, 8, 4, 8)
636 "aaaaaaaaaa", 0, 0, (0, 8, 0, 8, 4, 8, 6, 8)
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)
645 /^(?:b|a(?=(.)))*\\1/
646 "abc", 0, 0, (0, 2, -1, -1)
648 "abc", 0, 0, (0, 0, 0, 0)
650 "aax", 0, 0, (0, 3, 0, 1)
652 "aax", 0, 0, (0, 3, 0, 1, 0, 1)
654 "aax", 0, 0, (0, 3, 0, 1, 0, 1)
656 "cab", 0, 1, (1, 3, -1, -1)
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)
664 "Ab4ab", 0, 0, (0, 5, 0, 2)
665 "ab4Ab", 0, 0, (0, 5, 0, 2)
667 "foobar1234baz", 0, 0, (0, 13)
669 "x~~", 0, 0, (0, 3, 1, 3)
671 "aaab", 0, 1, (1, 4, 1, 2, 1, 4)
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)
680 "aexycd", 0, 0, (0, 5, 4, 5)
682 "caab", 0, 1, (1, 4, 1, 3)
684 "a:[b]:", 0, 1, (1, 3, 1, 3)
686 "a=[b]=", 0, 1, (1, 3, 1, 3)
688 "a.[b].", 0, 1, (1, 3, 1, 3)
690 "a\nb\n", 0, 1, (1, 1)
691 "b\na\n", 0, 1, (1, 1)
695 "a\nb\n", 0, -1, (-1, -1)
696 "aaab", 0, -1, (-1, -1)
698 "a\nb\n", 0, 0, (0, 1)
699 "b\na\n", 0, 2, (2, 3)
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)
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)
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)
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)
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)
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)
759 "ca", 0, 0, (0, 1, 0, 0, 0, 1)
761 "foo.bart", 0, 0, (0, 8)
763 "abcd\ndxxx", 0, 5, (5, 9)
765 "xxxtt", 0, 3, (3, 5)
767 "3.1415926", 0, 0, (0, 9, 0, 9)
769 "IO.c", 0, 2, (2, 4, -1, -1)
770 "Changes", 0, -1, (6, 11, -1, -1)
772 "IO.c", 0, 2, (2, 4, 2, 4, -1, -1)
774 "ab", 0, 0, (0, 2, 0, 1)
776 "abac", 0, 0, (0, 4, 0, 3, -1, -1, 3, 4)
778 "a,b,c", 0, 0, (0, 5)
780 "a,b,c", 0, 0, (0, 5, 2, 4)
782 "a,b,c", 0, 0, (0, 5)
784 "a,b,c", 0, 0, (0, 5, 2, 4)
786 "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
788 "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
790 "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
792 "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
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)
798 "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
800 "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
802 "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
804 "aaa,b,c,d", 0, 0, (0, 9, 6, 8)
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)
810 "aba", 0, 0, (0, 3, 2, 3, -1, -1)
812 "aabbaa", 0, 0, (0, 6, 4, 6, -1, -1)
814 "123\nabcabcabcabc\n", 0, 4, (4, 17)
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)
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)
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)
845 "abbbbc", 0, -1, (0, 9)
846 "abq", 0, -1, (0, -1)
847 "abbbbc", 0, -1, (0, -1)
849 "a]c", 0, -1, (-1, -1)
851 "xy", 0, -1, (-1, -1)
852 "yz", 0, -1, (-1, -1)
853 "xyz", 0, -1, (-1, -1)
855 "a-", 0, -1, (-1, -1)
856 "-a", 0, -1, (-1, -1)
857 "-a-", 0, -1, (-1, -1)
859 "a-b", 0, -1, (-1, -1)
862 "a-b", 0, -1, (-1, -1)
867 "abcde", 0, -1, (0, 10, -1, -1)
869 "adcdcde", 0, -1, (0, 10)
870 "abcde", 0, -1, (0, -1)
871 "adcdcde", 0, -1, (0, -1)
873 "ab", 0, -1, (-1, -1)
875 "aaxabxbaxbbx", 0, 1, (1, 3, 1, 3, 1, 1, 1, 2)
876 "aaaxabaxbaaxbbax", 0, 2, (2, 4, 2, 4, 2, 2, 2, 3)
878 "ABQ", 0, -1, (0, 10)
880 "ABBBBC", 0, -1, (0, 10)
881 "ABQ", 0, -1, (0, -1)
882 "ABBBBC", 0, -1, (0, -1)
884 "AXYZD", 0, -1, (4, 10)
886 "AXYZD", 0, -1, (4, -1)
888 "A]C", 0, -1, (-1, -1)
891 "A]C", 0, -1, (-1, -1)
893 "ABCDE", 0, -1, (0, 10, -1, -1)
894 "ABCDE", 0, -1, (0, -1, -1, -1)
896 "ADCDCDE", 0, -1, (0, 10)
898 "AB", 0, -1, (-1, -1)
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)
917 "a--", 0, -1, (-1, -1)
922 "dbcb", 0, -1, (-1, -1)
923 "aa--", 0, -1, (-1, -1)
925 "a\nb\nc\n", 0, -1, (-1, -1)
927 "a\nb\nc\n", 0, -1, (7, 10, -1, -1)
928 "a\nb\nc\n", 0, -1, (7, -1, -1, -1)
930 "aaab", 0, -1, (-1, -1, 0, 1)
932 "aaab", 0, -1, (1, 11, -1, -1)
934 "a\nb\n", 0, -1, (-1, -1)
936 "a\nb\n", 0, -1, (-1, -1)
937 "b\na\n", 0, -1, (-1, -1)
940 "a\nb\n", 0, -1, (-1, -1)
941 "b\na\n", 0, -1, (-1, -1)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)
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)