# 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)