diff options
author | Simon Hausmann <simon.hausmann@nokia.com> | 2012-01-06 14:44:00 +0100 |
---|---|---|
committer | Simon Hausmann <simon.hausmann@nokia.com> | 2012-01-06 14:44:00 +0100 |
commit | 40736c5763bf61337c8c14e16d8587db021a87d4 (patch) | |
tree | b17a9c00042ad89cb1308e2484491799aa14e9f8 /Source/JavaScriptCore/tests/regexp | |
download | qtwebkit-40736c5763bf61337c8c14e16d8587db021a87d4.tar.gz |
Imported WebKit commit 2ea9d364d0f6efa8fa64acf19f451504c59be0e4 (http://svn.webkit.org/repository/webkit/trunk@104285)
Diffstat (limited to 'Source/JavaScriptCore/tests/regexp')
-rw-r--r-- | Source/JavaScriptCore/tests/regexp/RegExpTest.data | 1040 |
1 files changed, 1040 insertions, 0 deletions
diff --git a/Source/JavaScriptCore/tests/regexp/RegExpTest.data b/Source/JavaScriptCore/tests/regexp/RegExpTest.data new file mode 100644 index 000000000..3a77e0b27 --- /dev/null +++ b/Source/JavaScriptCore/tests/regexp/RegExpTest.data @@ -0,0 +1,1040 @@ +# Test data file for JavaScriptCore::RegExp functional test. +# The format of this file is: +# # comment line +# /{pattern}/{flags} +# "{string}", {offset}, {return-value}, {match-offset-vector} +# Both the pattern and string accept backslash escapes. +# +/A/ + "A", 0, 0, (0, 1) + "A2", 0, 0, (0, 1) +/A2/ + "A2", 0, 0, (0, 2) +/\\u0041/ + "A", 0, 0, (0, 1) +/\\u00412/ + "A2", 0, 0, (0, 2) +/abc/ + "abc", 0, 0, (0, 3) + "xabcy", 0, 1, (1, 4) + "ababc", 0, 2, (2, 5) + "xbc", 0, -1, (-1, -1) + "axc", 0, -1, (-1, -1) + "abx", 0, -1, (-1, -1) + "b", 0, -1, (-1, -1) +/a|ab/ + "abc", 0, 0, (0, 1) +/(a|d|q|)x/i + "bcaDxqy", 0, 3, (3, 5, 3, 4) +/(a|(e|q))(x|y)/ + "bcaddxqy", 0, 6, (6, 8, 6, 7, 6, 7, 7, 8) +/a*b/ + "aaadaabaaa", 0, 4, (4, 7) + "xxx", 0, -1, (4, 4) +/[^abc]def[abc]+/ + "abxdefbb", 0, 2, (2, 8) +/(a*)baa/ + "ccdaaabaxaabaa", 0, 9, (9, 14, 9, 11) + "aabaa", 0, 0, (0, 5, 0, 2) +/q(a|b)*q/ + "xxqababqyy", 0, 2, (2, 8, 6, 7) +/(a(.|[^d])c)*/ + "adcaxc", 0, 0, (0, 6, 3, 6, 4, 5) +/(a*)b\\1/ + "abaaaxaabaayy", 0, 0, (0, 3, 0, 1) + "cccdaaabaxaabaayy", 0, 6, (6, 9, 6, 7) + "cccdaaabqxaabaayy", 0, 7, (7, 8, 7, 7) +/x1g/ + "x1g", 0, 0, (0, 3) +/^x/ + "x412", 0, 0, (0, 1) +/\\u001g/ + "u001g", 0, 0, (0, 5) +/34/g + "343443444", 0, 0, (0, 2) + "343443444", 2, 2, (2, 4) + "343443444", 4, 5, (5, 7) + "343443444", 7, -1, (-1, -1) +/\\d{1}/g + "123456abcde7890", 0, 0, (0, 1) + "123456abcde7890", 1, 1, (1, 2) + "123456abcde7890", 2, 2, (2, 3) + "123456abcde7890", 3, 3, (3, 4) + "123456abcde7890", 4, 4, (4, 5) + "123456abcde7890", 5, 5, (5, 6) + "123456abcde7890", 6, 11, (11, 12) + "123456abcde7890", 12, 12, (12, 13) + "123456abcde7890", 13, 13, (13, 14) + "123456abcde7890", 14, 14, (14, 15) + "123456abcde7890", 15, -1, (-1, -1) +/\\d{2}/g + "123456abcde7890", 0, 0, (0, 2) + "123456abcde7890", 2, 2, (2, 4) + "123456abcde7890", 4, 4, (4, 6) + "123456abcde7890", 6, 11, (11, 13) + "123456abcde7890", 13, 13, (13, 15) + "123456abcde7890", 15, -1, (-1, -1) +/\\D{2}/g + "123456abcde7890", 0, 6, (6, 8) + "123456abcde7890", 8, 8, (8, 10) + "123456abcde7890", 10, -1, (-1, -1) +/([\\d]{5})([-\\ ]?[\\d]{4})?$/ + "Boston, Mass. 02134", 0, 14, (14, 19, 14, 19, -1, -1) +/l/ + "hello", 0, 2, (2, 3) + "hello", 3, 3, (3, 4) + "hello", 4, -1, (-1, -1) +/\\s/g + "x, x, x, x", 0, 2, (2, 3) + "x, x, x, x", 3, 5, (5, 6) + "x, x, x, x", 6, 8, (8, 9) + "x, x, x, x", 9, -1, (-1, -1) +/((a)|(ab))((c)|(bc))/ + "abc", 0, 0, (0, 3, 0, 1, 0, 1, -1, -1, 1, 3, -1, -1, 1, 3) +/a[a-z]{2,4}/ + "abcdefghi", 0, 0, (0, 5) +/a[a-z]{2,4}?/ + "abcdefghi", 0, 0, (0, 3) +/(aa|aabaac|ba|b|c)*/ + "aabaac", 0, 0, (0, 4, 2, 4) +/^(a+)\\1*,\\1+$/ + "aaaaaaaaaa,aaaaaaaaaaaaaaa", 0, 0, (0, 26, 0, 5) +/(z)((a+)?(b+)?(c))*/ + "zaacbbbcac", 0, 0, (0, 10, 0, 1, 8, 10, 8, 9, -1, -1, 9, 10) +/(a*)*/ + "b", 0, 0, (0, 0, -1, -1) + "ab", 0, 0, (0, 1, 0, 1) +/(a*)b\\1+/ + "baaaac", 0, 0, (0, 1, 0, 0) +/(?=(a+))/ + "baaabac", 0, 1, (1, 1, 1, 4) +/(?=(a+))a*b\\1/ + "baaabac", 0, 3, (3, 6, 3, 4) +/(.*?)a(?!(a+)b\\2c)\\2(.*)/ + "baaabaac", 0, 0, (0, 8, 0, 2, -1, -1, 3, 8) +/\\w\\s\\w/g + "a b c d e", 0, 0, (0, 3) + "a b c d e", 3, 4, (4, 7) + "a b c d e", 7, -1, (-1, -1) +/\\d\\d\\d/g + "12345678", 0, 0, (0, 3) + "12345678", 3, 3, (3, 6) + "12345678", 6, -1, (-1, -1) +/abc/gi + "AbcaBcabC", 0, 0, (0, 3) + "AbcaBcabC", 3, 3, (3, 6) + "AbcaBcabC", 6, 6, (6, 9) + "AbcaBcabC", 9, -1, (-1, -1) +/abc/i + "AbcaBcabC", 0, 0, (0, 3) + "ABC", 0, 0, (0, 3) + "XABCY", 0, 1, (1, 4) + "ABABC", 0, 2, (2, 5) + "XBC", 0, -1, (-1, -1) + "AXC", 0, -1, (-1, -1) + "ABX", 0, -1, (-1, -1) + "aaxabxbaxbbx", 0, -1, (-1, -1) +/ab*c/ + "abc", 0, 0, (0, 3) +/ab*bc/ + "abc", 0, 0, (0, 3) + "abbc", 0, 0, (0, 4) + "abbbbc", 0, 0, (0, 6) +/.{1}/ + "abbbbc", 0, 0, (0, 1) +/.{3,4}/ + "abbbbc", 0, 0, (0, 4) +/ab{0,}bc/ + "abbbbc", 0, 0, (0, 6) +/ab+bc/ + "abbc", 0, 0, (0, 4) + "abbbbc", 0, 0, (0, 6) + "abc", 0, -1, (0, 9) + "abq", 0, -1, (0, 9) + "abc", 0, -1, (0, -1) + "abq", 0, -1, (0, -1) +/ab{1,}bc/ + "abbbbc", 0, 0, (0, 6) + "abq", 0, -1, (0, 9) +/ab{1,3}bc/ + "abbbbc", 0, 0, (0, 6) + "abbbc", 0, 0, (0, 5) + "abbc", 0, 0, (0, 4) + "abc", 0, -1, (0, -1) + "abbbbbc", 0, -1, (4, -1) +/ab{3,4}bc/ + "abbbbc", 0, 0, (0, 6) +/ab?bc/ + "abbc", 0, 0, (0, 4) + "abc", 0, 0, (0, 3) + "abbbbc", 0, -1, (4, 9) +/ab{0,1}bc/ + "abc", 0, 0, (0, 3) +/ab?c/ + "abc", 0, 0, (0, 3) +/ab{0,1}c/ + "abc", 0, 0, (0, 3) +/^abc$/ + "abc", 0, 0, (0, 3) + "abcc", 0, -1, (-1, -1) + "aabc", 0, -1, (-1, -1) + "abbbbc", 0, -1, (-1, -1) + "qqq\nabc", 0, -1, (-1, -1) + "abc\nzzz", 0, -1, (-1, -1) + "qqq\nabc\nzzz", 0, -1, (-1, -1) +/^abc/ + "abcc", 0, 0, (0, 3) + "abcdefghi", 0, 0, (0, 3) + "abc", 0, 0, (0, 3) + "xyzabc", 0, -1, (-1, -1) +/abc$/ + "aabc", 0, 1, (1, 4) + "aabcd", 0, -1, (-1, -1) + "abc", 0, 0, (0, 3) + "abc\n", 0, -1, (-1, -1) + "abc\ndef", 0, -1, (-1, -1) +/^/ + "abc", 0, 0, (0, 0) + "test", 0, 0, (0, 0) +/$/ + "abc", 0, 3, (3, 3) + "a\nb\n", 0, 4, (4, 4) + "b\na\n", 0, 4, (4, 4) + "b\na", 0, 3, (3, 3) + "xxx", 0, 3, (3, 3) + "xxxx", 0, 4, (4, 4) +/a.c/ + "abc", 0, 0, (0, 3) + "axc", 0, 0, (0, 3) +/a.*c/ + "axyzc", 0, 0, (0, 5) + "axyzd", 0, -1, (4, 10) +/a[bc]d/ + "abd", 0, 0, (0, 3) + "abc", 0, -1, (-1, -1) + "axyzd", 0, -1, (-1, -1) +/a[b-d]e/ + "ace", 0, 0, (0, 3) + "abd", 0, -1, (-1, -1) +/a[b-d]/ + "aac", 0, 1, (1, 3) +/a[-b]/ + "a-", 0, 0, (0, 2) +/a[b-]/ + "a-", 0, 0, (0, 2) +/a]/ + "a]", 0, 0, (0, 2) +/a[^bc]d/ + "aed", 0, 0, (0, 3) + "abd", 0, -1, (-1, -1) +/a[^-b]c/ + "adc", 0, 0, (0, 3) + "a-c", 0, -1, (-1, -1) +/\\ba\\b/ + "a-", 0, 0, (0, 1) + "-a", 0, 1, (1, 2) + "-a-", 0, 1, (1, 2) +/\\By\\b/ + "xy", 0, 1, (1, 2) +/\\by\\B/ + "yz", 0, 0, (0, 1) +/\\By\\B/ + "xyz", 0, 1, (1, 2) +/a\\Sb/ + "a-b", 0, 0, (0, 3) + "a\tb a b a-b", 0, 8, (8, 11) + "a b", 0, -1, (-1, -1) +/\\d/ + "1", 0, 0, (0, 1) + "-", 0, -1, (-1, -1) + "_abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ\f\n\r\t\v~`!@#$%^&*()-+={[}]|\\:;'<,>./? \"", 0, -1, (-1, -1) + "ab1cd", 0, 2, (2, 3) + "ab2cd", 0, 2, (2, 3) + "ab3cd", 0, 2, (2, 3) + "ab4cd", 0, 2, (2, 3) + "ab5cd", 0, 2, (2, 3) + "ab6cd", 0, 2, (2, 3) + "ab7cd", 0, 2, (2, 3) + "ab8cd", 0, 2, (2, 3) + "ab9cd", 0, 2, (2, 3) + "ab0cd", 0, 2, (2, 3) + "\u01003", 0, 1, (1, 2) +/\\D/ + "-", 0, 0, (0, 1) + "1", 0, -1, (-1, -1) + "1234567890", 0, -1, (-1, -1) + "12_34", 0, 2, (2, 3) + "12a34", 0, 2, (2, 3) + "12b34", 0, 2, (2, 3) + "1X2", 0, 1, (1, 2) + "1\u01002", 0, 1, (1, 2) +/[\\w]/ + "a", 0, 0, (0, 1) + "-", 0, -1, (-1, -1) +/[\\W]/ + "-", 0, 0, (0, 1) + "a", 0, -1, (-1, -1) +/a[\\S]b/ + "a-b", 0, 0, (0, 3) + "a b", 0, -1, (-1, -1) +/[\\d]/ + "1", 0, 0, (0, 1) + "-", 0, -1, (-1, -1) +/[\\D]/ + "-", 0, 0, (0, 1) + "1", 0, -1, (-1, -1) +/ab|cd/ + "abc", 0, 0, (0, 2) + "abcd", 0, 0, (0, 2) +/()ef/ + "def", 0, 1, (1, 3, 1, 1) +/a\\(b/ + "a(b", 0, 0, (0, 3) +/a\\(*b/ + "ab", 0, 0, (0, 2) + "a((b", 0, 0, (0, 4) +/a\\\\b/ + "a\\b", 0, 0, (0, 3) + "a\b", 0, -1, (-1, -1) +/((a))/ + "abc", 0, 0, (0, 1, 0, 1, 0, 1) +/(a)b(c)/ + "abc", 0, 0, (0, 3, 0, 1, 2, 3) +/a+b+c/ + "aabbabc", 0, 4, (4, 7) +/a{1,}b{1,}c/ + "aabbabc", 0, 4, (4, 7) +/a.+?c/ + "abcabc", 0, 0, (0, 3) +/(a+|b)*/ + "ab", 0, 0, (0, 2, 1, 2) +/(a+|b){0,}/ + "ab", 0, 0, (0, 2, 1, 2) +/(a+|b)+/ + "ab", 0, 0, (0, 2, 1, 2) +/(a+|b){1,}/ + "ab", 0, 0, (0, 2, 1, 2) +/(a+|b)?/ + "ab", 0, 0, (0, 1, 0, 1) +/(a+|b){0,1}/ + "ab", 0, 0, (0, 1, 0, 1) +/[^ab]*/ + "cde", 0, 0, (0, 3) +/([abc])*d/ + "abbbcd", 0, 0, (0, 6, 4, 5) +/([abc])*bcd/ + "abcd", 0, 0, (0, 4, 0, 1) +/a|b|c|d|e/ + "e", 0, 0, (0, 1) +/(a|b|c|d|e)f/ + "ef", 0, 0, (0, 2, 0, 1) +/abcd*efg/ + "abcdefg", 0, 0, (0, 7) +/ab*/ + "xabyabbbz", 0, 1, (1, 3) + "xayabbbz", 0, 1, (1, 2) +/(ab|cd)e/ + "abcde", 0, 2, (2, 5, 2, 4) +/[abhgefdc]ij/ + "hij", 0, 0, (0, 3) +/(abc|)ef/ + "abcdef", 0, 4, (4, 6, 4, 4) +/(a|b)c*d/ + "abcd", 0, 1, (1, 4, 1, 2) +/(ab|ab*)bc/ + "abc", 0, 0, (0, 3, 0, 1) +/a([bc]*)c*/ + "abc", 0, 0, (0, 3, 1, 3) +/a([bc]*)(c*d)/ + "abcd", 0, 0, (0, 4, 1, 3, 3, 4) +/a([bc]+)(c*d)/ + "abcd", 0, 0, (0, 4, 1, 3, 3, 4) +/a([bc]*)(c+d)/ + "abcd", 0, 0, (0, 4, 1, 2, 2, 4) +/a[bcd]*dcdcde/ + "adcdcde", 0, 0, (0, 7) +/(ab|a)b*c/ + "abc", 0, 0, (0, 3, 0, 2) +/((a)(b)c)(d)/ + "abcd", 0, 0, (0, 4, 0, 3, 0, 1, 1, 2, 3, 4) +/[a-zA-Z_][a-zA-Z0-9_]*/ + "alpha", 0, 0, (0, 5) +/^a(bc+|b[eh])g|.h$/ + "abh", 0, 1, (1, 3, -1, -1) +/(bc+d$|ef*g.|h?i(j|k))/ + "effgz", 0, 0, (0, 5, 0, 5, -1, -1) + "ij", 0, 0, (0, 2, 0, 2, 1, 2) + "reffgz", 0, 1, (1, 6, 1, 6, -1, -1) + "effg", 0, -1, (3, 10, -1, -1, -1, -1) + "bcdd", 0, -1, (3, 10, -1, -1, -1, -1) + "effg", 0, -1, (3, -1, -1, -1, -1, -1) + "bcdd", 0, -1, (3, -1, -1, -1, -1, -1) +/((((((((((a))))))))))/ + "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) + "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) +/((((((((((a))))))))))\\10/ + "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) +/(((((((((a)))))))))/ + "a", 0, 0, (0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1) +/(.*)c(.*)/ + "abcde", 0, 0, (0, 5, 0, 2, 3, 5) +/abcd/ + "abcd", 0, 0, (0, 4) +/a(bc)d/ + "abcd", 0, 0, (0, 4, 1, 3) +/a[-]?c/ + "ac", 0, 0, (0, 2) +/(abc)\\1/ + "abcabc", 0, 0, (0, 6, 0, 3) +/([a-c]*)\\1/ + "abcabc", 0, 0, (0, 6, 0, 3) +/(a)|\\1/ + "a", 0, 0, (0, 1, 0, 1) + "x", 0, 0, (0, 0, -1, -1) + "ab", 0, 0, (0, 1, 0, 1) +/(([a-c])b*?\\2)*/ + "ababbbcbc", 0, 0, (0, 5, 3, 5, 3, 4) +/(([a-c])b*?\\2){3}/ + "ababbbcbc", 0, 0, (0, 9, 6, 9, 6, 7) +/ab*c/i + "ABC", 0, 0, (0, 3) +/ab*bc/i + "ABC", 0, 0, (0, 3) + "ABBC", 0, 0, (0, 4) +/ab*?bc/i + "ABBBBC", 0, 0, (0, 6) +/ab{0,}?bc/i + "ABBBBC", 0, 0, (0, 6) +/ab+?bc/i + "ABBC", 0, 0, (0, 4) +/ab+bc/i + "ABBBBC", 0, 0, (0, 6) + "ABC", 0, -1, (0, 10) + "ABQ", 0, -1, (0, 10) + "ABC", 0, -1, (0, -1) + "ABQ", 0, -1, (0, -1) +/ab{1,}?bc/i + "ABBBBC", 0, 0, (0, 6) +/ab{1,3}?bc/i + "ABBBBC", 0, 0, (0, 6) +/ab{3,4}?bc/i + "ABBBBC", 0, 0, (0, 6) +/ab??bc/i + "ABBC", 0, 0, (0, 4) + "ABC", 0, 0, (0, 3) + "ABBBBC", 0, -1, (4, 10) +/ab{0,1}?bc/i + "ABC", 0, 0, (0, 3) +/ab??c/i + "ABC", 0, 0, (0, 3) +/ab{0,1}?c/i + "ABC", 0, 0, (0, 3) +/^abc$/i + "ABC", 0, 0, (0, 3) + "ABCC", 0, -1, (-1, -1) + "AABC", 0, -1, (-1, -1) + "ABBBBC", 0, -1, (-1, -1) +/^abc/i + "ABCC", 0, 0, (0, 3) +/abc$/i + "AABC", 0, 1, (1, 4) +/^/i + "ABC", 0, 0, (0, 0) +/$/i + "ABC", 0, 3, (3, 3) +/a.c/i + "ABC", 0, 0, (0, 3) + "AXC", 0, 0, (0, 3) +/a.*?c/i + "AXYZC", 0, 0, (0, 5) + "ABCABC", 0, 0, (0, 3) +/a[bc]d/i + "ABD", 0, 0, (0, 3) + "ABC", 0, -1, (-1, -1) +/a[b-d]e/i + "ACE", 0, 0, (0, 3) + "ABD", 0, -1, (-1, -1) + "ABC", 0, -1, (-1, -1) +/a[b-d]/i + "AAC", 0, 1, (1, 3) +/a[-b]/i + "A-", 0, 0, (0, 2) +/a[b-]/i + "A-", 0, 0, (0, 2) +/a]/i + "A]", 0, 0, (0, 2) +/a[^bc]d/i + "AED", 0, 0, (0, 3) + "ABD", 0, -1, (-1, -1) +/a[^-b]c/i + "ADC", 0, 0, (0, 3) + "A-C", 0, -1, (-1, -1) + "ABD", 0, -1, (-1, -1) +/ab|cd/i + "ABC", 0, 0, (0, 2) + "ABCD", 0, 0, (0, 2) +/()ef/i + "DEF", 0, 1, (1, 3, 1, 1) +/a\\(b/i + "A(B", 0, 0, (0, 3) +/a\\(*b/i + "AB", 0, 0, (0, 2) + "A((B", 0, 0, (0, 4) +/a\\\\b/i + "A\\B", 0, 0, (0, 3) + "AB", 0, -1, (-1, -1) +/((a))/i + "ABC", 0, 0, (0, 1, 0, 1, 0, 1) +/(a)b(c)/i + "ABC", 0, 0, (0, 3, 0, 1, 2, 3) +/a+b+c/i + "AABBABC", 0, 4, (4, 7) +/a{1,}b{1,}c/i + "AABBABC", 0, 4, (4, 7) +/a.+?c/i + "ABCABC", 0, 0, (0, 3) +/a.{0,5}?c/i + "ABCABC", 0, 0, (0, 3) +/(a+|b)*/i + "AB", 0, 0, (0, 2, 1, 2) +/(a+|b){0,}/i + "AB", 0, 0, (0, 2, 1, 2) +/(a+|b)+/i + "AB", 0, 0, (0, 2, 1, 2) +/(a+|b){1,}/i + "AB", 0, 0, (0, 2, 1, 2) +/(a+|b)?/i + "AB", 0, 0, (0, 1, 0, 1) +/(a+|b){0,1}/i + "AB", 0, 0, (0, 1, 0, 1) +/(a+|b){0,1}?/i + "AB", 0, 0, (0, 0, -1, -1) +/[^ab]*/i + "CDE", 0, 0, (0, 3) +/([abc])*d/i + "ABBBCD", 0, 0, (0, 6, 4, 5) +/([abc])*bcd/i + "ABCD", 0, 0, (0, 4, 0, 1) +/a|b|c|d|e/i + "E", 0, 0, (0, 1) +/(a|b|c|d|e)f/i + "EF", 0, 0, (0, 2, 0, 1) +/abcd*efg/i + "ABCDEFG", 0, 0, (0, 7) +/ab*/i + "XABYABBBZ", 0, 1, (1, 3) + "XAYABBBZ", 0, 1, (1, 2) +/(ab|cd)e/i + "ABCDE", 0, 2, (2, 5, 2, 4) +/[abhgefdc]ij/i + "HIJ", 0, 0, (0, 3) +/(abc|)ef/i + "ABCDEF", 0, 4, (4, 6, 4, 4) +/(a|b)c*d/i + "ABCD", 0, 1, (1, 4, 1, 2) +/(ab|ab*)bc/i + "ABC", 0, 0, (0, 3, 0, 1) +/a([bc]*)c*/i + "ABC", 0, 0, (0, 3, 1, 3) +/a([bc]*)(c*d)/i + "ABCD", 0, 0, (0, 4, 1, 3, 3, 4) +/a([bc]+)(c*d)/i + "ABCD", 0, 0, (0, 4, 1, 3, 3, 4) +/a([bc]*)(c+d)/i + "ABCD", 0, 0, (0, 4, 1, 2, 2, 4) +/a[bcd]*dcdcde/i + "ADCDCDE", 0, 0, (0, 7) +/(ab|a)b*c/i + "ABC", 0, 0, (0, 3, 0, 2) +/((a)(b)c)(d)/i + "ABCD", 0, 0, (0, 4, 0, 3, 0, 1, 1, 2, 3, 4) +/[a-zA-Z_][a-zA-Z0-9_]*/i + "ALPHA", 0, 0, (0, 5) +/^a(bc+|b[eh])g|.h$/i + "ABH", 0, 1, (1, 3, -1, -1) +/(bc+d$|ef*g.|h?i(j|k))/i + "EFFGZ", 0, 0, (0, 5, 0, 5, -1, -1) + "IJ", 0, 0, (0, 2, 0, 2, 1, 2) + "REFFGZ", 0, 1, (1, 6, 1, 6, -1, -1) + "EFFG", 0, -1, (3, 10, -1, -1, -1, -1) + "BCDD", 0, -1, (3, 10, -1, -1, -1, -1) + "ADCDCDE", 0, -1, (6, -1, -1, -1, -1, -1) + "EFFG", 0, -1, (3, -1, -1, -1, -1, -1) + "BCDD", 0, -1, (3, -1, -1, -1, -1, -1) +/((((((((((a))))))))))/i + "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) + "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) +/((((((((((a))))))))))\\10/i + "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) +/(((((((((a)))))))))/i + "A", 0, 0, (0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1, 0, 1) +/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i + "A", 0, 0, (0, 1, 0, 1) +/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i + "C", 0, 0, (0, 1, 0, 1) +/(.*)c(.*)/i + "ABCDE", 0, 0, (0, 5, 0, 2, 3, 5) +/abcd/i + "ABCD", 0, 0, (0, 4) +/a(bc)d/i + "ABCD", 0, 0, (0, 4, 1, 3) +/a[-]?c/i + "AC", 0, 0, (0, 2) +/(abc)\\1/i + "ABCABC", 0, 0, (0, 6, 0, 3) + "abcabc", 0, 0, (0, 6, 0, 3) + "ABCabc", 0, 0, (0, 6, 0, 3) + "abcABC", 0, 0, (0, 6, 0, 3) +/([a-c]*)\\1/i + "ABCABC", 0, 0, (0, 6, 0, 3) +/a(?!b)./ + "abad", 0, 2, (2, 4) +/a(?=d)./ + "abad", 0, 2, (2, 4) +/a(?=c|d)./ + "abad", 0, 2, (2, 4) +/a(?:b|c|d)(.)/ + "ace", 0, 0, (0, 3, 2, 3) +/a(?:b|c|d)*(.)/ + "ace", 0, 0, (0, 3, 2, 3) +/a(?:b|c|d)+?(.)/ + "ace", 0, 0, (0, 3, 2, 3) + "acdbcdbe", 0, 0, (0, 3, 2, 3) +/a(?:b|c|d)+(.)/ + "acdbcdbe", 0, 0, (0, 8, 7, 8) +/a(?:b|c|d){2}(.)/ + "acdbcdbe", 0, 0, (0, 4, 3, 4) +/a(?:b|c|d){4,5}(.)/ + "acdbcdbe", 0, 0, (0, 7, 6, 7) +/a(?:b|c|d){4,5}?(.)/ + "acdbcdbe", 0, 0, (0, 6, 5, 6) +/((foo)|(bar))*/ + "foobar", 0, 0, (0, 6, 3, 6, -1, -1, 3, 6) +/a(?:b|c|d){6,7}(.)/ + "acdbcdbe", 0, 0, (0, 8, 7, 8) +/a(?:b|c|d){6,7}?(.)/ + "acdbcdbe", 0, 0, (0, 8, 7, 8) +/a(?:b|c|d){5,6}(.)/ + "acdbcdbe", 0, 0, (0, 8, 7, 8) +/a(?:b|c|d){5,6}?(.)/ + "acdbcdbe", 0, 0, (0, 7, 6, 7) +/a(?:b|c|d){5,7}(.)/ + "acdbcdbe", 0, 0, (0, 8, 7, 8) +/a(?:b|c|d){5,7}?(.)/ + "acdbcdbe", 0, 0, (0, 7, 6, 7) +/a(?:b|(c|e){1,2}?|d)+?(.)/ + "ace", 0, 0, (0, 3, 1, 2, 2, 3) +/^(.+)?B/ + "AB", 0, 0, (0, 2, 0, 1) +/^([^a-z])|(\\^)$/ + ".", 0, 0, (0, 1, 0, 1, -1, -1) +/^[<>]&/ + "<&OUT", 0, 0, (0, 2) +/((a{4})+)/ + "aaaaaaaaa", 0, 0, (0, 8, 0, 8, 4, 8) +/(((aa){2})+)/ + "aaaaaaaaaa", 0, 0, (0, 8, 0, 8, 4, 8, 6, 8) +/(((a{2}){2})+)/ + "aaaaaaaaaa", 0, 0, (0, 8, 0, 8, 4, 8, 6, 8) +/(?:(f)(o)(o)|(b)(a)(r))*/ + "foobar", 0, 0, (0, 6, -1, -1, -1, -1, -1, -1, 3, 4, 4, 5, 5, 6) +/(?:..)*a/ + "aba", 0, 0, (0, 3) +/(?:..)*?a/ + "aba", 0, 0, (0, 1) +/^(?:b|a(?=(.)))*\\1/ + "abc", 0, 0, (0, 2, -1, -1) +/^(){3,5}/ + "abc", 0, 0, (0, 0, 0, 0) +/^(a+)*ax/ + "aax", 0, 0, (0, 3, 0, 1) +/^((a|b)+)*ax/ + "aax", 0, 0, (0, 3, 0, 1, 0, 1) +/^((a|bc)+)*ax/ + "aax", 0, 0, (0, 3, 0, 1, 0, 1) +/(a|x)*ab/ + "cab", 0, 1, (1, 3, -1, -1) +/(a)*ab/ + "cab", 0, 1, (1, 3, -1, -1) +/(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/ + "cabbbb", 0, 0, (0, 6) +/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/ + "caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb", 0, 0, (0, 41) +/(ab)\\d\\1/i + "Ab4ab", 0, 0, (0, 5, 0, 2) + "ab4Ab", 0, 0, (0, 5, 0, 2) +/foo\\w*\\d{4}baz/ + "foobar1234baz", 0, 0, (0, 13) +/x(~~)*(?:(?:F)?)?/ + "x~~", 0, 0, (0, 3, 1, 3) +/(?=(a+?))(\\1ab)/ + "aaab", 0, 1, (1, 4, 1, 2, 1, 4) +/(\\w+:)+/ + "one:", 0, 0, (0, 4, 0, 4) +/([\\w:]+::)?(\\w+)$/ + "abcd", 0, 0, (0, 4, -1, -1, 0, 4) + "xy:z:::abcd", 0, 0, (0, 11, 0, 7, 7, 11) + "abcd:", 0, -1, (6, 11, -1, -1, -1, -1) + "abcd:", 0, -1, (6, -1, -1, -1, -1, -1) +/^[^bcd]*(c+)/ + "aexycd", 0, 0, (0, 5, 4, 5) +/(a*)b+/ + "caab", 0, 1, (1, 4, 1, 3) +/([[:]+)/ + "a:[b]:", 0, 1, (1, 3, 1, 3) +/([[=]+)/ + "a=[b]=", 0, 1, (1, 3, 1, 3) +/([[.]+)/ + "a.[b].", 0, 1, (1, 3, 1, 3) +/$/m + "a\nb\n", 0, 1, (1, 1) + "b\na\n", 0, 1, (1, 1) + "b\na", 0, 1, (1, 1) +/a$/ + "b\na", 0, 2, (2, 3) + "a\nb\n", 0, -1, (-1, -1) + "aaab", 0, -1, (-1, -1) +/a$/m + "a\nb\n", 0, 0, (0, 1) + "b\na\n", 0, 2, (2, 3) + "b\na", 0, 2, (2, 3) +/aa$/ + "b\naa", 0, 2, (2, 4) + "aa\nb\n", 0, -1, (-1, -1) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/aa$/m + "aa\nb\n", 0, 0, (0, 2) + "b\naa\n", 0, 2, (2, 4) + "b\naa", 0, 2, (2, 4) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/ab$/ + "b\nab", 0, 2, (2, 4) + "ab\nb\n", 0, -1, (-1, -1) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/ab$/m + "ab\nb\n", 0, 0, (0, 2) + "b\nab\n", 0, 2, (2, 4) + "b\nab", 0, 2, (2, 4) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/abb$/ + "b\nabb", 0, 2, (2, 5) + "abb\nb\n", 0, -1, (-1, -1) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/abb$/m + "abb\nb\n", 0, 0, (0, 3) + "b\nabb\n", 0, 2, (2, 5) + "b\nabb", 0, 2, (2, 5) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/(^|x)(c)/ + "ca", 0, 0, (0, 1, 0, 0, 0, 1) +/foo.bart/ + "foo.bart", 0, 0, (0, 8) +/^d[x][x][x]/m + "abcd\ndxxx", 0, 5, (5, 9) +/tt+$/ + "xxxtt", 0, 3, (3, 5) +/(\\d+\\.\\d+)/ + "3.1415926", 0, 0, (0, 9, 0, 9) +/\\.c(pp|xx|c)?$/i + "IO.c", 0, 2, (2, 4, -1, -1) + "Changes", 0, -1, (6, 11, -1, -1) +/(\\.c(pp|xx|c)?$)/i + "IO.c", 0, 2, (2, 4, 2, 4, -1, -1) +/(^|a)b/ + "ab", 0, 0, (0, 2, 0, 1) +/^([ab]*?)(b)?(c)$/ + "abac", 0, 0, (0, 4, 0, 3, -1, -1, 3, 4) +/^(?:.,){2}c/i + "a,b,c", 0, 0, (0, 5) +/^(.,){2}c/i + "a,b,c", 0, 0, (0, 5, 2, 4) +/^(?:[^,]*,){2}c/ + "a,b,c", 0, 0, (0, 5) +/^([^,]*,){2}c/ + "a,b,c", 0, 0, (0, 5, 2, 4) +/^([^,]*,){3}d/ + "aaa,b,c,d", 0, 0, (0, 9, 6, 8) +/^([^,]*,){3,}d/ + "aaa,b,c,d", 0, 0, (0, 9, 6, 8) +/^([^,]*,){0,3}d/ + "aaa,b,c,d", 0, 0, (0, 9, 6, 8) +/^([^,]{1,3},){3}d/i + "aaa,b,c,d", 0, 0, (0, 9, 6, 8) +/^([^,]{1,3},){3,}d/ + "aaa,b,c,d", 0, 0, (0, 9, 6, 8) +/^([^,]{1,3},){0,3}d/ + "aaa,b,c,d", 0, 0, (0, 9, 6, 8) +/^([^,]{1,},){3}d/ + "aaa,b,c,d", 0, 0, (0, 9, 6, 8) +/^([^,]{1,},){3,}d/ + "aaa,b,c,d", 0, 0, (0, 9, 6, 8) +/^([^,]{1,},){0,3}d/ + "aaa,b,c,d", 0, 0, (0, 9, 6, 8) +/^([^,]{0,3},){3}d/i + "aaa,b,c,d", 0, 0, (0, 9, 6, 8) +/^([^,]{0,3},){3,}d/ + "aaa,b,c,d", 0, 0, (0, 9, 6, 8) +/^([^,]{0,3},){0,3}d/ + "aaa,b,c,d", 0, 0, (0, 9, 6, 8) +/^(a(b)?)+$/ + "aba", 0, 0, (0, 3, 2, 3, -1, -1) +/^(aa(bb)?)+$/ + "aabbaa", 0, 0, (0, 6, 4, 6, -1, -1) +/^.{9}abc.*\\n/m + "123\nabcabcabcabc\n", 0, 4, (4, 17) +/^(a)?a$/ + "a", 0, 0, (0, 1, -1, -1) +/^(a\\1?)(a\\1?)(a\\2?)(a\\3?)$/ + "aaaaaa", 0, 0, (0, 6, 0, 1, 1, 3, 3, 4, 4, 6) + "a", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1) + "aa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1) + "aaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1) + "aaaa", 0, 0, (0, 4, 0, 1, 1, 2, 2, 3, 3, 4) + "aaaaa", 0, 0, (0, 5, 0, 1, 1, 3, 3, 4, 4, 5) + "aaaaaaa", 0, 0, (0, 7, 0, 1, 1, 3, 3, 6, 6, 7) + "aaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1) + "aaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1) + "aaaaaaaaaa", 0, 0, (0, 10, 0, 1, 1, 3, 3, 6, 6, 10) + "aaaaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1) + "aaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1) + "aaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1) + "aaaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1) + "aaaaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1) + "aaaaaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1, -1, -1, -1, -1, -1, -1) +/^(0+)?(?:x(1))?/ + "x1", 0, 0, (0, 2, -1, -1, 1, 2) +/^([0-9a-fA-F]+)(?:x([0-9a-fA-F]+)?)(?:x([0-9a-fA-F]+))?/ + "012cxx0190", 0, 0, (0, 10, 0, 4, -1, -1, 6, 10) +/^(b+?|a){1,2}c/ + "bbbac", 0, 0, (0, 5, 3, 4) + "bbbbac", 0, 0, (0, 6, 4, 5) +/((?:aaaa|bbbb)cccc)?/ + "aaaacccc", 0, 0, (0, 8, 0, 8) + "bbbbcccc", 0, 0, (0, 8, 0, 8) +/ab{4,5}bc/ + "abbbbc", 0, -1, (0, 9) + "abq", 0, -1, (0, -1) + "abbbbc", 0, -1, (0, -1) +/a[^]b]c/ + "a]c", 0, -1, (-1, -1) +/\\by\\b/ + "xy", 0, -1, (-1, -1) + "yz", 0, -1, (-1, -1) + "xyz", 0, -1, (-1, -1) +/\\Ba\\B/ + "a-", 0, -1, (-1, -1) + "-a", 0, -1, (-1, -1) + "-a-", 0, -1, (-1, -1) +/a\\sb/ + "a-b", 0, -1, (-1, -1) + "a b", 0, 0, (0, 3) +/a[\\s]b/ + "a-b", 0, -1, (-1, -1) + "a b", 0, 0, (0, 3) +/$b/ + "b", 0, -1, (-1, -1) +/^(ab|cd)e/ + "abcde", 0, -1, (0, 10, -1, -1) +/a[bcd]+dcdcde/ + "adcdcde", 0, -1, (0, 10) + "abcde", 0, -1, (0, -1) + "adcdcde", 0, -1, (0, -1) +/[k]/ + "ab", 0, -1, (-1, -1) +/((\\3|b)\\2(a)x)+/ + "aaxabxbaxbbx", 0, 1, (1, 3, 1, 3, 1, 1, 1, 2) + "aaaxabaxbaaxbbax", 0, 2, (2, 4, 2, 4, 2, 2, 2, 3) +/ab{1,}bc/i + "ABQ", 0, -1, (0, 10) +/ab{4,5}?bc/i + "ABBBBC", 0, -1, (0, 10) + "ABQ", 0, -1, (0, -1) + "ABBBBC", 0, -1, (0, -1) +/a.*c/i + "AXYZD", 0, -1, (4, 10) + "AABC", 0, 0, (0, 4) + "AXYZD", 0, -1, (4, -1) +/a[^]b]c/i + "A]C", 0, -1, (-1, -1) +/$b/i + "B", 0, -1, (-1, -1) + "A]C", 0, -1, (-1, -1) +/^(ab|cd)e/i + "ABCDE", 0, -1, (0, 10, -1, -1) + "ABCDE", 0, -1, (0, -1, -1, -1) +/a[bcd]+dcdcde/i + "ADCDCDE", 0, -1, (0, 10) +/[k]/i + "AB", 0, -1, (-1, -1) +/^(a\\1?){4}$/ + "aaaaaaaaa", 0, -1, (-1, -1, -1, -1) + "aaaaaaaaaaa", 0, -1, (-1, -1, -1, -1) + "a", 0, -1, (-1, -1, -1, -1) + "aa", 0, -1, (-1, -1, -1, -1) + "aaa", 0, -1, (-1, -1, -1, -1) + "aaaa", 0, 0, (0, 4, 3, 4) + "aaaaa", 0, -1, (-1, -1, -1, -1) + "aaaaaaa", 0, -1, (-1, -1, -1, -1) + "aaaaaaaa", 0, -1, (-1, -1, -1, -1) + "aaaaaaaaaa", 0, -1, (-1, -1, -1, -1) + "aaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1) + "aaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1) + "aaaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1) + "aaaaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1) + "aaaaaaaaaaaaaaaa", 0, -1, (-1, -1, -1, -1) + "AB", 0, -1, (-1, -1, -1, -1) +/^(?:a?b?)*$/ + "a--", 0, -1, (-1, -1) + "", 0, 0, (0, 0) + "a", 0, 0, (0, 1) + "ab", 0, 0, (0, 2) + "aaa", 0, 0, (0, 3) + "dbcb", 0, -1, (-1, -1) + "aa--", 0, -1, (-1, -1) +/^b/ + "a\nb\nc\n", 0, -1, (-1, -1) +/()^b/ + "a\nb\nc\n", 0, -1, (7, 10, -1, -1) + "a\nb\nc\n", 0, -1, (7, -1, -1, -1) +/^(?=(a+?))\\1ab/ + "aaab", 0, -1, (-1, -1, 0, 1) +/(>a+)ab/ + "aaab", 0, -1, (1, 11, -1, -1) +/a\\Z/ + "a\nb\n", 0, -1, (-1, -1) +/a\\z/ + "a\nb\n", 0, -1, (-1, -1) + "b\na\n", 0, -1, (-1, -1) + "az", 0, 0, (0, 2) +/a\\z/m + "a\nb\n", 0, -1, (-1, -1) + "b\na\n", 0, -1, (-1, -1) +/aa\\Z/ + "aa\nb\n", 0, -1, (-1, -1) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/aa\\z/ + "aa\nb\n", 0, -1, (-1, -1) + "b\naa\n", 0, -1, (-1, -1) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/aa\\z/m + "aa\nb\n", 0, -1, (-1, -1) + "b\naa\n", 0, -1, (-1, -1) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/aa\\Z/m + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/ab\\Z/ + "ab\nb\n", 0, -1, (-1, -1) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/ab\\z/ + "ab\nb\n", 0, -1, (-1, -1) + "b\nab\n", 0, -1, (-1, -1) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/ab\\z/m + "ab\nb\n", 0, -1, (-1, -1) + "b\nab\n", 0, -1, (-1, -1) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/ab\\Z/m + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/abb\\Z/ + "abb\nb\n", 0, -1, (-1, -1) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/abb\\z/ + "abb\nb\n", 0, -1, (-1, -1) + "b\nabb\n", 0, -1, (-1, -1) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/abb\\z/m + "abb\nb\n", 0, -1, (-1, -1) + "b\nabb\n", 0, -1, (-1, -1) + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) +/abb\\Z/m + "ac\nb\n", 0, -1, (-1, -1) + "b\nac\n", 0, -1, (-1, -1) + "b\nac", 0, -1, (-1, -1) + "ca\nb\n", 0, -1, (-1, -1) + "b\nca\n", 0, -1, (-1, -1) + "b\nca", 0, -1, (-1, -1) |