regexchar-0.9.0.7: data/Tests_ATTBasic.txt
#AUTHOR: Dr. Alistair Ward
#DESCRIPTION: Designed to be read by the module "FunctionAlley.RegExChar.Assert.RegExOptsChar".
#Based on <http://www2.research.att.com/~gsf/testregex/basic.dat>
("abracadabra$", [("abracadabracadabra", [(7,11)])])
("a...b", [("abababbb", [(2,5)])])
("XXXXXX", [("..XXXXXX", [(2,6)])])
("\\)", [("()", [(1,1)])])
("a]", [("a]a", [(0,2)])])
("\\}", [("}", [(0,1)])])
("\\]", [("]", [(0,1)])])
("]", [("]", [(0,1)])])
#("{", [("{", [(0,1)])]) #Text.Regex.Posix dies on this.
("}", [("}", [(0,1)])])
("^a", [("ax", [(0,1)])])
("\\^a", [("a^a", [(1,2)])])
("a\\^", [("a^", [(0,2)])])
("a$", [("aa", [(1,1)])])
("a\\$", [("a$", [(0,2)])])
("^$", [("", [(0,0)])])
("$^", [("", [(0,0)])])
("a($)", [("aa", [(1,1),(2,0)])])
("a*(^a)", [("aa", [(0,1),(0,1)])])
("(..)*(...)*", [("a", [(0,0)]), ("abcd", [(0,4),(2,2)])]) #1st test returns [(0,0),(0,0),(0,0)] (presumable the /last/ match of the repeatable group doesn't exist).
("(ab|a)(bc|c)", [("abc", [(0,3),(0,2),(2,1)])])
("(ab)c|abc", [("abc", [(0,3),(0,2)])]) #Returns [(0,3)] (wrong choice amongst potential matches).
("a{0}b", [("ab", [(1,1)])])
("(a*)(b?)(b+)b{3}", [("aaabbbbbbb", [(0,10),(0,3),(3,1),(4,3)])])
("(a*)(b{0,1})(b{1,})b{3}", [("aaabbbbbbb", [(0,10),(0,3),(3,1),(4,3)])])
("((a|a)|a)", [("a", [(0,1),(0,1),(0,1)])]) #Returns [(0,1),(0,1)] (wrong choice amongst potential matches).
("(a*)(a|aa)", [("aaaa", [(0,4),(0,3),(3,1)])])
("a*(a.|aa)", [("aaaa", [(0,4),(2,2)])])
("a(b)|c(d)|a(e)f", [("aef", [(0,3),(1,1)])])
("(a|b)?.*", [("b", [(0,1),(0,1)])])
("(a|b)c|a(b|c)", [("ac", [(0,2),(0,1)]), ("ab", [(0,2),(1,1)])]) #1st test returns [(0,2),(1,1)] (wrong choice amongst potential matches).
("(a|b)*c|(a|ab)*c", [("abc", [(0,3),(1,1)]), ("xc", [(1,1)])]) #1st test returns [(0,3),(0,2)] (by selecting the 2nd alternative).
("(.a|.b).*|.*(.a|.b)", [("xa", [(0,2),(0,2)])])
("a?(ab|ba)ab", [("abab", [(0,4),(0,2)])])
("a?(ac{0}b|ba)ab", [("abab", [(0,4),(0,2)])])
("ab|abab", [("abbabab", [(0,2)])])
("aba|bab|bba", [("baaabbbaba", [(5,3)])])
("aba|bab", [("baaabbbaba", [(6,3)])])
("(aa|aaa)*|(a|aaaaa)", [("aa", [(0,2),(0,2)])])
("(a.|.a.)*|(a|.a...)", [("aa", [(0,2),(0,2)])])
("ab|a", [("xabc", [(1,2)]), ("xxabc", [(2,2)])])
#("(Ab|cD)*", [("aBcD", [(0,4),(2,2)])]) #Relies on case-insensitivity.
("[^-]", [("--a", [(2,1)])])
("[a-]*", [("--a", [(0,3)])])
("[a-m-]*", [("--amoma--", [(0,4)])])
(":::1:::0:|:::1:1:0:", [(":::0:::1:::1:::0:", [(8,9)])])
(":::1:::0:|:::1:1:1:", [(":::0:::1:::1:::0:", [(8,9)])])
("[[:upper:]]", [("A", [(0,1)])])
("[[:lower:]]+", [("`az{", [(1,2)])])
("[[:upper:]]+", [("@AZ[", [(1,2)])])
("[[-]]", [("[[-]]", [(2,2)])])
("\n", [("\n", [(0,1)])])
("[^a]", [("\n", [(0,1)])])
("\na", [("\na", [(0,2)])])
("(a)(b)(c)", [("abc", [(0,3),(0,1),(1,1),(2,1)])])
("xxx", [("xxx", [(0,3)])])
("(^|[ (,;])((([Ff]eb[^ ]* *|0*2/|\\* */?)0*[6-7]))([^0-9]|$)", [("feb 6,", [(0,6),(0,0),(0,5),(0,5),(0,4),(5,1)]), ("2/7", [(0,3),(0,0),(0,3),(0,3),(0,2),(3,0)]), ("feb 1,Feb 6", [(5,6),(5,1),(6,5),(6,5),(6,4),(11,0)])])
("((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))", [("x", [(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1)])])
("((((((((((((((((((((((((((((((x))))))))))))))))))))))))))))))*", [("xx", [(0,2),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1),(1,1)])])
("a?(ab|ba)*", [("ababababababababababababababababababababababababababababababababababababababababa", [(0,81),(79,2)])])
("abaa|abbaa|abbbaa|abbbbaa", [("ababbabbbabbbabbbbabbbbaa", [(18,7)]), ("ababbabbbabbbabbbbabaa", [(18,4)])])
("aaac|aabc|abac|abbc|baac|babc|bbac|bbbc", [("baaabbbabac", [(7,4)])])
(".*", [("\x01\xff", [(0,2)])])
("aaaa|bbbb|cccc|ddddd|eeeeee|fffffff|gggg|hhhh|iiiii|jjjjj|kkkkk|llll", [("XaaaXbbbXcccXdddXeeeXfffXgggXhhhXiiiXjjjXkkkXlllXcbaXaaaa", [(53,4)])])
("a*a*a*a*a*b", [("aaaaaaaaab", [(0,10)])])
("^", [("", [(0,0)]), ("abc", [(0,0)])])
("$", [("", [(0,0)]), ("abc", [(3,0)])])
("^$", [("", [(0,0)])])
("^a$", [("a", [(0,1)])])
("abc", [("abc", [(0,3)]), ("xabcy", [(1,3)]), ("ababc", [(2,3)])])
("ab*c", [("abc", [(0,3)])])
("ab*bc", [("abc", [(0,3)]), ("abbc", [(0,4)]), ("abbbbc", [(0,6)])])
("ab+bc", [("abbc", [(0,4)]), ("abbbbc", [(0,6)])])
("ab?bc", [("abbc", [(0,4)]), ("abc", [(0,3)])])
("ab?c", [("abc", [(0,3)])])
("^abc$", [("abc", [(0,3)])])
("^abc", [("abcc", [(0,3)])])
("abc$", [("aabc", [(1,3)])])
("a.c", [("abc", [(0,3)]), ("axc", [(0,3)])])
("a.*c", [("axyzc", [(0,5)])])
("a[bc]d", [("abd", [(0,3)])])
("a[b-d]e", [("ace", [(0,3)])])
("a[b-d]", [("aac", [(1,2)])])
("a[-b]", [("a-", [(0,2)])])
("a[b-]", [("a-", [(0,2)])])
("a]", [("a]", [(0,2)])])
("a[]]b", [("a]b", [(0,3)])])
("a[^bc]d", [("aed", [(0,3)])])
("a[^-b]c", [("adc", [(0,3)])])
("a[^]b]c", [("adc", [(0,3)])])
("ab|cd", [("abc", [(0,2)]), ("abcd", [(0,2)])])
("a\\(b", [("a(b", [(0,3)])])
("a\\(*b", [("ab", [(0,2)]), ("a((b", [(0,4)])])
("((a))", [("abc", [(0,1),(0,1),(0,1)])])
("(a)b(c)", [("abc", [(0,3),(0,1),(2,1)])])
("a+b+c", [("aabbabc", [(4,3)])])
("a*", [("aaa", [(0,3)])])
("(a*)*", [("-", [(0,0),(0,0)])])
("(a*)+", [("-", [(0,0),(0,0)])])
("(a*|b)*", [("-", [(0,0),(0,0)])])
("(a+|b)*", [("ab", [(0,2),(1,1)])])
("(a+|b)+", [("ab", [(0,2),(1,1)])])
("(a+|b)?", [("ab", [(0,1),(0,1)])])
("[^ab]*", [("cde", [(0,3)])])
("(^)*", [("-", [(0,0),(0,0)])])
("a*", [("", [(0,0)])])
("([abc])*d", [("abbbcd", [(0,6),(4,1)])])
("([abc])*bcd", [("abcd", [(0,4),(0,1)])])
("a|b|c|d|e", [("e", [(0,1)])])
("(a|b|c|d|e)f", [("ef", [(0,2),(0,1)])])
("((a*|b))*", [("-", [(0,0),(0,0),(0,0)])])
("abcd*efg", [("abcdefg", [(0,7)])])
("ab*", [("xabyabbbz", [(1,2)]), ("xayabbbz", [(1,1)])])
("(ab|cd)e", [("abcde", [(2,3),(2,2)])])
("[abhgefdc]ij", [("hij", [(0,3)])])
("(a|b)c*d", [("abcd", [(1,3),(1,1)])])
("(ab|ab*)bc", [("abc", [(0,3),(0,1)])])
("a([bc]*)c*", [("abc", [(0,3),(1,2)])])
("a([bc]*)(c*d)", [("abcd", [(0,4),(1,2),(3,1)])])
("a([bc]+)(c*d)", [("abcd", [(0,4),(1,2),(3,1)])])
("a([bc]*)(c+d)", [("abcd", [(0,4),(1,1),(2,2)])])
("a[bcd]*dcdcde", [("adcdcde", [(0,7)])])
("(ab|a)b*c", [("abc", [(0,3),(0,2)])])
("((a)(b)c)(d)", [("abcd", [(0,4),(0,3),(0,1),(1,1),(3,1)])])
("[A-Za-z_][A-Za-z0-9_]*", [("alpha", [(0,5)])])
("^a(bc+|b[eh])g|.h$", [("abh", [(1,2)])])
("(bc+d$|ef*g.|h?i(j|k))", [("effgz", [(0,5),(0,5)]), ("ij", [(0,2),(0,2),(1,1)]), ("reffgz", [(1,5),(1,5)])])
("(((((((((a)))))))))", [("a", [(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1),(0,1)])])
("multiple words", [("multiple words yeah", [(0,14)])])
("(.*)c(.*)", [("abcde", [(0,5),(0,2),(3,2)])])
("abcd", [("abcd", [(0,4)])])
("a(bc)d", [("abcd", [(0,4),(1,2)])])
("a[-]?c", [("ac", [(0,3)])])
("M[ou]'?am+[ae]r .*([AEae]l[- ])?[GKQ]h?[aeu]+([dtz][dhz]?)+af[iy]", [("Muammar Qaddafi", [(0,15),(-1,0),(10,2)]), ("Mo'ammar Gadhafi", [(0,16),(-1,0),(11,2)]), ("Muammar Kaddafi", [(0,15),(-1,0),(10,2)]), ("Muammar Qadhafi", [(0,15),(-1,0),(10,2)]), ("Muammar Gadafi", [(0,14),(-1,0),(10,1)]), ("Mu'ammar Qadafi", [(0,15),(-1,0),(11,1)]), ("Moamar Gaddafi", [(0,14),(-1,0),(9,2)]), ("Mu'ammar Qadhdhafi", [(0,18),(-1,0),(13,2)]), ("Muammar Khaddafi", [(0,16),(-1,0),(11,2)]), ("Muammar Ghaddafy", [(0,16),(-1,0),(11,2)]), ("Muammar Ghadafi", [(0,15),(-1,0),(11,1)]), ("Muammar Ghaddafi", [(0,16),(-1,0),(11,2)]), ("Muamar Kaddafi", [(0,14),(-1,0),(9,2)]), ("Muammar Quathafi", [(0,16),(-1,0),(11,2)]), ("Muammar Gheddafi", [(0,16),(-1,0),(11,2)]), ("Moammar Khadafy", [(0,15),(-1,0),(11,1)]), ("Moammar Qudhafi", [(0,15),(-1,0),(10,2)])])
("a+(b|c)*d+", [("aabcdd", [(0,6),(3,1)])])
("^.+$", [("vivi", [(0,4)])])
("^(.+)$", [("vivi", [(0,4),(0,4)])])
("^([^!.]+).att.com!(.+)$", [("gryphon.att.com!eby", [(0,19),(0,7),(16,3)])])
("^([^!]+!)?([^!]+)$", [("bas", [(0,3),(-1,0),(0,3)]), ("bar!bas", [(0,7),(0,4),(4,3)]), ("foo!bas", [(0,7),(0,4),(4,3)])])
("^.+!([^!]+!)([^!]+)$", [("foo!bar!bas", [(0,11),(4,4),(8,3)])])
("((foo)|(bar))!bas", [("bar!bas", [(0,7),(0,3),(-1,0),(0,3)]), ("foo!bar!bas", [(4,7),(4,3),(-1,0),(4,3)]), ("foo!bas", [(0,7),(0,3),(0,3)])]) #NULL matches aren't found in 1st two tests.
("((foo)|bar)!bas", [("bar!bas", [(0,7),(0,3)]), ("foo!bar!bas", [(4,7),(4,3)]), ("foo!bas", [(0,7),(0,3),(0,3)])])
("(foo|(bar))!bas", [("bar!bas", [(0,7),(0,3),(0,3)]), ("foo!bar!bas", [(4,7),(4,3),(4,3)]), ("foo!bas", [(0,7),(0,3)])])
("(foo|bar)!bas", [("bar!bas", [(0,7),(0,3)]), ("foo!bar!bas", [(4,7),(4,3)]), ("foo!bas", [(0,7),(0,3)])])
("^(([^!]+!)?([^!]+)|.+!([^!]+!)([^!]+))$", [("bas", [(0,3),(0,3),(0,0),(0,3)]), ("bar!bas", [(0,7),(0,7),(0,4),(4,3)]), ("foo!bar!bas", [(0,11),(0,11),(0,0),(0,0),(4,4),(8,3)]), ("foo!bas", [(0,7),(0,7),(0,4),(4,3)])]) #4th fails; doesn't capture NULL groups defined in unselected (1st) alternative.
("^([^!]+!)?([^!]+)$|^.+!([^!]+!)([^!]+)$", [("bas", [(0,3),(-1,0),(0,3)]), ("bar!bas", [(0,7),(0,4),(4,3)]), ("foo!bar!bas", [(0,11),(1,0),(-1,0),(4,4),(8,3)]), ("foo!bas", [(0,7),(0,4),(4,3)])]) #3rd fails.
(".*(/XXX).*", [("/XXX", [(0,4),(0,4)])])
(".*(\\\\XXX).*", [("\\XXX", [(0,4),(0,4)])])
("\\\\XXX", [("\\XXX", [(0,4)])])
(".*(/000).*", [("/000", [(0,4),(0,4)])])
(".*(\\\\000).*", [("\\000", [(0,4),(0,4)])])
("\\\\000", [("\\000", [(0,4)])])