|
20 | 20 | ('.*Python', 'Python'), # Bad text literal |
21 | 21 | ('.*Python.*', 'Python'), # Worse text literal |
22 | 22 | ('.*(Python)', 'Python'), # Bad text literal with grouping |
23 | | - |
| 23 | + |
24 | 24 | ('(Python|Perl|Tcl', 'Perl'), # Alternation |
25 | 25 | ('(Python|Perl|Tcl)', 'Perl'), # Grouped alternation |
26 | 26 | ('(Python)\\1', 'PythonPython'), # Backreference |
|
38 | 38 | # 3: a string that will be eval()'ed to produce a test string. |
39 | 39 | # This is an arbitrary Python expression; the available |
40 | 40 | # 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). |
43 | 45 | # 4: The expected result of evaluating the expression. |
44 | 46 | # If the two don't match, an error is reported. |
45 | 47 | # |
|
80 | 82 | ('a[b-d]e', 'abd', FAIL), |
81 | 83 | ('a[b-d]e', 'ace', SUCCEED, 'found', 'ace'), |
82 | 84 | ('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-'), |
88 | 86 | ('a[\\-b]', 'a-', SUCCEED, 'found', 'a-'), |
89 | 87 | ('a[b-]', 'a-', SYNTAX_ERROR), |
90 | 88 | ('a[]b', '-', SYNTAX_ERROR), |
|
93 | 91 | ('abc)', '-', SYNTAX_ERROR), |
94 | 92 | ('(abc', '-', SYNTAX_ERROR), |
95 | 93 | ('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'), |
100 | 95 | ('a[\]]b', 'a]b', SUCCEED, 'found', 'a]b'), |
101 | 96 | ('a[^bc]d', 'aed', SUCCEED, 'found', 'aed'), |
102 | 97 | ('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'), |
107 | 102 | ('\\ba\\b', 'a-', SUCCEED, '"-"', '-'), |
108 | 103 | ('\\ba\\b', '-a', SUCCEED, '"-"', '-'), |
109 | 104 | ('\\ba\\b', '-a-', SUCCEED, '"-"', '-'), |
|
114 | 109 | ('ab|cd', 'abcd', SUCCEED, 'found', 'ab'), |
115 | 110 | ('()ef', 'def', SUCCEED, 'found+"-"+g1', 'ef-'), |
116 | 111 | ('$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'), |
121 | 113 | ('a\\(*b', 'ab', SUCCEED, 'found', 'ab'), |
122 | 114 | ('a\\(*b', 'a((b', SUCCEED, 'found', 'a((b'), |
123 | 115 | ('a\\\\b', 'a\\b', SUCCEED, 'found', 'a\\b'), |
|
138 | 130 | ('ab*', 'xayabbbz', SUCCEED, 'found', 'a'), |
139 | 131 | ('(ab|cd)e', 'abcde', SUCCEED, 'found+"-"+g1', 'cde-cd'), |
140 | 132 | ('[abhgefdc]ij', 'hij', SUCCEED, 'found', 'hij'), |
141 | | - ('^(ab|cd)e', 'abcde', FAIL, |
142 | | - 'xg1y', 'xy'), |
| 133 | + ('^(ab|cd)e', 'abcde', FAIL, 'xg1y', 'xy'), |
143 | 134 | ('(abc|)ef', 'abcdef', SUCCEED, 'found+"-"+g1', 'ef-'), |
144 | 135 | ('(a|b)c*d', 'abcd', SUCCEED, 'found+"-"+g1', 'bcd-b'), |
145 | 136 | ('(ab|ab*)bc', 'abc', SUCCEED, 'found+"-"+g1', 'abc-a'), |
|
205 | 196 | ('\\1', 'a', SYNTAX_ERROR), |
206 | 197 | ('\\09', chr(0) + '9', SUCCEED, 'found', chr(0) + '9'), |
207 | 198 | ('\\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'), |
209 | 200 |
|
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