Skip to content

Commit 16bd0ff

Browse files
committed
Merged my changes in, and added all converted Perl tests.
1 parent 337c6d4 commit 16bd0ff

File tree

1 file changed

+284
-24
lines changed

1 file changed

+284
-24
lines changed

Lib/test/re_tests.py

Lines changed: 284 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@
2020
('.*Python', 'Python'), # Bad text literal
2121
('.*Python.*', 'Python'), # Worse text literal
2222
('.*(Python)', 'Python'), # Bad text literal with grouping
23-
23+
2424
('(Python|Perl|Tcl', 'Perl'), # Alternation
2525
('(Python|Perl|Tcl)', 'Perl'), # Grouped alternation
2626
('(Python)\\1', 'PythonPython'), # Backreference
@@ -38,8 +38,10 @@
3838
# 3: a string that will be eval()'ed to produce a test string.
3939
# This is an arbitrary Python expression; the available
4040
# variables are "found" (the whole match), and "g1", "g2", ...
41-
# up to "g10" contain the contents of each group, or the
42-
# string 'None' if the group wasn't given a value.
41+
# up to "g99" contain the contents of each group, or the
42+
# string 'None' if the group wasn't given a value, or the
43+
# string 'Error' if the group index was out of range;
44+
# also "groups", the return value of m.group() (a tuple).
4345
# 4: The expected result of evaluating the expression.
4446
# If the two don't match, an error is reported.
4547
#
@@ -80,11 +82,7 @@
8082
('a[b-d]e', 'abd', FAIL),
8183
('a[b-d]e', 'ace', SUCCEED, 'found', 'ace'),
8284
('a[b-d]', 'aac', SUCCEED, 'found', 'ac'),
83-
84-
# In 're', the way to put a '-' in a set is to escape it: '[\-]'
85-
# ('a[-b]', 'a-', SUCCEED, 'found', 'a-'),
86-
87-
('a[-b]', 'a-', SYNTAX_ERROR),
85+
('a[-b]', 'a-', SUCCEED, 'found', 'a-'),
8886
('a[\\-b]', 'a-', SUCCEED, 'found', 'a-'),
8987
('a[b-]', 'a-', SYNTAX_ERROR),
9088
('a[]b', '-', SYNTAX_ERROR),
@@ -93,17 +91,14 @@
9391
('abc)', '-', SYNTAX_ERROR),
9492
('(abc', '-', SYNTAX_ERROR),
9593
('a]', 'a]', SUCCEED, 'found', 'a]'),
96-
97-
# In 're', the way to put a ']' in a set is to escape it: '[\]]'
98-
# ('a[]]b', 'a]b', SUCCEED, 'found', 'a]b'),
99-
94+
('a[]]b', 'a]b', SUCCEED, 'found', 'a]b'),
10095
('a[\]]b', 'a]b', SUCCEED, 'found', 'a]b'),
10196
('a[^bc]d', 'aed', SUCCEED, 'found', 'aed'),
10297
('a[^bc]d', 'abd', FAIL),
103-
('a[^\\-b]c', 'adc', SUCCEED, 'found', 'adc'),
104-
('a[^\\-b]c', 'a-c', FAIL),
105-
('a[^\\]b]c', 'a]c', FAIL),
106-
('a[^\\]b]c', 'adc', SUCCEED, 'found', 'adc'),
98+
('a[^-b]c', 'adc', SUCCEED, 'found', 'adc'),
99+
('a[^-b]c', 'a-c', FAIL),
100+
('a[^]b]c', 'a]c', FAIL),
101+
('a[^]b]c', 'adc', SUCCEED, 'found', 'adc'),
107102
('\\ba\\b', 'a-', SUCCEED, '"-"', '-'),
108103
('\\ba\\b', '-a', SUCCEED, '"-"', '-'),
109104
('\\ba\\b', '-a-', SUCCEED, '"-"', '-'),
@@ -114,10 +109,7 @@
114109
('ab|cd', 'abcd', SUCCEED, 'found', 'ab'),
115110
('()ef', 'def', SUCCEED, 'found+"-"+g1', 'ef-'),
116111
('$b', 'b', FAIL),
117-
118-
# This is an error in 1.5
119-
# ('a(b', 'a(b', SUCCEED, 'found+"-"+g1', 'a(b-None'),
120-
112+
('a\\(b', 'a(b', SUCCEED, 'found+"-"+g1', 'a(b-Error'),
121113
('a\\(*b', 'ab', SUCCEED, 'found', 'ab'),
122114
('a\\(*b', 'a((b', SUCCEED, 'found', 'a((b'),
123115
('a\\\\b', 'a\\b', SUCCEED, 'found', 'a\\b'),
@@ -138,8 +130,7 @@
138130
('ab*', 'xayabbbz', SUCCEED, 'found', 'a'),
139131
('(ab|cd)e', 'abcde', SUCCEED, 'found+"-"+g1', 'cde-cd'),
140132
('[abhgefdc]ij', 'hij', SUCCEED, 'found', 'hij'),
141-
('^(ab|cd)e', 'abcde', FAIL,
142-
'xg1y', 'xy'),
133+
('^(ab|cd)e', 'abcde', FAIL, 'xg1y', 'xy'),
143134
('(abc|)ef', 'abcdef', SUCCEED, 'found+"-"+g1', 'ef-'),
144135
('(a|b)c*d', 'abcd', SUCCEED, 'found+"-"+g1', 'bcd-b'),
145136
('(ab|ab*)bc', 'abc', SUCCEED, 'found+"-"+g1', 'abc-a'),
@@ -205,6 +196,275 @@
205196
('\\1', 'a', SYNTAX_ERROR),
206197
('\\09', chr(0) + '9', SUCCEED, 'found', chr(0) + '9'),
207198
('\\141', 'a', SUCCEED, 'found', 'a'),
208-
('(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\119', 'abcdefghijklk9', SUCCEED, 'found+"-"+g11', 'abcdefghijklk9-k')
199+
('(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\\119', 'abcdefghijklk9', SUCCEED, 'found+"-"+g11', 'abcdefghijklk9-k'),
209200

210-
]
201+
# All tests from Perl
202+
203+
('abc', 'abc', SUCCEED, 'found', 'abc'),
204+
('abc', 'xbc', FAIL),
205+
('abc', 'axc', FAIL),
206+
('abc', 'abx', FAIL),
207+
('abc', 'xabcy', SUCCEED, 'found', 'abc'),
208+
('abc', 'ababc', SUCCEED, 'found', 'abc'),
209+
('ab*c', 'abc', SUCCEED, 'found', 'abc'),
210+
('ab*bc', 'abc', SUCCEED, 'found', 'abc'),
211+
('ab*bc', 'abbc', SUCCEED, 'found', 'abbc'),
212+
('ab*bc', 'abbbbc', SUCCEED, 'found', 'abbbbc'),
213+
('ab{0,}bc', 'abbbbc', SUCCEED, 'found', 'abbbbc'),
214+
('ab+bc', 'abbc', SUCCEED, 'found', 'abbc'),
215+
('ab+bc', 'abc', FAIL),
216+
('ab+bc', 'abq', FAIL),
217+
('ab{1,}bc', 'abq', FAIL),
218+
('ab+bc', 'abbbbc', SUCCEED, 'found', 'abbbbc'),
219+
('ab{1,}bc', 'abbbbc', SUCCEED, 'found', 'abbbbc'),
220+
('ab{1,3}bc', 'abbbbc', SUCCEED, 'found', 'abbbbc'),
221+
('ab{3,4}bc', 'abbbbc', SUCCEED, 'found', 'abbbbc'),
222+
('ab{4,5}bc', 'abbbbc', FAIL),
223+
('ab?bc', 'abbc', SUCCEED, 'found', 'abbc'),
224+
('ab?bc', 'abc', SUCCEED, 'found', 'abc'),
225+
('ab{0,1}bc', 'abc', SUCCEED, 'found', 'abc'),
226+
('ab?bc', 'abbbbc', FAIL),
227+
('ab?c', 'abc', SUCCEED, 'found', 'abc'),
228+
('ab{0,1}c', 'abc', SUCCEED, 'found', 'abc'),
229+
('^abc$', 'abc', SUCCEED, 'found', 'abc'),
230+
('^abc$', 'abcc', FAIL),
231+
('^abc', 'abcc', SUCCEED, 'found', 'abc'),
232+
('^abc$', 'aabc', FAIL),
233+
('abc$', 'aabc', SUCCEED, 'found', 'abc'),
234+
('^', 'abc', SUCCEED, 'found', ''),
235+
('$', 'abc', SUCCEED, 'found', ''),
236+
('a.c', 'abc', SUCCEED, 'found', 'abc'),
237+
('a.c', 'axc', SUCCEED, 'found', 'axc'),
238+
('a.*c', 'axyzc', SUCCEED, 'found', 'axyzc'),
239+
('a.*c', 'axyzd', FAIL),
240+
('a[bc]d', 'abc', FAIL),
241+
('a[bc]d', 'abd', SUCCEED, 'found', 'abd'),
242+
('a[b-d]e', 'abd', FAIL),
243+
('a[b-d]e', 'ace', SUCCEED, 'found', 'ace'),
244+
('a[b-d]', 'aac', SUCCEED, 'found', 'ac'),
245+
('a[-b]', 'a-', SUCCEED, 'found', 'a-'),
246+
('a[b-]', 'a-', SUCCEED, 'found', 'a-'),
247+
('a[b-a]', '-', SYNTAX_ERROR),
248+
('a[]b', '-', SYNTAX_ERROR),
249+
('a[', '-', SYNTAX_ERROR),
250+
('a]', 'a]', SUCCEED, 'found', 'a]'),
251+
('a[]]b', 'a]b', SUCCEED, 'found', 'a]b'),
252+
('a[^bc]d', 'aed', SUCCEED, 'found', 'aed'),
253+
('a[^bc]d', 'abd', FAIL),
254+
('a[^-b]c', 'adc', SUCCEED, 'found', 'adc'),
255+
('a[^-b]c', 'a-c', FAIL),
256+
('a[^]b]c', 'a]c', FAIL),
257+
('a[^]b]c', 'adc', SUCCEED, 'found', 'adc'),
258+
('ab|cd', 'abc', SUCCEED, 'found', 'ab'),
259+
('ab|cd', 'abcd', SUCCEED, 'found', 'ab'),
260+
('()ef', 'def', SUCCEED, 'found+"-"+g1', 'ef-'),
261+
('*a', '-', SYNTAX_ERROR),
262+
('(*)b', '-', SYNTAX_ERROR),
263+
('$b', 'b', FAIL),
264+
('a\\', '-', SYNTAX_ERROR),
265+
('a\\(b', 'a(b', SUCCEED, 'found+"-"+g1', 'a(b-'),
266+
('a\\(*b', 'ab', SUCCEED, 'found', 'ab'),
267+
('a\\(*b', 'a((b', SUCCEED, 'found', 'a((b'),
268+
('a\\\\b', 'a\\b', SUCCEED, 'found', 'a\\b'),
269+
('abc)', '-', SYNTAX_ERROR),
270+
('(abc', '-', SYNTAX_ERROR),
271+
('((a))', 'abc', SUCCEED, 'found+"-"+g1+"-"+g2', 'a-a-a'),
272+
('(a)b(c)', 'abc', SUCCEED, 'found+"-"+g1+"-"+g2', 'abc-a-c'),
273+
('a+b+c', 'aabbabc', SUCCEED, 'found', 'abc'),
274+
('a{1,}b{1,}c', 'aabbabc', SUCCEED, 'found', 'abc'),
275+
#('a**', '-', SYNTAX_ERROR),
276+
('a.+?c', 'abcabc', SUCCEED, 'found', 'abc'),
277+
('(a+|b)*', 'ab', SUCCEED, 'found+"-"+g1', 'ab-b'),
278+
('(a+|b){0,}', 'ab', SUCCEED, 'found+"-"+g1', 'ab-b'),
279+
('(a+|b)+', 'ab', SUCCEED, 'found+"-"+g1', 'ab-b'),
280+
('(a+|b){1,}', 'ab', SUCCEED, 'found+"-"+g1', 'ab-b'),
281+
('(a+|b)?', 'ab', SUCCEED, 'found+"-"+g1', 'a-a'),
282+
('(a+|b){0,1}', 'ab', SUCCEED, 'found+"-"+g1', 'a-a'),
283+
(')(', '-', SYNTAX_ERROR),
284+
('[^ab]*', 'cde', SUCCEED, 'found', 'cde'),
285+
('abc', '', FAIL),
286+
('a*', '', SUCCEED, 'found', ''),
287+
('([abc])*d', 'abbbcd', SUCCEED, 'found+"-"+g1', 'abbbcd-c'),
288+
('([abc])*bcd', 'abcd', SUCCEED, 'found+"-"+g1', 'abcd-a'),
289+
('a|b|c|d|e', 'e', SUCCEED, 'found', 'e'),
290+
('(a|b|c|d|e)f', 'ef', SUCCEED, 'found+"-"+g1', 'ef-e'),
291+
('abcd*efg', 'abcdefg', SUCCEED, 'found', 'abcdefg'),
292+
('ab*', 'xabyabbbz', SUCCEED, 'found', 'ab'),
293+
('ab*', 'xayabbbz', SUCCEED, 'found', 'a'),
294+
('(ab|cd)e', 'abcde', SUCCEED, 'found+"-"+g1', 'cde-cd'),
295+
('[abhgefdc]ij', 'hij', SUCCEED, 'found', 'hij'),
296+
('^(ab|cd)e', 'abcde', FAIL),
297+
('(abc|)ef', 'abcdef', SUCCEED, 'found+"-"+g1', 'ef-'),
298+
('(a|b)c*d', 'abcd', SUCCEED, 'found+"-"+g1', 'bcd-b'),
299+
('(ab|ab*)bc', 'abc', SUCCEED, 'found+"-"+g1', 'abc-a'),
300+
('a([bc]*)c*', 'abc', SUCCEED, 'found+"-"+g1', 'abc-bc'),
301+
('a([bc]*)(c*d)', 'abcd', SUCCEED, 'found+"-"+g1+"-"+g2', 'abcd-bc-d'),
302+
('a([bc]+)(c*d)', 'abcd', SUCCEED, 'found+"-"+g1+"-"+g2', 'abcd-bc-d'),
303+
('a([bc]*)(c+d)', 'abcd', SUCCEED, 'found+"-"+g1+"-"+g2', 'abcd-b-cd'),
304+
('a[bcd]*dcdcde', 'adcdcde', SUCCEED, 'found', 'adcdcde'),
305+
('a[bcd]+dcdcde', 'adcdcde', FAIL),
306+
('(ab|a)b*c', 'abc', SUCCEED, 'found+"-"+g1', 'abc-ab'),
307+
('((a)(b)c)(d)', 'abcd', SUCCEED, 'g1+"-"+g2+"-"+g3+"-"+g4', 'abc-a-b-d'),
308+
('[a-zA-Z_][a-zA-Z0-9_]*', 'alpha', SUCCEED, 'found', 'alpha'),
309+
('^a(bc+|b[eh])g|.h$', 'abh', SUCCEED, 'found+"-"+g1', 'bh-'),
310+
('(bc+d$|ef*g.|h?i(j|k))', 'effgz', SUCCEED, 'found+"-"+g1+"-"+g2', 'effgz-effgz-'),
311+
('(bc+d$|ef*g.|h?i(j|k))', 'ij', SUCCEED, 'found+"-"+g1+"-"+g2', 'ij-ij-j'),
312+
('(bc+d$|ef*g.|h?i(j|k))', 'effg', FAIL),
313+
('(bc+d$|ef*g.|h?i(j|k))', 'bcdd', FAIL),
314+
('(bc+d$|ef*g.|h?i(j|k))', 'reffgz', SUCCEED, 'found+"-"+g1+"-"+g2', 'effgz-effgz-'),
315+
('((((((((((a))))))))))', 'a', SUCCEED, 'g10', 'a'),
316+
('((((((((((a))))))))))\\10', 'aa', SUCCEED, 'found', 'aa'),
317+
('((((((((((a))))))))))\\41', 'aa', FAIL),
318+
('((((((((((a))))))))))\\41', 'a!', SUCCEED, 'found', 'a!'),
319+
('(((((((((a)))))))))', 'a', SUCCEED, 'found', 'a'),
320+
('multiple words of text', 'uh-uh', FAIL),
321+
('multiple words', 'multiple words, yeah', SUCCEED, 'found', 'multiple words'),
322+
('(.*)c(.*)', 'abcde', SUCCEED, 'found+"-"+g1+"-"+g2', 'abcde-ab-de'),
323+
('\\((.*), (.*)\\)', '(a, b)', SUCCEED, '(g2, g1)', '(b, a)'),
324+
('[k]', 'ab', FAIL),
325+
##('abcd', 'abcd', SUCCEED, 'found+"-"+\\found+"-"+\\\\found', 'abcd-$&-\\abcd'),
326+
##('a(bc)d', 'abcd', SUCCEED, 'g1+"-"+\\g1+"-"+\\\\g1', 'bc-$1-\\bc'),
327+
('a[-]?c', 'ac', SUCCEED, 'found', 'ac'),
328+
('(abc)\\1', 'abcabc', SUCCEED, 'g1', 'abc'),
329+
('([a-c]*)\\1', 'abcabc', SUCCEED, 'g1', 'abc'),
330+
('(?i)abc', 'ABC', SUCCEED, 'found', 'ABC'),
331+
('(?i)abc', 'XBC', FAIL),
332+
('(?i)abc', 'AXC', FAIL),
333+
('(?i)abc', 'ABX', FAIL),
334+
('(?i)abc', 'XABCY', SUCCEED, 'found', 'ABC'),
335+
('(?i)abc', 'ABABC', SUCCEED, 'found', 'ABC'),
336+
('(?i)ab*c', 'ABC', SUCCEED, 'found', 'ABC'),
337+
('(?i)ab*bc', 'ABC', SUCCEED, 'found', 'ABC'),
338+
('(?i)ab*bc', 'ABBC', SUCCEED, 'found', 'ABBC'),
339+
('(?i)ab*?bc', 'ABBBBC', SUCCEED, 'found', 'ABBBBC'),
340+
('(?i)ab{0,}?bc', 'ABBBBC', SUCCEED, 'found', 'ABBBBC'),
341+
('(?i)ab+?bc', 'ABBC', SUCCEED, 'found', 'ABBC'),
342+
('(?i)ab+bc', 'ABC', FAIL),
343+
('(?i)ab+bc', 'ABQ', FAIL),
344+
('(?i)ab{1,}bc', 'ABQ', FAIL),
345+
('(?i)ab+bc', 'ABBBBC', SUCCEED, 'found', 'ABBBBC'),
346+
('(?i)ab{1,}?bc', 'ABBBBC', SUCCEED, 'found', 'ABBBBC'),
347+
('(?i)ab{1,3}?bc', 'ABBBBC', SUCCEED, 'found', 'ABBBBC'),
348+
('(?i)ab{3,4}?bc', 'ABBBBC', SUCCEED, 'found', 'ABBBBC'),
349+
('(?i)ab{4,5}?bc', 'ABBBBC', FAIL),
350+
('(?i)ab??bc', 'ABBC', SUCCEED, 'found', 'ABBC'),
351+
('(?i)ab??bc', 'ABC', SUCCEED, 'found', 'ABC'),
352+
('(?i)ab{0,1}?bc', 'ABC', SUCCEED, 'found', 'ABC'),
353+
('(?i)ab??bc', 'ABBBBC', FAIL),
354+
('(?i)ab??c', 'ABC', SUCCEED, 'found', 'ABC'),
355+
('(?i)ab{0,1}?c', 'ABC', SUCCEED, 'found', 'ABC'),
356+
('(?i)^abc$', 'ABC', SUCCEED, 'found', 'ABC'),
357+
('(?i)^abc$', 'ABCC', FAIL),
358+
('(?i)^abc', 'ABCC', SUCCEED, 'found', 'ABC'),
359+
('(?i)^abc$', 'AABC', FAIL),
360+
('(?i)abc$', 'AABC', SUCCEED, 'found', 'ABC'),
361+
('(?i)^', 'ABC', SUCCEED, 'found', ''),
362+
('(?i)$', 'ABC', SUCCEED, 'found', ''),
363+
('(?i)a.c', 'ABC', SUCCEED, 'found', 'ABC'),
364+
('(?i)a.c', 'AXC', SUCCEED, 'found', 'AXC'),
365+
('(?i)a.*?c', 'AXYZC', SUCCEED, 'found', 'AXYZC'),
366+
('(?i)a.*c', 'AXYZD', FAIL),
367+
('(?i)a[bc]d', 'ABC', FAIL),
368+
('(?i)a[bc]d', 'ABD', SUCCEED, 'found', 'ABD'),
369+
('(?i)a[b-d]e', 'ABD', FAIL),
370+
('(?i)a[b-d]e', 'ACE', SUCCEED, 'found', 'ACE'),
371+
('(?i)a[b-d]', 'AAC', SUCCEED, 'found', 'AC'),
372+
('(?i)a[-b]', 'A-', SUCCEED, 'found', 'A-'),
373+
('(?i)a[b-]', 'A-', SUCCEED, 'found', 'A-'),
374+
('(?i)a[b-a]', '-', SYNTAX_ERROR),
375+
('(?i)a[]b', '-', SYNTAX_ERROR),
376+
('(?i)a[', '-', SYNTAX_ERROR),
377+
('(?i)a]', 'A]', SUCCEED, 'found', 'A]'),
378+
('(?i)a[]]b', 'A]B', SUCCEED, 'found', 'A]B'),
379+
('(?i)a[^bc]d', 'AED', SUCCEED, 'found', 'AED'),
380+
('(?i)a[^bc]d', 'ABD', FAIL),
381+
('(?i)a[^-b]c', 'ADC', SUCCEED, 'found', 'ADC'),
382+
('(?i)a[^-b]c', 'A-C', FAIL),
383+
('(?i)a[^]b]c', 'A]C', FAIL),
384+
('(?i)a[^]b]c', 'ADC', SUCCEED, 'found', 'ADC'),
385+
('(?i)ab|cd', 'ABC', SUCCEED, 'found', 'AB'),
386+
('(?i)ab|cd', 'ABCD', SUCCEED, 'found', 'AB'),
387+
('(?i)()ef', 'DEF', SUCCEED, 'found+"-"+g1', 'EF-'),
388+
('(?i)*a', '-', SYNTAX_ERROR),
389+
('(?i)(*)b', '-', SYNTAX_ERROR),
390+
('(?i)$b', 'B', FAIL),
391+
('(?i)a\\', '-', SYNTAX_ERROR),
392+
('(?i)a\\(b', 'A(B', SUCCEED, 'found+"-"+g1', 'A(B-'),
393+
('(?i)a\\(*b', 'AB', SUCCEED, 'found', 'AB'),
394+
('(?i)a\\(*b', 'A((B', SUCCEED, 'found', 'A((B'),
395+
('(?i)a\\\\b', 'A\\B', SUCCEED, 'found', 'A\\B'),
396+
('(?i)abc)', '-', SYNTAX_ERROR),
397+
('(?i)(abc', '-', SYNTAX_ERROR),
398+
('(?i)((a))', 'ABC', SUCCEED, 'found+"-"+g1+"-"+g2', 'A-A-A'),
399+
('(?i)(a)b(c)', 'ABC', SUCCEED, 'found+"-"+g1+"-"+g2', 'ABC-A-C'),
400+
('(?i)a+b+c', 'AABBABC', SUCCEED, 'found', 'ABC'),
401+
('(?i)a{1,}b{1,}c', 'AABBABC', SUCCEED, 'found', 'ABC'),
402+
#('(?i)a**', '-', SYNTAX_ERROR),
403+
('(?i)a.+?c', 'ABCABC', SUCCEED, 'found', 'ABC'),
404+
('(?i)a.*?c', 'ABCABC', SUCCEED, 'found', 'ABC'),
405+
('(?i)a.{0,5}?c', 'ABCABC', SUCCEED, 'found', 'ABC'),
406+
('(?i)(a+|b)*', 'AB', SUCCEED, 'found+"-"+g1', 'AB-B'),
407+
('(?i)(a+|b){0,}', 'AB', SUCCEED, 'found+"-"+g1', 'AB-B'),
408+
('(?i)(a+|b)+', 'AB', SUCCEED, 'found+"-"+g1', 'AB-B'),
409+
('(?i)(a+|b){1,}', 'AB', SUCCEED, 'found+"-"+g1', 'AB-B'),
410+
('(?i)(a+|b)?', 'AB', SUCCEED, 'found+"-"+g1', 'A-A'),
411+
('(?i)(a+|b){0,1}', 'AB', SUCCEED, 'found+"-"+g1', 'A-A'),
412+
('(?i)(a+|b){0,1}?', 'AB', SUCCEED, 'found+"-"+g1', '-'),
413+
('(?i))(', '-', SYNTAX_ERROR),
414+
('(?i)[^ab]*', 'CDE', SUCCEED, 'found', 'CDE'),
415+
('(?i)abc', '', FAIL),
416+
('(?i)a*', '', SUCCEED, 'found', ''),
417+
('(?i)([abc])*d', 'ABBBCD', SUCCEED, 'found+"-"+g1', 'ABBBCD-C'),
418+
('(?i)([abc])*bcd', 'ABCD', SUCCEED, 'found+"-"+g1', 'ABCD-A'),
419+
('(?i)a|b|c|d|e', 'E', SUCCEED, 'found', 'E'),
420+
('(?i)(a|b|c|d|e)f', 'EF', SUCCEED, 'found+"-"+g1', 'EF-E'),
421+
('(?i)abcd*efg', 'ABCDEFG', SUCCEED, 'found', 'ABCDEFG'),
422+
('(?i)ab*', 'XABYABBBZ', SUCCEED, 'found', 'AB'),
423+
('(?i)ab*', 'XAYABBBZ', SUCCEED, 'found', 'A'),
424+
('(?i)(ab|cd)e', 'ABCDE', SUCCEED, 'found+"-"+g1', 'CDE-CD'),
425+
('(?i)[abhgefdc]ij', 'HIJ', SUCCEED, 'found', 'HIJ'),
426+
('(?i)^(ab|cd)e', 'ABCDE', FAIL),
427+
('(?i)(abc|)ef', 'ABCDEF', SUCCEED, 'found+"-"+g1', 'EF-'),
428+
('(?i)(a|b)c*d', 'ABCD', SUCCEED, 'found+"-"+g1', 'BCD-B'),
429+
('(?i)(ab|ab*)bc', 'ABC', SUCCEED, 'found+"-"+g1', 'ABC-A'),
430+
('(?i)a([bc]*)c*', 'ABC', SUCCEED, 'found+"-"+g1', 'ABC-BC'),
431+
('(?i)a([bc]*)(c*d)', 'ABCD', SUCCEED, 'found+"-"+g1+"-"+g2', 'ABCD-BC-D'),
432+
('(?i)a([bc]+)(c*d)', 'ABCD', SUCCEED, 'found+"-"+g1+"-"+g2', 'ABCD-BC-D'),
433+
('(?i)a([bc]*)(c+d)', 'ABCD', SUCCEED, 'found+"-"+g1+"-"+g2', 'ABCD-B-CD'),
434+
('(?i)a[bcd]*dcdcde', 'ADCDCDE', SUCCEED, 'found', 'ADCDCDE'),
435+
('(?i)a[bcd]+dcdcde', 'ADCDCDE', FAIL),
436+
('(?i)(ab|a)b*c', 'ABC', SUCCEED, 'found+"-"+g1', 'ABC-AB'),
437+
('(?i)((a)(b)c)(d)', 'ABCD', SUCCEED, 'g1+"-"+g2+"-"+g3+"-"+g4', 'ABC-A-B-D'),
438+
('(?i)[a-zA-Z_][a-zA-Z0-9_]*', 'ALPHA', SUCCEED, 'found', 'ALPHA'),
439+
('(?i)^a(bc+|b[eh])g|.h$', 'ABH', SUCCEED, 'found+"-"+g1', 'BH-'),
440+
('(?i)(bc+d$|ef*g.|h?i(j|k))', 'EFFGZ', SUCCEED, 'found+"-"+g1+"-"+g2', 'EFFGZ-EFFGZ-'),
441+
('(?i)(bc+d$|ef*g.|h?i(j|k))', 'IJ', SUCCEED, 'found+"-"+g1+"-"+g2', 'IJ-IJ-J'),
442+
('(?i)(bc+d$|ef*g.|h?i(j|k))', 'EFFG', FAIL),
443+
('(?i)(bc+d$|ef*g.|h?i(j|k))', 'BCDD', FAIL),
444+
('(?i)(bc+d$|ef*g.|h?i(j|k))', 'REFFGZ', SUCCEED, 'found+"-"+g1+"-"+g2', 'EFFGZ-EFFGZ-'),
445+
('(?i)((((((((((a))))))))))', 'A', SUCCEED, 'g10', 'A'),
446+
('(?i)((((((((((a))))))))))\\10', 'AA', SUCCEED, 'found', 'AA'),
447+
('(?i)((((((((((a))))))))))\\41', 'AA', FAIL),
448+
('(?i)((((((((((a))))))))))\\41', 'A!', SUCCEED, 'found', 'A!'),
449+
('(?i)(((((((((a)))))))))', 'A', SUCCEED, 'found', 'A'),
450+
('(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))', 'A', SUCCEED, 'g1', 'A'),
451+
('(?i)(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))', 'C', SUCCEED, 'g1', 'C'),
452+
('(?i)multiple words of text', 'UH-UH', FAIL),
453+
('(?i)multiple words', 'MULTIPLE WORDS, YEAH', SUCCEED, 'found', 'MULTIPLE WORDS'),
454+
('(?i)(.*)c(.*)', 'ABCDE', SUCCEED, 'found+"-"+g1+"-"+g2', 'ABCDE-AB-DE'),
455+
('(?i)\\((.*), (.*)\\)', '(A, B)', SUCCEED, '(g2, g1)', '(B, A)'),
456+
('(?i)[k]', 'AB', FAIL),
457+
##('(?i)abcd', 'ABCD', SUCCEED, 'found+"-"+\\found+"-"+\\\\found', 'ABCD-$&-\\ABCD'),
458+
##('(?i)a(bc)d', 'ABCD', SUCCEED, 'g1+"-"+\\g1+"-"+\\\\g1', 'BC-$1-\\BC'),
459+
('(?i)a[-]?c', 'AC', SUCCEED, 'found', 'AC'),
460+
('(?i)(abc)\\1', 'ABCABC', SUCCEED, 'g1', 'ABC'),
461+
('(?i)([a-c]*)\\1', 'ABCABC', SUCCEED, 'g1', 'ABC'),
462+
('a(?!b).', 'abad', SUCCEED, 'found', 'ad'),
463+
('a(?=d).', 'abad', SUCCEED, 'found', 'ad'),
464+
('a(?=c|d).', 'abad', SUCCEED, 'found', 'ad'),
465+
('a(?:b|c|d)(.)', 'ace', SUCCEED, 'g1', 'e'),
466+
('a(?:b|c|d)*(.)', 'ace', SUCCEED, 'g1', 'e'),
467+
('a(?:b|c|d)+?(.)', 'ace', SUCCEED, 'g1', 'e'),
468+
('a(?:b|(c|e){1,2}?|d)+?(.)', 'ace', SUCCEED, 'g1g2', 'ce'),
469+
('^(.+)?B', 'AB', SUCCEED, 'g1', 'A'),
470+
]

0 commit comments

Comments
 (0)