summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/output/test_re381
1 files changed, 381 insertions, 0 deletions
diff --git a/Lib/test/output/test_re b/Lib/test/output/test_re
index c806244..a143b51 100644
--- a/Lib/test/output/test_re
+++ b/Lib/test/output/test_re
@@ -34,6 +34,7 @@ test_re
('a[b-d]e', 'ace', 0, 'found', 'ace')
('a[b-d]', 'aac', 0, 'found', 'ac')
('a[-b]', 'a-', 0, 'found', 'a-')
+('a[\\-b]', 'a-', 0, 'found', 'a-')
('a[b-]', 'a-', 2)
('a[]b', '-', 2)
('a[', '-', 2)
@@ -42,6 +43,7 @@ test_re
('(abc', '-', 2)
('a]', 'a]', 0, 'found', 'a]')
('a[]]b', 'a]b', 0, 'found', 'a]b')
+('a[\\]]b', 'a]b', 0, 'found', 'a]b')
('a[^bc]d', 'aed', 0, 'found', 'aed')
('a[^bc]d', 'abd', 1)
('a[^-b]c', 'adc', 0, 'found', 'adc')
@@ -134,3 +136,382 @@ test_re
('([abc]*)x', 'abc', 1)
('([xyz]*)x', 'abcx', 0, 'found+"-"+g1', 'x-')
('(a)+b|aac', 'aac', 0, 'found+"-"+g1', 'aac-None')
+('(?P<i d>aaa)a', 'aaaa', 2)
+('(?P<id>aaa)a', 'aaaa', 0, 'found+"-"+id', 'aaaa-aaa')
+('(?P<id>aa)(?P=id)', 'aaaa', 0, 'found+"-"+id', 'aaaa-aa')
+('(?P<id>aa)(?P=xd)', 'aaaa', 2)
+('\\1', 'a', 2)
+('\\09', '\0009', 0, 'found', '\0009')
+('\\141', 'a', 0, 'found', 'a')
+('(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\119', 'abcdefghijklk9', 0, 'found+"-"+g11', 'abcdefghijklk9-k')
+('abc', 'abc', 0, 'found', 'abc')
+('abc', 'xbc', 1)
+('abc', 'axc', 1)
+('abc', 'abx', 1)
+('abc', 'xabcy', 0, 'found', 'abc')
+('abc', 'ababc', 0, 'found', 'abc')
+('ab*c', 'abc', 0, 'found', 'abc')
+('ab*bc', 'abc', 0, 'found', 'abc')
+('ab*bc', 'abbc', 0, 'found', 'abbc')
+('ab*bc', 'abbbbc', 0, 'found', 'abbbbc')
+('ab{0,}bc', 'abbbbc', 0, 'found', 'abbbbc')
+*** Unexpected error ***
+('ab+bc', 'abbc', 0, 'found', 'abbc')
+('ab+bc', 'abc', 1)
+('ab+bc', 'abq', 1)
+('ab{1,}bc', 'abq', 1)
+*** Unexpected error ***
+('ab+bc', 'abbbbc', 0, 'found', 'abbbbc')
+('ab{1,}bc', 'abbbbc', 0, 'found', 'abbbbc')
+*** Unexpected error ***
+('ab{1,3}bc', 'abbbbc', 0, 'found', 'abbbbc')
+('ab{3,4}bc', 'abbbbc', 0, 'found', 'abbbbc')
+('ab{4,5}bc', 'abbbbc', 1)
+('ab?bc', 'abbc', 0, 'found', 'abbc')
+('ab?bc', 'abc', 0, 'found', 'abc')
+('ab{0,1}bc', 'abc', 0, 'found', 'abc')
+('ab?bc', 'abbbbc', 1)
+('ab?c', 'abc', 0, 'found', 'abc')
+('ab{0,1}c', 'abc', 0, 'found', 'abc')
+('^abc$', 'abc', 0, 'found', 'abc')
+('^abc$', 'abcc', 1)
+('^abc', 'abcc', 0, 'found', 'abc')
+('^abc$', 'aabc', 1)
+('abc$', 'aabc', 0, 'found', 'abc')
+('^', 'abc', 0, 'found', '')
+('$', 'abc', 0, 'found', '')
+('a.c', 'abc', 0, 'found', 'abc')
+('a.c', 'axc', 0, 'found', 'axc')
+('a.*c', 'axyzc', 0, 'found', 'axyzc')
+('a.*c', 'axyzd', 1)
+('a[bc]d', 'abc', 1)
+('a[bc]d', 'abd', 0, 'found', 'abd')
+('a[b-d]e', 'abd', 1)
+('a[b-d]e', 'ace', 0, 'found', 'ace')
+('a[b-d]', 'aac', 0, 'found', 'ac')
+('a[-b]', 'a-', 0, 'found', 'a-')
+('a[b-]', 'a-', 0, 'found', 'a-')
+('a[b-a]', '-', 2)
+('a[]b', '-', 2)
+('a[', '-', 2)
+('a]', 'a]', 0, 'found', 'a]')
+('a[]]b', 'a]b', 0, 'found', 'a]b')
+('a[^bc]d', 'aed', 0, 'found', 'aed')
+('a[^bc]d', 'abd', 1)
+('a[^-b]c', 'adc', 0, 'found', 'adc')
+('a[^-b]c', 'a-c', 1)
+('a[^]b]c', 'a]c', 1)
+('a[^]b]c', 'adc', 0, 'found', 'adc')
+('ab|cd', 'abc', 0, 'found', 'ab')
+('ab|cd', 'abcd', 0, 'found', 'ab')
+('()ef', 'def', 0, 'found+"-"+g1', 'ef-')
+=== Syntax error: ('()ef', 'def', 0, 'found+"-"+g1', 'ef-')
+('*a', '-', 2)
+('(*)b', '-', 2)
+('$b', 'b', 1)
+('a\\', '-', 2)
+('a\\(b', 'a(b', 0, 'found+"-"+g1', 'a(b-')
+=== grouping error ('a\\(b', 'a(b', 0, 'found+"-"+g1', 'a(b-') 'a(b-Error' should be 'a(b-'
+('a\\(*b', 'ab', 0, 'found', 'ab')
+('a\\(*b', 'a((b', 0, 'found', 'a((b')
+('a\\\\b', 'a\\b', 0, 'found', 'a\\b')
+('abc)', '-', 2)
+('(abc', '-', 2)
+('((a))', 'abc', 0, 'found+"-"+g1+"-"+g2', 'a-a-a')
+('(a)b(c)', 'abc', 0, 'found+"-"+g1+"-"+g2', 'abc-a-c')
+('a+b+c', 'aabbabc', 0, 'found', 'abc')
+('a{1,}b{1,}c', 'aabbabc', 0, 'found', 'abc')
+*** Unexpected error ***
+('a.+?c', 'abcabc', 0, 'found', 'abc')
+('(a+|b)*', 'ab', 0, 'found+"-"+g1', 'ab-b')
+('(a+|b){0,}', 'ab', 0, 'found+"-"+g1', 'ab-b')
+*** Unexpected error ***
+('(a+|b)+', 'ab', 0, 'found+"-"+g1', 'ab-b')
+('(a+|b){1,}', 'ab', 0, 'found+"-"+g1', 'ab-b')
+*** Unexpected error ***
+('(a+|b)?', 'ab', 0, 'found+"-"+g1', 'a-a')
+('(a+|b){0,1}', 'ab', 0, 'found+"-"+g1', 'a-a')
+(')(', '-', 2)
+('[^ab]*', 'cde', 0, 'found', 'cde')
+('abc', '', 1)
+('a*', '', 0, 'found', '')
+('([abc])*d', 'abbbcd', 0, 'found+"-"+g1', 'abbbcd-c')
+('([abc])*bcd', 'abcd', 0, 'found+"-"+g1', 'abcd-a')
+('a|b|c|d|e', 'e', 0, 'found', 'e')
+('(a|b|c|d|e)f', 'ef', 0, 'found+"-"+g1', 'ef-e')
+('abcd*efg', 'abcdefg', 0, 'found', 'abcdefg')
+('ab*', 'xabyabbbz', 0, 'found', 'ab')
+('ab*', 'xayabbbz', 0, 'found', 'a')
+('(ab|cd)e', 'abcde', 0, 'found+"-"+g1', 'cde-cd')
+('[abhgefdc]ij', 'hij', 0, 'found', 'hij')
+('^(ab|cd)e', 'abcde', 1)
+('(abc|)ef', 'abcdef', 0, 'found+"-"+g1', 'ef-')
+=== Syntax error: ('(abc|)ef', 'abcdef', 0, 'found+"-"+g1', 'ef-')
+('(a|b)c*d', 'abcd', 0, 'found+"-"+g1', 'bcd-b')
+('(ab|ab*)bc', 'abc', 0, 'found+"-"+g1', 'abc-a')
+('a([bc]*)c*', 'abc', 0, 'found+"-"+g1', 'abc-bc')
+('a([bc]*)(c*d)', 'abcd', 0, 'found+"-"+g1+"-"+g2', 'abcd-bc-d')
+('a([bc]+)(c*d)', 'abcd', 0, 'found+"-"+g1+"-"+g2', 'abcd-bc-d')
+('a([bc]*)(c+d)', 'abcd', 0, 'found+"-"+g1+"-"+g2', 'abcd-b-cd')
+('a[bcd]*dcdcde', 'adcdcde', 0, 'found', 'adcdcde')
+('a[bcd]+dcdcde', 'adcdcde', 1)
+('(ab|a)b*c', 'abc', 0, 'found+"-"+g1', 'abc-ab')
+('((a)(b)c)(d)', 'abcd', 0, 'g1+"-"+g2+"-"+g3+"-"+g4', 'abc-a-b-d')
+('[a-zA-Z_][a-zA-Z0-9_]*', 'alpha', 0, 'found', 'alpha')
+('^a(bc+|b[eh])g|.h$', 'abh', 0, 'found+"-"+g1', 'bh-')
+=== grouping error ('^a(bc+|b[eh])g|.h$', 'abh', 0, 'found+"-"+g1', 'bh-') 'bh-None' should be 'bh-'
+('(bc+d$|ef*g.|h?i(j|k))', 'effgz', 0, 'found+"-"+g1+"-"+g2', 'effgz-effgz-')
+=== grouping error ('(bc+d$|ef*g.|h?i(j|k))', 'effgz', 0, 'found+"-"+g1+"-"+g2', 'effgz-effgz-') 'effgz-effgz-None' should be 'effgz-effgz-'
+('(bc+d$|ef*g.|h?i(j|k))', 'ij', 0, 'found+"-"+g1+"-"+g2', 'ij-ij-j')
+('(bc+d$|ef*g.|h?i(j|k))', 'effg', 1)
+('(bc+d$|ef*g.|h?i(j|k))', 'bcdd', 1)
+('(bc+d$|ef*g.|h?i(j|k))', 'reffgz', 0, 'found+"-"+g1+"-"+g2', 'effgz-effgz-')
+=== grouping error ('(bc+d$|ef*g.|h?i(j|k))', 'reffgz', 0, 'found+"-"+g1+"-"+g2', 'effgz-effgz-') 'effgz-effgz-None' should be 'effgz-effgz-'
+('((((((((((a))))))))))', 'a', 0, 'g10', 'a')
+('((((((((((a))))))))))\\10', 'aa', 0, 'found', 'aa')
+('((((((((((a))))))))))\\41', 'aa', 1)
+=== Syntax error: ('((((((((((a))))))))))\\41', 'aa', 1)
+('((((((((((a))))))))))\\41', 'a!', 0, 'found', 'a!')
+=== Syntax error: ('((((((((((a))))))))))\\41', 'a!', 0, 'found', 'a!')
+('(((((((((a)))))))))', 'a', 0, 'found', 'a')
+('multiple words of text', 'uh-uh', 1)
+('multiple words', 'multiple words, yeah', 0, 'found', 'multiple words')
+('(.*)c(.*)', 'abcde', 0, 'found+"-"+g1+"-"+g2', 'abcde-ab-de')
+('\\((.*), (.*)\\)', '(a, b)', 0, '(g2, g1)', '(b, a)')
+=== grouping error ('\\((.*), (.*)\\)', '(a, b)', 0, '(g2, g1)', '(b, a)') ('b', 'a') should be '(b, a)'
+('[k]', 'ab', 1)
+('a[-]?c', 'ac', 0, 'found', 'ac')
+('(abc)\\1', 'abcabc', 0, 'g1', 'abc')
+('([a-c]*)\\1', 'abcabc', 0, 'g1', 'abc')
+('(?i)abc', 'ABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)abc', 'ABC', 0, 'found', 'ABC')
+('(?i)abc', 'XBC', 1)
+('(?i)abc', 'AXC', 1)
+('(?i)abc', 'ABX', 1)
+('(?i)abc', 'XABCY', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)abc', 'XABCY', 0, 'found', 'ABC')
+('(?i)abc', 'ABABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)abc', 'ABABC', 0, 'found', 'ABC')
+('(?i)ab*c', 'ABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)ab*c', 'ABC', 0, 'found', 'ABC')
+('(?i)ab*bc', 'ABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)ab*bc', 'ABC', 0, 'found', 'ABC')
+('(?i)ab*bc', 'ABBC', 0, 'found', 'ABBC')
+=== Failed incorrectly ('(?i)ab*bc', 'ABBC', 0, 'found', 'ABBC')
+('(?i)ab*?bc', 'ABBBBC', 0, 'found', 'ABBBBC')
+*** Unexpected error ***
+('(?i)ab{0,}?bc', 'ABBBBC', 0, 'found', 'ABBBBC')
+*** Unexpected error ***
+('(?i)ab+?bc', 'ABBC', 0, 'found', 'ABBC')
+=== Failed incorrectly ('(?i)ab+?bc', 'ABBC', 0, 'found', 'ABBC')
+('(?i)ab+bc', 'ABC', 1)
+('(?i)ab+bc', 'ABQ', 1)
+('(?i)ab{1,}bc', 'ABQ', 1)
+*** Unexpected error ***
+('(?i)ab+bc', 'ABBBBC', 0, 'found', 'ABBBBC')
+=== Failed incorrectly ('(?i)ab+bc', 'ABBBBC', 0, 'found', 'ABBBBC')
+('(?i)ab{1,}?bc', 'ABBBBC', 0, 'found', 'ABBBBC')
+*** Unexpected error ***
+('(?i)ab{1,3}?bc', 'ABBBBC', 0, 'found', 'ABBBBC')
+=== Failed incorrectly ('(?i)ab{1,3}?bc', 'ABBBBC', 0, 'found', 'ABBBBC')
+('(?i)ab{3,4}?bc', 'ABBBBC', 0, 'found', 'ABBBBC')
+=== Failed incorrectly ('(?i)ab{3,4}?bc', 'ABBBBC', 0, 'found', 'ABBBBC')
+('(?i)ab{4,5}?bc', 'ABBBBC', 1)
+('(?i)ab??bc', 'ABBC', 0, 'found', 'ABBC')
+=== Failed incorrectly ('(?i)ab??bc', 'ABBC', 0, 'found', 'ABBC')
+('(?i)ab??bc', 'ABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)ab??bc', 'ABC', 0, 'found', 'ABC')
+('(?i)ab{0,1}?bc', 'ABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)ab{0,1}?bc', 'ABC', 0, 'found', 'ABC')
+('(?i)ab??bc', 'ABBBBC', 1)
+('(?i)ab??c', 'ABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)ab??c', 'ABC', 0, 'found', 'ABC')
+('(?i)ab{0,1}?c', 'ABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)ab{0,1}?c', 'ABC', 0, 'found', 'ABC')
+('(?i)^abc$', 'ABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)^abc$', 'ABC', 0, 'found', 'ABC')
+('(?i)^abc$', 'ABCC', 1)
+('(?i)^abc', 'ABCC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)^abc', 'ABCC', 0, 'found', 'ABC')
+('(?i)^abc$', 'AABC', 1)
+('(?i)abc$', 'AABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)abc$', 'AABC', 0, 'found', 'ABC')
+('(?i)^', 'ABC', 0, 'found', '')
+('(?i)$', 'ABC', 0, 'found', '')
+('(?i)a.c', 'ABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)a.c', 'ABC', 0, 'found', 'ABC')
+('(?i)a.c', 'AXC', 0, 'found', 'AXC')
+=== Failed incorrectly ('(?i)a.c', 'AXC', 0, 'found', 'AXC')
+('(?i)a.*?c', 'AXYZC', 0, 'found', 'AXYZC')
+*** Unexpected error ***
+('(?i)a.*c', 'AXYZD', 1)
+('(?i)a[bc]d', 'ABC', 1)
+('(?i)a[bc]d', 'ABD', 0, 'found', 'ABD')
+=== Failed incorrectly ('(?i)a[bc]d', 'ABD', 0, 'found', 'ABD')
+('(?i)a[b-d]e', 'ABD', 1)
+('(?i)a[b-d]e', 'ACE', 0, 'found', 'ACE')
+=== Failed incorrectly ('(?i)a[b-d]e', 'ACE', 0, 'found', 'ACE')
+('(?i)a[b-d]', 'AAC', 0, 'found', 'AC')
+=== Failed incorrectly ('(?i)a[b-d]', 'AAC', 0, 'found', 'AC')
+('(?i)a[-b]', 'A-', 0, 'found', 'A-')
+=== Failed incorrectly ('(?i)a[-b]', 'A-', 0, 'found', 'A-')
+('(?i)a[b-]', 'A-', 0, 'found', 'A-')
+=== Failed incorrectly ('(?i)a[b-]', 'A-', 0, 'found', 'A-')
+('(?i)a[b-a]', '-', 2)
+('(?i)a[]b', '-', 2)
+('(?i)a[', '-', 2)
+('(?i)a]', 'A]', 0, 'found', 'A]')
+=== Failed incorrectly ('(?i)a]', 'A]', 0, 'found', 'A]')
+('(?i)a[]]b', 'A]B', 0, 'found', 'A]B')
+=== Failed incorrectly ('(?i)a[]]b', 'A]B', 0, 'found', 'A]B')
+('(?i)a[^bc]d', 'AED', 0, 'found', 'AED')
+=== Failed incorrectly ('(?i)a[^bc]d', 'AED', 0, 'found', 'AED')
+('(?i)a[^bc]d', 'ABD', 1)
+('(?i)a[^-b]c', 'ADC', 0, 'found', 'ADC')
+=== Failed incorrectly ('(?i)a[^-b]c', 'ADC', 0, 'found', 'ADC')
+('(?i)a[^-b]c', 'A-C', 1)
+('(?i)a[^]b]c', 'A]C', 1)
+('(?i)a[^]b]c', 'ADC', 0, 'found', 'ADC')
+=== Failed incorrectly ('(?i)a[^]b]c', 'ADC', 0, 'found', 'ADC')
+('(?i)ab|cd', 'ABC', 0, 'found', 'AB')
+=== Failed incorrectly ('(?i)ab|cd', 'ABC', 0, 'found', 'AB')
+('(?i)ab|cd', 'ABCD', 0, 'found', 'AB')
+=== Failed incorrectly ('(?i)ab|cd', 'ABCD', 0, 'found', 'AB')
+('(?i)()ef', 'DEF', 0, 'found+"-"+g1', 'EF-')
+=== Syntax error: ('(?i)()ef', 'DEF', 0, 'found+"-"+g1', 'EF-')
+('(?i)*a', '-', 2)
+('(?i)(*)b', '-', 2)
+('(?i)$b', 'B', 1)
+('(?i)a\\', '-', 2)
+('(?i)a\\(b', 'A(B', 0, 'found+"-"+g1', 'A(B-')
+=== Failed incorrectly ('(?i)a\\(b', 'A(B', 0, 'found+"-"+g1', 'A(B-')
+('(?i)a\\(*b', 'AB', 0, 'found', 'AB')
+=== Failed incorrectly ('(?i)a\\(*b', 'AB', 0, 'found', 'AB')
+('(?i)a\\(*b', 'A((B', 0, 'found', 'A((B')
+=== Failed incorrectly ('(?i)a\\(*b', 'A((B', 0, 'found', 'A((B')
+('(?i)a\\\\b', 'A\\B', 0, 'found', 'A\\B')
+=== Failed incorrectly ('(?i)a\\\\b', 'A\\B', 0, 'found', 'A\\B')
+('(?i)abc)', '-', 2)
+('(?i)(abc', '-', 2)
+('(?i)((a))', 'ABC', 0, 'found+"-"+g1+"-"+g2', 'A-A-A')
+=== Failed incorrectly ('(?i)((a))', 'ABC', 0, 'found+"-"+g1+"-"+g2', 'A-A-A')
+('(?i)(a)b(c)', 'ABC', 0, 'found+"-"+g1+"-"+g2', 'ABC-A-C')
+=== Failed incorrectly ('(?i)(a)b(c)', 'ABC', 0, 'found+"-"+g1+"-"+g2', 'ABC-A-C')
+('(?i)a+b+c', 'AABBABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)a+b+c', 'AABBABC', 0, 'found', 'ABC')
+('(?i)a{1,}b{1,}c', 'AABBABC', 0, 'found', 'ABC')
+*** Unexpected error ***
+('(?i)a.+?c', 'ABCABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)a.+?c', 'ABCABC', 0, 'found', 'ABC')
+('(?i)a.*?c', 'ABCABC', 0, 'found', 'ABC')
+*** Unexpected error ***
+('(?i)a.{0,5}?c', 'ABCABC', 0, 'found', 'ABC')
+=== Failed incorrectly ('(?i)a.{0,5}?c', 'ABCABC', 0, 'found', 'ABC')
+('(?i)(a+|b)*', 'AB', 0, 'found+"-"+g1', 'AB-B')
+=== grouping error ('(?i)(a+|b)*', 'AB', 0, 'found+"-"+g1', 'AB-B') '-None' should be 'AB-B'
+('(?i)(a+|b){0,}', 'AB', 0, 'found+"-"+g1', 'AB-B')
+*** Unexpected error ***
+('(?i)(a+|b)+', 'AB', 0, 'found+"-"+g1', 'AB-B')
+=== Failed incorrectly ('(?i)(a+|b)+', 'AB', 0, 'found+"-"+g1', 'AB-B')
+('(?i)(a+|b){1,}', 'AB', 0, 'found+"-"+g1', 'AB-B')
+*** Unexpected error ***
+('(?i)(a+|b)?', 'AB', 0, 'found+"-"+g1', 'A-A')
+=== grouping error ('(?i)(a+|b)?', 'AB', 0, 'found+"-"+g1', 'A-A') '-None' should be 'A-A'
+('(?i)(a+|b){0,1}', 'AB', 0, 'found+"-"+g1', 'A-A')
+=== grouping error ('(?i)(a+|b){0,1}', 'AB', 0, 'found+"-"+g1', 'A-A') '-None' should be 'A-A'
+('(?i)(a+|b){0,1}?', 'AB', 0, 'found+"-"+g1', '-')
+=== grouping error ('(?i)(a+|b){0,1}?', 'AB', 0, 'found+"-"+g1', '-') '-None' should be '-'
+('(?i))(', '-', 2)
+('(?i)[^ab]*', 'CDE', 0, 'found', 'CDE')
+('(?i)abc', '', 1)
+('(?i)a*', '', 0, 'found', '')
+('(?i)([abc])*d', 'ABBBCD', 0, 'found+"-"+g1', 'ABBBCD-C')
+=== Failed incorrectly ('(?i)([abc])*d', 'ABBBCD', 0, 'found+"-"+g1', 'ABBBCD-C')
+('(?i)([abc])*bcd', 'ABCD', 0, 'found+"-"+g1', 'ABCD-A')
+=== Failed incorrectly ('(?i)([abc])*bcd', 'ABCD', 0, 'found+"-"+g1', 'ABCD-A')
+('(?i)a|b|c|d|e', 'E', 0, 'found', 'E')
+=== Failed incorrectly ('(?i)a|b|c|d|e', 'E', 0, 'found', 'E')
+('(?i)(a|b|c|d|e)f', 'EF', 0, 'found+"-"+g1', 'EF-E')
+=== Failed incorrectly ('(?i)(a|b|c|d|e)f', 'EF', 0, 'found+"-"+g1', 'EF-E')
+('(?i)abcd*efg', 'ABCDEFG', 0, 'found', 'ABCDEFG')
+=== Failed incorrectly ('(?i)abcd*efg', 'ABCDEFG', 0, 'found', 'ABCDEFG')
+('(?i)ab*', 'XABYABBBZ', 0, 'found', 'AB')
+=== Failed incorrectly ('(?i)ab*', 'XABYABBBZ', 0, 'found', 'AB')
+('(?i)ab*', 'XAYABBBZ', 0, 'found', 'A')
+=== Failed incorrectly ('(?i)ab*', 'XAYABBBZ', 0, 'found', 'A')
+('(?i)(ab|cd)e', 'ABCDE', 0, 'found+"-"+g1', 'CDE-CD')
+=== Failed incorrectly ('(?i)(ab|cd)e', 'ABCDE', 0, 'found+"-"+g1', 'CDE-CD')
+('(?i)[abhgefdc]ij', 'HIJ', 0, 'found', 'HIJ')
+=== Failed incorrectly ('(?i)[abhgefdc]ij', 'HIJ', 0, 'found', 'HIJ')
+('(?i)^(ab|cd)e', 'ABCDE', 1)
+('(?i)(abc|)ef', 'ABCDEF', 0, 'found+"-"+g1', 'EF-')
+=== Syntax error: ('(?i)(abc|)ef', 'ABCDEF', 0, 'found+"-"+g1', 'EF-')
+('(?i)(a|b)c*d', 'ABCD', 0, 'found+"-"+g1', 'BCD-B')
+=== Failed incorrectly ('(?i)(a|b)c*d', 'ABCD', 0, 'found+"-"+g1', 'BCD-B')
+('(?i)(ab|ab*)bc', 'ABC', 0, 'found+"-"+g1', 'ABC-A')
+=== Failed incorrectly ('(?i)(ab|ab*)bc', 'ABC', 0, 'found+"-"+g1', 'ABC-A')
+('(?i)a([bc]*)c*', 'ABC', 0, 'found+"-"+g1', 'ABC-BC')
+=== Failed incorrectly ('(?i)a([bc]*)c*', 'ABC', 0, 'found+"-"+g1', 'ABC-BC')
+('(?i)a([bc]*)(c*d)', 'ABCD', 0, 'found+"-"+g1+"-"+g2', 'ABCD-BC-D')
+=== Failed incorrectly ('(?i)a([bc]*)(c*d)', 'ABCD', 0, 'found+"-"+g1+"-"+g2', 'ABCD-BC-D')
+('(?i)a([bc]+)(c*d)', 'ABCD', 0, 'found+"-"+g1+"-"+g2', 'ABCD-BC-D')
+=== Failed incorrectly ('(?i)a([bc]+)(c*d)', 'ABCD', 0, 'found+"-"+g1+"-"+g2', 'ABCD-BC-D')
+('(?i)a([bc]*)(c+d)', 'ABCD', 0, 'found+"-"+g1+"-"+g2', 'ABCD-B-CD')
+=== Failed incorrectly ('(?i)a([bc]*)(c+d)', 'ABCD', 0, 'found+"-"+g1+"-"+g2', 'ABCD-B-CD')
+('(?i)a[bcd]*dcdcde', 'ADCDCDE', 0, 'found', 'ADCDCDE')
+=== Failed incorrectly ('(?i)a[bcd]*dcdcde', 'ADCDCDE', 0, 'found', 'ADCDCDE')
+('(?i)a[bcd]+dcdcde', 'ADCDCDE', 1)
+('(?i)(ab|a)b*c', 'ABC', 0, 'found+"-"+g1', 'ABC-AB')
+=== Failed incorrectly ('(?i)(ab|a)b*c', 'ABC', 0, 'found+"-"+g1', 'ABC-AB')
+('(?i)((a)(b)c)(d)', 'ABCD', 0, 'g1+"-"+g2+"-"+g3+"-"+g4', 'ABC-A-B-D')
+=== Failed incorrectly ('(?i)((a)(b)c)(d)', 'ABCD', 0, 'g1+"-"+g2+"-"+g3+"-"+g4', 'ABC-A-B-D')
+('(?i)[a-zA-Z_][a-zA-Z0-9_]*', 'ALPHA', 0, 'found', 'ALPHA')
+('(?i)^a(bc+|b[eh])g|.h$', 'ABH', 0, 'found+"-"+g1', 'BH-')
+=== Failed incorrectly ('(?i)^a(bc+|b[eh])g|.h$', 'ABH', 0, 'found+"-"+g1', 'BH-')
+('(?i)(bc+d$|ef*g.|h?i(j|k))', 'EFFGZ', 0, 'found+"-"+g1+"-"+g2', 'EFFGZ-EFFGZ-')
+=== Failed incorrectly ('(?i)(bc+d$|ef*g.|h?i(j|k))', 'EFFGZ', 0, 'found+"-"+g1+"-"+g2', 'EFFGZ-EFFGZ-')
+('(?i)(bc+d$|ef*g.|h?i(j|k))', 'IJ', 0, 'found+"-"+g1+"-"+g2', 'IJ-IJ-J')
+=== Failed incorrectly ('(?i)(bc+d$|ef*g.|h?i(j|k))', 'IJ', 0, 'found+"-"+g1+"-"+g2', 'IJ-IJ-J')
+('(?i)(bc+d$|ef*g.|h?i(j|k))', 'EFFG', 1)
+('(?i)(bc+d$|ef*g.|h?i(j|k))', 'BCDD', 1)
+('(?i)(bc+d$|ef*g.|h?i(j|k))', 'REFFGZ', 0, 'found+"-"+g1+"-"+g2', 'EFFGZ-EFFGZ-')
+=== Failed incorrectly ('(?i)(bc+d$|ef*g.|h?i(j|k))', 'REFFGZ', 0, 'found+"-"+g1+"-"+g2', 'EFFGZ-EFFGZ-')
+('(?i)((((((((((a))))))))))', 'A', 0, 'g10', 'A')
+=== Failed incorrectly ('(?i)((((((((((a))))))))))', 'A', 0, 'g10', 'A')
+('(?i)((((((((((a))))))))))\\10', 'AA', 0, 'found', 'AA')
+=== Failed incorrectly ('(?i)((((((((((a))))))))))\\10', 'AA', 0, 'found', 'AA')
+('(?i)((((((((((a))))))))))\\41', 'AA', 1)
+=== Syntax error: ('(?i)((((((((((a))))))))))\\41', 'AA', 1)
+('(?i)((((((((((a))))))))))\\41', 'A!', 0, 'found', 'A!')
+=== Syntax error: ('(?i)((((((((((a))))))))))\\41', 'A!', 0, 'found', 'A!')
+('(?i)(((((((((a)))))))))', 'A', 0, 'found', 'A')
+=== Failed incorrectly ('(?i)(((((((((a)))))))))', 'A', 0, 'found', 'A')
+('(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))', 'A', 0, 'g1', 'A')
+=== Failed incorrectly ('(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))', 'A', 0, 'g1', 'A')
+('(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))', 'C', 0, 'g1', 'C')
+=== Failed incorrectly ('(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))', 'C', 0, 'g1', 'C')
+('(?i)multiple words of text', 'UH-UH', 1)
+('(?i)multiple words', 'MULTIPLE WORDS, YEAH', 0, 'found', 'MULTIPLE WORDS')
+=== Failed incorrectly ('(?i)multiple words', 'MULTIPLE WORDS, YEAH', 0, 'found', 'MULTIPLE WORDS')
+('(?i)(.*)c(.*)', 'ABCDE', 0, 'found+"-"+g1+"-"+g2', 'ABCDE-AB-DE')
+=== Failed incorrectly ('(?i)(.*)c(.*)', 'ABCDE', 0, 'found+"-"+g1+"-"+g2', 'ABCDE-AB-DE')
+('(?i)\\((.*), (.*)\\)', '(A, B)', 0, '(g2, g1)', '(B, A)')
+=== grouping error ('(?i)\\((.*), (.*)\\)', '(A, B)', 0, '(g2, g1)', '(B, A)') ('B', 'A') should be '(B, A)'
+('(?i)[k]', 'AB', 1)
+('(?i)a[-]?c', 'AC', 0, 'found', 'AC')
+=== Failed incorrectly ('(?i)a[-]?c', 'AC', 0, 'found', 'AC')
+('(?i)(abc)\\1', 'ABCABC', 0, 'g1', 'ABC')
+=== Failed incorrectly ('(?i)(abc)\\1', 'ABCABC', 0, 'g1', 'ABC')
+('(?i)([a-c]*)\\1', 'ABCABC', 0, 'g1', 'ABC')
+=== grouping error ('(?i)([a-c]*)\\1', 'ABCABC', 0, 'g1', 'ABC') '' should be 'ABC'
+('a(?!b).', 'abad', 0, 'found', 'ad')
+=== Syntax error: ('a(?!b).', 'abad', 0, 'found', 'ad')
+('a(?=d).', 'abad', 0, 'found', 'ad')
+=== Syntax error: ('a(?=d).', 'abad', 0, 'found', 'ad')
+('a(?=c|d).', 'abad', 0, 'found', 'ad')
+=== Syntax error: ('a(?=c|d).', 'abad', 0, 'found', 'ad')
+('a(?:b|c|d)(.)', 'ace', 0, 'g1', 'e')
+('a(?:b|c|d)*(.)', 'ace', 0, 'g1', 'e')
+('a(?:b|c|d)+?(.)', 'ace', 0, 'g1', 'e')
+('a(?:b|(c|e){1,2}?|d)+?(.)', 'ace', 0, 'g1+"-"+g2', 'c-e')
+('^(.+)?B', 'AB', 0, 'g1', 'A')