Mercurial > yakumo_izuru > aya
comparison vendor/github.com/dlclark/regexp2/testoutput1 @ 66:787b5ee0289d draft
Use vendored modules
Signed-off-by: Izuru Yakumo <yakumo.izuru@chaotic.ninja>
author | yakumo.izuru |
---|---|
date | Sun, 23 Jul 2023 13:18:53 +0000 |
parents | |
children |
comparison
equal
deleted
inserted
replaced
65:6d985efa0f7a | 66:787b5ee0289d |
---|---|
1 # This set of tests is for features that are compatible with all versions of | |
2 # Perl >= 5.10, in non-UTF mode. It should run clean for the 8-bit, 16-bit, and | |
3 # 32-bit PCRE libraries, and also using the perltest.pl script. | |
4 | |
5 #forbid_utf | |
6 #newline_default lf any anycrlf | |
7 #perltest | |
8 | |
9 /the quick brown fox/ | |
10 the quick brown fox | |
11 0: the quick brown fox | |
12 What do you know about the quick brown fox? | |
13 0: the quick brown fox | |
14 \= Expect no match | |
15 The quick brown FOX | |
16 No match | |
17 What do you know about THE QUICK BROWN FOX? | |
18 No match | |
19 | |
20 /The quick brown fox/i | |
21 the quick brown fox | |
22 0: the quick brown fox | |
23 The quick brown FOX | |
24 0: The quick brown FOX | |
25 What do you know about the quick brown fox? | |
26 0: the quick brown fox | |
27 What do you know about THE QUICK BROWN FOX? | |
28 0: THE QUICK BROWN FOX | |
29 | |
30 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/ | |
31 abcd\t\n\r\f\a\e9;\$\\?caxyz | |
32 0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz | |
33 | |
34 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/ | |
35 abxyzpqrrrabbxyyyypqAzz | |
36 0: abxyzpqrrrabbxyyyypqAzz | |
37 abxyzpqrrrabbxyyyypqAzz | |
38 0: abxyzpqrrrabbxyyyypqAzz | |
39 aabxyzpqrrrabbxyyyypqAzz | |
40 0: aabxyzpqrrrabbxyyyypqAzz | |
41 aaabxyzpqrrrabbxyyyypqAzz | |
42 0: aaabxyzpqrrrabbxyyyypqAzz | |
43 aaaabxyzpqrrrabbxyyyypqAzz | |
44 0: aaaabxyzpqrrrabbxyyyypqAzz | |
45 abcxyzpqrrrabbxyyyypqAzz | |
46 0: abcxyzpqrrrabbxyyyypqAzz | |
47 aabcxyzpqrrrabbxyyyypqAzz | |
48 0: aabcxyzpqrrrabbxyyyypqAzz | |
49 aaabcxyzpqrrrabbxyyyypAzz | |
50 0: aaabcxyzpqrrrabbxyyyypAzz | |
51 aaabcxyzpqrrrabbxyyyypqAzz | |
52 0: aaabcxyzpqrrrabbxyyyypqAzz | |
53 aaabcxyzpqrrrabbxyyyypqqAzz | |
54 0: aaabcxyzpqrrrabbxyyyypqqAzz | |
55 aaabcxyzpqrrrabbxyyyypqqqAzz | |
56 0: aaabcxyzpqrrrabbxyyyypqqqAzz | |
57 aaabcxyzpqrrrabbxyyyypqqqqAzz | |
58 0: aaabcxyzpqrrrabbxyyyypqqqqAzz | |
59 aaabcxyzpqrrrabbxyyyypqqqqqAzz | |
60 0: aaabcxyzpqrrrabbxyyyypqqqqqAzz | |
61 aaabcxyzpqrrrabbxyyyypqqqqqqAzz | |
62 0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz | |
63 aaaabcxyzpqrrrabbxyyyypqAzz | |
64 0: aaaabcxyzpqrrrabbxyyyypqAzz | |
65 abxyzzpqrrrabbxyyyypqAzz | |
66 0: abxyzzpqrrrabbxyyyypqAzz | |
67 aabxyzzzpqrrrabbxyyyypqAzz | |
68 0: aabxyzzzpqrrrabbxyyyypqAzz | |
69 aaabxyzzzzpqrrrabbxyyyypqAzz | |
70 0: aaabxyzzzzpqrrrabbxyyyypqAzz | |
71 aaaabxyzzzzpqrrrabbxyyyypqAzz | |
72 0: aaaabxyzzzzpqrrrabbxyyyypqAzz | |
73 abcxyzzpqrrrabbxyyyypqAzz | |
74 0: abcxyzzpqrrrabbxyyyypqAzz | |
75 aabcxyzzzpqrrrabbxyyyypqAzz | |
76 0: aabcxyzzzpqrrrabbxyyyypqAzz | |
77 aaabcxyzzzzpqrrrabbxyyyypqAzz | |
78 0: aaabcxyzzzzpqrrrabbxyyyypqAzz | |
79 aaaabcxyzzzzpqrrrabbxyyyypqAzz | |
80 0: aaaabcxyzzzzpqrrrabbxyyyypqAzz | |
81 aaaabcxyzzzzpqrrrabbbxyyyypqAzz | |
82 0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz | |
83 aaaabcxyzzzzpqrrrabbbxyyyyypqAzz | |
84 0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz | |
85 aaabcxyzpqrrrabbxyyyypABzz | |
86 0: aaabcxyzpqrrrabbxyyyypABzz | |
87 aaabcxyzpqrrrabbxyyyypABBzz | |
88 0: aaabcxyzpqrrrabbxyyyypABBzz | |
89 >>>aaabxyzpqrrrabbxyyyypqAzz | |
90 0: aaabxyzpqrrrabbxyyyypqAzz | |
91 >aaaabxyzpqrrrabbxyyyypqAzz | |
92 0: aaaabxyzpqrrrabbxyyyypqAzz | |
93 >>>>abcxyzpqrrrabbxyyyypqAzz | |
94 0: abcxyzpqrrrabbxyyyypqAzz | |
95 \= Expect no match | |
96 abxyzpqrrabbxyyyypqAzz | |
97 No match | |
98 abxyzpqrrrrabbxyyyypqAzz | |
99 No match | |
100 abxyzpqrrrabxyyyypqAzz | |
101 No match | |
102 aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz | |
103 No match | |
104 aaaabcxyzzzzpqrrrabbbxyyypqAzz | |
105 No match | |
106 aaabcxyzpqrrrabbxyyyypqqqqqqqAzz | |
107 No match | |
108 | |
109 /^(abc){1,2}zz/ | |
110 abczz | |
111 0: abczz | |
112 1: abc | |
113 abcabczz | |
114 0: abcabczz | |
115 1: abc | |
116 \= Expect no match | |
117 zz | |
118 No match | |
119 abcabcabczz | |
120 No match | |
121 >>abczz | |
122 No match | |
123 | |
124 /^(b+?|a){1,2}?c/ | |
125 bc | |
126 0: bc | |
127 1: b | |
128 bbc | |
129 0: bbc | |
130 1: b | |
131 bbbc | |
132 0: bbbc | |
133 1: bb | |
134 bac | |
135 0: bac | |
136 1: a | |
137 bbac | |
138 0: bbac | |
139 1: a | |
140 aac | |
141 0: aac | |
142 1: a | |
143 abbbbbbbbbbbc | |
144 0: abbbbbbbbbbbc | |
145 1: bbbbbbbbbbb | |
146 bbbbbbbbbbbac | |
147 0: bbbbbbbbbbbac | |
148 1: a | |
149 \= Expect no match | |
150 aaac | |
151 No match | |
152 abbbbbbbbbbbac | |
153 No match | |
154 | |
155 /^(b+|a){1,2}c/ | |
156 bc | |
157 0: bc | |
158 1: b | |
159 bbc | |
160 0: bbc | |
161 1: bb | |
162 bbbc | |
163 0: bbbc | |
164 1: bbb | |
165 bac | |
166 0: bac | |
167 1: a | |
168 bbac | |
169 0: bbac | |
170 1: a | |
171 aac | |
172 0: aac | |
173 1: a | |
174 abbbbbbbbbbbc | |
175 0: abbbbbbbbbbbc | |
176 1: bbbbbbbbbbb | |
177 bbbbbbbbbbbac | |
178 0: bbbbbbbbbbbac | |
179 1: a | |
180 \= Expect no match | |
181 aaac | |
182 No match | |
183 abbbbbbbbbbbac | |
184 No match | |
185 | |
186 /^(b+|a){1,2}?bc/ | |
187 bbc | |
188 0: bbc | |
189 1: b | |
190 | |
191 /^(b*|ba){1,2}?bc/ | |
192 babc | |
193 0: babc | |
194 1: ba | |
195 bbabc | |
196 0: bbabc | |
197 1: ba | |
198 bababc | |
199 0: bababc | |
200 1: ba | |
201 \= Expect no match | |
202 bababbc | |
203 No match | |
204 babababc | |
205 No match | |
206 | |
207 /^(ba|b*){1,2}?bc/ | |
208 babc | |
209 0: babc | |
210 1: ba | |
211 bbabc | |
212 0: bbabc | |
213 1: ba | |
214 bababc | |
215 0: bababc | |
216 1: ba | |
217 \= Expect no match | |
218 bababbc | |
219 No match | |
220 babababc | |
221 No match | |
222 | |
223 #/^\ca\cA\c[;\c:/ | |
224 # \x01\x01\e;z | |
225 # 0: \x01\x01\x1b;z | |
226 | |
227 /^[ab\]cde]/ | |
228 athing | |
229 0: a | |
230 bthing | |
231 0: b | |
232 ]thing | |
233 0: ] | |
234 cthing | |
235 0: c | |
236 dthing | |
237 0: d | |
238 ething | |
239 0: e | |
240 \= Expect no match | |
241 fthing | |
242 No match | |
243 [thing | |
244 No match | |
245 \\thing | |
246 No match | |
247 | |
248 /^[]cde]/ | |
249 ]thing | |
250 0: ] | |
251 cthing | |
252 0: c | |
253 dthing | |
254 0: d | |
255 ething | |
256 0: e | |
257 \= Expect no match | |
258 athing | |
259 No match | |
260 fthing | |
261 No match | |
262 | |
263 /^[^ab\]cde]/ | |
264 fthing | |
265 0: f | |
266 [thing | |
267 0: [ | |
268 \\thing | |
269 0: \ | |
270 \= Expect no match | |
271 athing | |
272 No match | |
273 bthing | |
274 No match | |
275 ]thing | |
276 No match | |
277 cthing | |
278 No match | |
279 dthing | |
280 No match | |
281 ething | |
282 No match | |
283 | |
284 /^[^]cde]/ | |
285 athing | |
286 0: a | |
287 fthing | |
288 0: f | |
289 \= Expect no match | |
290 ]thing | |
291 No match | |
292 cthing | |
293 No match | |
294 dthing | |
295 No match | |
296 ething | |
297 No match | |
298 | |
299 # DLC - I don't get this one | |
300 #/^\/ | |
301 # | |
302 # 0: \x81 | |
303 | |
304 #updated to handle 16-bits utf8 | |
305 /^ÿ/ | |
306 ÿ | |
307 0: \xc3\xbf | |
308 | |
309 /^[0-9]+$/ | |
310 0 | |
311 0: 0 | |
312 1 | |
313 0: 1 | |
314 2 | |
315 0: 2 | |
316 3 | |
317 0: 3 | |
318 4 | |
319 0: 4 | |
320 5 | |
321 0: 5 | |
322 6 | |
323 0: 6 | |
324 7 | |
325 0: 7 | |
326 8 | |
327 0: 8 | |
328 9 | |
329 0: 9 | |
330 10 | |
331 0: 10 | |
332 100 | |
333 0: 100 | |
334 \= Expect no match | |
335 abc | |
336 No match | |
337 | |
338 /^.*nter/ | |
339 enter | |
340 0: enter | |
341 inter | |
342 0: inter | |
343 uponter | |
344 0: uponter | |
345 | |
346 /^xxx[0-9]+$/ | |
347 xxx0 | |
348 0: xxx0 | |
349 xxx1234 | |
350 0: xxx1234 | |
351 \= Expect no match | |
352 xxx | |
353 No match | |
354 | |
355 /^.+[0-9][0-9][0-9]$/ | |
356 x123 | |
357 0: x123 | |
358 x1234 | |
359 0: x1234 | |
360 xx123 | |
361 0: xx123 | |
362 123456 | |
363 0: 123456 | |
364 \= Expect no match | |
365 123 | |
366 No match | |
367 | |
368 /^.+?[0-9][0-9][0-9]$/ | |
369 x123 | |
370 0: x123 | |
371 x1234 | |
372 0: x1234 | |
373 xx123 | |
374 0: xx123 | |
375 123456 | |
376 0: 123456 | |
377 \= Expect no match | |
378 123 | |
379 No match | |
380 | |
381 /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/ | |
382 abc!pqr=apquxz.ixr.zzz.ac.uk | |
383 0: abc!pqr=apquxz.ixr.zzz.ac.uk | |
384 1: abc | |
385 2: pqr | |
386 \= Expect no match | |
387 !pqr=apquxz.ixr.zzz.ac.uk | |
388 No match | |
389 abc!=apquxz.ixr.zzz.ac.uk | |
390 No match | |
391 abc!pqr=apquxz:ixr.zzz.ac.uk | |
392 No match | |
393 abc!pqr=apquxz.ixr.zzz.ac.ukk | |
394 No match | |
395 | |
396 /:/ | |
397 Well, we need a colon: somewhere | |
398 0: : | |
399 \= Expect no match | |
400 Fail without a colon | |
401 No match | |
402 | |
403 /([\da-f:]+)$/i | |
404 0abc | |
405 0: 0abc | |
406 1: 0abc | |
407 abc | |
408 0: abc | |
409 1: abc | |
410 fed | |
411 0: fed | |
412 1: fed | |
413 E | |
414 0: E | |
415 1: E | |
416 :: | |
417 0: :: | |
418 1: :: | |
419 5f03:12C0::932e | |
420 0: 5f03:12C0::932e | |
421 1: 5f03:12C0::932e | |
422 fed def | |
423 0: def | |
424 1: def | |
425 Any old stuff | |
426 0: ff | |
427 1: ff | |
428 \= Expect no match | |
429 0zzz | |
430 No match | |
431 gzzz | |
432 No match | |
433 fed\x20 | |
434 No match | |
435 Any old rubbish | |
436 No match | |
437 | |
438 /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/ | |
439 .1.2.3 | |
440 0: .1.2.3 | |
441 1: 1 | |
442 2: 2 | |
443 3: 3 | |
444 A.12.123.0 | |
445 0: A.12.123.0 | |
446 1: 12 | |
447 2: 123 | |
448 3: 0 | |
449 \= Expect no match | |
450 .1.2.3333 | |
451 No match | |
452 1.2.3 | |
453 No match | |
454 1234.2.3 | |
455 No match | |
456 | |
457 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ | |
458 1 IN SOA non-sp1 non-sp2( | |
459 0: 1 IN SOA non-sp1 non-sp2( | |
460 1: 1 | |
461 2: non-sp1 | |
462 3: non-sp2 | |
463 1 IN SOA non-sp1 non-sp2 ( | |
464 0: 1 IN SOA non-sp1 non-sp2 ( | |
465 1: 1 | |
466 2: non-sp1 | |
467 3: non-sp2 | |
468 \= Expect no match | |
469 1IN SOA non-sp1 non-sp2( | |
470 No match | |
471 | |
472 /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/ | |
473 a. | |
474 0: a. | |
475 Z. | |
476 0: Z. | |
477 2. | |
478 0: 2. | |
479 ab-c.pq-r. | |
480 0: ab-c.pq-r. | |
481 1: .pq-r | |
482 sxk.zzz.ac.uk. | |
483 0: sxk.zzz.ac.uk. | |
484 1: .uk | |
485 x-.y-. | |
486 0: x-.y-. | |
487 1: .y- | |
488 \= Expect no match | |
489 -abc.peq. | |
490 No match | |
491 | |
492 /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/ | |
493 *.a | |
494 0: *.a | |
495 *.b0-a | |
496 0: *.b0-a | |
497 1: 0-a | |
498 *.c3-b.c | |
499 0: *.c3-b.c | |
500 1: 3-b | |
501 2: .c | |
502 *.c-a.b-c | |
503 0: *.c-a.b-c | |
504 1: -a | |
505 2: .b-c | |
506 3: -c | |
507 \= Expect no match | |
508 *.0 | |
509 No match | |
510 *.a- | |
511 No match | |
512 *.a-b.c- | |
513 No match | |
514 *.c-a.0-c | |
515 No match | |
516 | |
517 /^(?=ab(de))(abd)(e)/ | |
518 abde | |
519 0: abde | |
520 1: de | |
521 2: abd | |
522 3: e | |
523 | |
524 /^(?!(ab)de|x)(abd)(f)/ | |
525 abdf | |
526 0: abdf | |
527 1: <unset> | |
528 2: abd | |
529 3: f | |
530 | |
531 /^(?=(ab(cd)))(ab)/ | |
532 abcd | |
533 0: ab | |
534 1: abcd | |
535 2: cd | |
536 3: ab | |
537 | |
538 /^[\da-f](\.[\da-f])*$/i | |
539 a.b.c.d | |
540 0: a.b.c.d | |
541 1: .d | |
542 A.B.C.D | |
543 0: A.B.C.D | |
544 1: .D | |
545 a.b.c.1.2.3.C | |
546 0: a.b.c.1.2.3.C | |
547 1: .C | |
548 | |
549 /^\".*\"\s*(;.*)?$/ | |
550 \"1234\" | |
551 0: "1234" | |
552 \"abcd\" ; | |
553 0: "abcd" ; | |
554 1: ; | |
555 \"\" ; rhubarb | |
556 0: "" ; rhubarb | |
557 1: ; rhubarb | |
558 \= Expect no match | |
559 \"1234\" : things | |
560 No match | |
561 | |
562 /^$/ | |
563 \ | |
564 0: | |
565 \= Expect no match | |
566 A non-empty line | |
567 No match | |
568 | |
569 / ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x | |
570 ab c | |
571 0: ab c | |
572 \= Expect no match | |
573 abc | |
574 No match | |
575 ab cde | |
576 No match | |
577 | |
578 /(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/ | |
579 ab c | |
580 0: ab c | |
581 \= Expect no match | |
582 abc | |
583 No match | |
584 ab cde | |
585 No match | |
586 | |
587 /^ a\ b[c ]d $/x | |
588 a bcd | |
589 0: a bcd | |
590 a b d | |
591 0: a b d | |
592 \= Expect no match | |
593 abcd | |
594 No match | |
595 ab d | |
596 No match | |
597 | |
598 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/ | |
599 abcdefhijklm | |
600 0: abcdefhijklm | |
601 1: abc | |
602 2: bc | |
603 3: c | |
604 4: def | |
605 5: ef | |
606 6: f | |
607 7: hij | |
608 8: ij | |
609 9: j | |
610 10: klm | |
611 11: lm | |
612 12: m | |
613 | |
614 /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/ | |
615 abcdefhijklm | |
616 0: abcdefhijklm | |
617 1: bc | |
618 2: c | |
619 3: ef | |
620 4: f | |
621 5: ij | |
622 6: j | |
623 7: lm | |
624 8: m | |
625 | |
626 #/^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/ | |
627 # a+ Z0+\x08\n\x1d\x12 | |
628 # 0: a+ Z0+\x08\x0a\x1d\x12 | |
629 | |
630 /^[.^$|()*+?{,}]+/ | |
631 .^\$(*+)|{?,?} | |
632 0: .^$(*+)|{?,?} | |
633 | |
634 /^a*\w/ | |
635 z | |
636 0: z | |
637 az | |
638 0: az | |
639 aaaz | |
640 0: aaaz | |
641 a | |
642 0: a | |
643 aa | |
644 0: aa | |
645 aaaa | |
646 0: aaaa | |
647 a+ | |
648 0: a | |
649 aa+ | |
650 0: aa | |
651 | |
652 /^a*?\w/ | |
653 z | |
654 0: z | |
655 az | |
656 0: a | |
657 aaaz | |
658 0: a | |
659 a | |
660 0: a | |
661 aa | |
662 0: a | |
663 aaaa | |
664 0: a | |
665 a+ | |
666 0: a | |
667 aa+ | |
668 0: a | |
669 | |
670 /^a+\w/ | |
671 az | |
672 0: az | |
673 aaaz | |
674 0: aaaz | |
675 aa | |
676 0: aa | |
677 aaaa | |
678 0: aaaa | |
679 aa+ | |
680 0: aa | |
681 | |
682 /^a+?\w/ | |
683 az | |
684 0: az | |
685 aaaz | |
686 0: aa | |
687 aa | |
688 0: aa | |
689 aaaa | |
690 0: aa | |
691 aa+ | |
692 0: aa | |
693 | |
694 /^\d{8}\w{2,}/ | |
695 1234567890 | |
696 0: 1234567890 | |
697 12345678ab | |
698 0: 12345678ab | |
699 12345678__ | |
700 0: 12345678__ | |
701 \= Expect no match | |
702 1234567 | |
703 No match | |
704 | |
705 /^[aeiou\d]{4,5}$/ | |
706 uoie | |
707 0: uoie | |
708 1234 | |
709 0: 1234 | |
710 12345 | |
711 0: 12345 | |
712 aaaaa | |
713 0: aaaaa | |
714 \= Expect no match | |
715 123456 | |
716 No match | |
717 | |
718 /^[aeiou\d]{4,5}?/ | |
719 uoie | |
720 0: uoie | |
721 1234 | |
722 0: 1234 | |
723 12345 | |
724 0: 1234 | |
725 aaaaa | |
726 0: aaaa | |
727 123456 | |
728 0: 1234 | |
729 | |
730 /\A(abc|def)=(\1){2,3}\Z/ | |
731 abc=abcabc | |
732 0: abc=abcabc | |
733 1: abc | |
734 2: abc | |
735 def=defdefdef | |
736 0: def=defdefdef | |
737 1: def | |
738 2: def | |
739 \= Expect no match | |
740 abc=defdef | |
741 No match | |
742 | |
743 /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/ | |
744 abcdefghijkcda2 | |
745 0: abcdefghijkcda2 | |
746 1: a | |
747 2: b | |
748 3: c | |
749 4: d | |
750 5: e | |
751 6: f | |
752 7: g | |
753 8: h | |
754 9: i | |
755 10: j | |
756 11: k | |
757 12: cd | |
758 abcdefghijkkkkcda2 | |
759 0: abcdefghijkkkkcda2 | |
760 1: a | |
761 2: b | |
762 3: c | |
763 4: d | |
764 5: e | |
765 6: f | |
766 7: g | |
767 8: h | |
768 9: i | |
769 10: j | |
770 11: k | |
771 12: cd | |
772 | |
773 /(cat(a(ract|tonic)|erpillar)) \1()2(3)/ | |
774 cataract cataract23 | |
775 0: cataract cataract23 | |
776 1: cataract | |
777 2: aract | |
778 3: ract | |
779 4: | |
780 5: 3 | |
781 catatonic catatonic23 | |
782 0: catatonic catatonic23 | |
783 1: catatonic | |
784 2: atonic | |
785 3: tonic | |
786 4: | |
787 5: 3 | |
788 caterpillar caterpillar23 | |
789 0: caterpillar caterpillar23 | |
790 1: caterpillar | |
791 2: erpillar | |
792 3: <unset> | |
793 4: | |
794 5: 3 | |
795 | |
796 | |
797 /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/ | |
798 From abcd Mon Sep 01 12:33:02 1997 | |
799 0: From abcd Mon Sep 01 12:33 | |
800 1: abcd | |
801 | |
802 /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/ | |
803 From abcd Mon Sep 01 12:33:02 1997 | |
804 0: From abcd Mon Sep 01 12:33 | |
805 1: Sep | |
806 From abcd Mon Sep 1 12:33:02 1997 | |
807 0: From abcd Mon Sep 1 12:33 | |
808 1: Sep | |
809 \= Expect no match | |
810 From abcd Sep 01 12:33:02 1997 | |
811 No match | |
812 | |
813 /^12.34/s | |
814 12\n34 | |
815 0: 12\x0a34 | |
816 12\r34 | |
817 0: 12\x0d34 | |
818 | |
819 /\w+(?=\t)/ | |
820 the quick brown\t fox | |
821 0: brown | |
822 | |
823 /foo(?!bar)(.*)/ | |
824 foobar is foolish see? | |
825 0: foolish see? | |
826 1: lish see? | |
827 | |
828 /(?:(?!foo)...|^.{0,2})bar(.*)/ | |
829 foobar crowbar etc | |
830 0: rowbar etc | |
831 1: etc | |
832 barrel | |
833 0: barrel | |
834 1: rel | |
835 2barrel | |
836 0: 2barrel | |
837 1: rel | |
838 A barrel | |
839 0: A barrel | |
840 1: rel | |
841 | |
842 /^(\D*)(?=\d)(?!123)/ | |
843 abc456 | |
844 0: abc | |
845 1: abc | |
846 \= Expect no match | |
847 abc123 | |
848 No match | |
849 | |
850 /^1234(?# test newlines | |
851 inside)/ | |
852 1234 | |
853 0: 1234 | |
854 | |
855 /^1234 #comment in extended re | |
856 /x | |
857 1234 | |
858 0: 1234 | |
859 | |
860 /#rhubarb | |
861 abcd/x | |
862 abcd | |
863 0: abcd | |
864 | |
865 /^abcd#rhubarb/x | |
866 abcd | |
867 0: abcd | |
868 | |
869 /^(a)\1{2,3}(.)/ | |
870 aaab | |
871 0: aaab | |
872 1: a | |
873 2: b | |
874 aaaab | |
875 0: aaaab | |
876 1: a | |
877 2: b | |
878 aaaaab | |
879 0: aaaaa | |
880 1: a | |
881 2: a | |
882 aaaaaab | |
883 0: aaaaa | |
884 1: a | |
885 2: a | |
886 | |
887 /(?!^)abc/ | |
888 the abc | |
889 0: abc | |
890 \= Expect no match | |
891 abc | |
892 No match | |
893 | |
894 /(?=^)abc/ | |
895 abc | |
896 0: abc | |
897 \= Expect no match | |
898 the abc | |
899 No match | |
900 | |
901 /^[ab]{1,3}(ab*|b)/ | |
902 aabbbbb | |
903 0: aabb | |
904 1: b | |
905 | |
906 /^[ab]{1,3}?(ab*|b)/ | |
907 aabbbbb | |
908 0: aabbbbb | |
909 1: abbbbb | |
910 | |
911 /^[ab]{1,3}?(ab*?|b)/ | |
912 aabbbbb | |
913 0: aa | |
914 1: a | |
915 | |
916 /^[ab]{1,3}(ab*?|b)/ | |
917 aabbbbb | |
918 0: aabb | |
919 1: b | |
920 | |
921 / (?: [\040\t] | \( | |
922 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
923 \) )* # optional leading comment | |
924 (?: (?: | |
925 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
926 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
927 | | |
928 " (?: # opening quote... | |
929 [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
930 | # or | |
931 \\ [^\x80-\xff] # Escaped something (something != CR) | |
932 )* " # closing quote | |
933 ) # initial word | |
934 (?: (?: [\040\t] | \( | |
935 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
936 \) )* \. (?: [\040\t] | \( | |
937 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
938 \) )* (?: | |
939 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
940 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
941 | | |
942 " (?: # opening quote... | |
943 [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
944 | # or | |
945 \\ [^\x80-\xff] # Escaped something (something != CR) | |
946 )* " # closing quote | |
947 ) )* # further okay, if led by a period | |
948 (?: [\040\t] | \( | |
949 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
950 \) )* @ (?: [\040\t] | \( | |
951 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
952 \) )* (?: | |
953 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
954 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
955 | \[ # [ | |
956 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
957 \] # ] | |
958 ) # initial subdomain | |
959 (?: # | |
960 (?: [\040\t] | \( | |
961 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
962 \) )* \. # if led by a period... | |
963 (?: [\040\t] | \( | |
964 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
965 \) )* (?: | |
966 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
967 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
968 | \[ # [ | |
969 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
970 \] # ] | |
971 ) # ...further okay | |
972 )* | |
973 # address | |
974 | # or | |
975 (?: | |
976 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
977 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
978 | | |
979 " (?: # opening quote... | |
980 [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
981 | # or | |
982 \\ [^\x80-\xff] # Escaped something (something != CR) | |
983 )* " # closing quote | |
984 ) # one word, optionally followed by.... | |
985 (?: | |
986 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or... | |
987 \( | |
988 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
989 \) | # comments, or... | |
990 | |
991 " (?: # opening quote... | |
992 [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
993 | # or | |
994 \\ [^\x80-\xff] # Escaped something (something != CR) | |
995 )* " # closing quote | |
996 # quoted strings | |
997 )* | |
998 < (?: [\040\t] | \( | |
999 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1000 \) )* # leading < | |
1001 (?: @ (?: [\040\t] | \( | |
1002 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1003 \) )* (?: | |
1004 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1005 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1006 | \[ # [ | |
1007 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1008 \] # ] | |
1009 ) # initial subdomain | |
1010 (?: # | |
1011 (?: [\040\t] | \( | |
1012 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1013 \) )* \. # if led by a period... | |
1014 (?: [\040\t] | \( | |
1015 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1016 \) )* (?: | |
1017 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1018 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1019 | \[ # [ | |
1020 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1021 \] # ] | |
1022 ) # ...further okay | |
1023 )* | |
1024 | |
1025 (?: (?: [\040\t] | \( | |
1026 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1027 \) )* , (?: [\040\t] | \( | |
1028 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1029 \) )* @ (?: [\040\t] | \( | |
1030 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1031 \) )* (?: | |
1032 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1033 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1034 | \[ # [ | |
1035 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1036 \] # ] | |
1037 ) # initial subdomain | |
1038 (?: # | |
1039 (?: [\040\t] | \( | |
1040 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1041 \) )* \. # if led by a period... | |
1042 (?: [\040\t] | \( | |
1043 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1044 \) )* (?: | |
1045 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1046 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1047 | \[ # [ | |
1048 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1049 \] # ] | |
1050 ) # ...further okay | |
1051 )* | |
1052 )* # further okay, if led by comma | |
1053 : # closing colon | |
1054 (?: [\040\t] | \( | |
1055 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1056 \) )* )? # optional route | |
1057 (?: | |
1058 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1059 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1060 | | |
1061 " (?: # opening quote... | |
1062 [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
1063 | # or | |
1064 \\ [^\x80-\xff] # Escaped something (something != CR) | |
1065 )* " # closing quote | |
1066 ) # initial word | |
1067 (?: (?: [\040\t] | \( | |
1068 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1069 \) )* \. (?: [\040\t] | \( | |
1070 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1071 \) )* (?: | |
1072 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1073 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1074 | | |
1075 " (?: # opening quote... | |
1076 [^\\\x80-\xff\n\015"] # Anything except backslash and quote | |
1077 | # or | |
1078 \\ [^\x80-\xff] # Escaped something (something != CR) | |
1079 )* " # closing quote | |
1080 ) )* # further okay, if led by a period | |
1081 (?: [\040\t] | \( | |
1082 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1083 \) )* @ (?: [\040\t] | \( | |
1084 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1085 \) )* (?: | |
1086 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1087 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1088 | \[ # [ | |
1089 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1090 \] # ] | |
1091 ) # initial subdomain | |
1092 (?: # | |
1093 (?: [\040\t] | \( | |
1094 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1095 \) )* \. # if led by a period... | |
1096 (?: [\040\t] | \( | |
1097 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1098 \) )* (?: | |
1099 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1100 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1101 | \[ # [ | |
1102 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1103 \] # ] | |
1104 ) # ...further okay | |
1105 )* | |
1106 # address spec | |
1107 (?: [\040\t] | \( | |
1108 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1109 \) )* > # trailing > | |
1110 # name and address | |
1111 ) (?: [\040\t] | \( | |
1112 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )* | |
1113 \) )* # optional trailing comment | |
1114 /x | |
1115 Alan Other <user\@dom.ain> | |
1116 0: Alan Other <user@dom.ain> | |
1117 <user\@dom.ain> | |
1118 0: user@dom.ain | |
1119 user\@dom.ain | |
1120 0: user@dom.ain | |
1121 \"A. Other\" <user.1234\@dom.ain> (a comment) | |
1122 0: "A. Other" <user.1234@dom.ain> (a comment) | |
1123 A. Other <user.1234\@dom.ain> (a comment) | |
1124 0: Other <user.1234@dom.ain> (a comment) | |
1125 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay | |
1126 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay | |
1127 A missing angle <user\@some.where | |
1128 0: user@some.where | |
1129 \= Expect no match | |
1130 The quick brown fox | |
1131 No match | |
1132 | |
1133 /[\040\t]* # Nab whitespace. | |
1134 (?: | |
1135 \( # ( | |
1136 [^\\\x80-\xff\n\015()] * # normal* | |
1137 (?: # ( | |
1138 (?: \\ [^\x80-\xff] | | |
1139 \( # ( | |
1140 [^\\\x80-\xff\n\015()] * # normal* | |
1141 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1142 \) # ) | |
1143 ) # special | |
1144 [^\\\x80-\xff\n\015()] * # normal* | |
1145 )* # )* | |
1146 \) # ) | |
1147 [\040\t]* )* # If comment found, allow more spaces. | |
1148 # optional leading comment | |
1149 (?: | |
1150 (?: | |
1151 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1152 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1153 # Atom | |
1154 | # or | |
1155 " # " | |
1156 [^\\\x80-\xff\n\015"] * # normal | |
1157 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* | |
1158 " # " | |
1159 # Quoted string | |
1160 ) | |
1161 [\040\t]* # Nab whitespace. | |
1162 (?: | |
1163 \( # ( | |
1164 [^\\\x80-\xff\n\015()] * # normal* | |
1165 (?: # ( | |
1166 (?: \\ [^\x80-\xff] | | |
1167 \( # ( | |
1168 [^\\\x80-\xff\n\015()] * # normal* | |
1169 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1170 \) # ) | |
1171 ) # special | |
1172 [^\\\x80-\xff\n\015()] * # normal* | |
1173 )* # )* | |
1174 \) # ) | |
1175 [\040\t]* )* # If comment found, allow more spaces. | |
1176 (?: | |
1177 \. | |
1178 [\040\t]* # Nab whitespace. | |
1179 (?: | |
1180 \( # ( | |
1181 [^\\\x80-\xff\n\015()] * # normal* | |
1182 (?: # ( | |
1183 (?: \\ [^\x80-\xff] | | |
1184 \( # ( | |
1185 [^\\\x80-\xff\n\015()] * # normal* | |
1186 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1187 \) # ) | |
1188 ) # special | |
1189 [^\\\x80-\xff\n\015()] * # normal* | |
1190 )* # )* | |
1191 \) # ) | |
1192 [\040\t]* )* # If comment found, allow more spaces. | |
1193 (?: | |
1194 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1195 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1196 # Atom | |
1197 | # or | |
1198 " # " | |
1199 [^\\\x80-\xff\n\015"] * # normal | |
1200 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* | |
1201 " # " | |
1202 # Quoted string | |
1203 ) | |
1204 [\040\t]* # Nab whitespace. | |
1205 (?: | |
1206 \( # ( | |
1207 [^\\\x80-\xff\n\015()] * # normal* | |
1208 (?: # ( | |
1209 (?: \\ [^\x80-\xff] | | |
1210 \( # ( | |
1211 [^\\\x80-\xff\n\015()] * # normal* | |
1212 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1213 \) # ) | |
1214 ) # special | |
1215 [^\\\x80-\xff\n\015()] * # normal* | |
1216 )* # )* | |
1217 \) # ) | |
1218 [\040\t]* )* # If comment found, allow more spaces. | |
1219 # additional words | |
1220 )* | |
1221 @ | |
1222 [\040\t]* # Nab whitespace. | |
1223 (?: | |
1224 \( # ( | |
1225 [^\\\x80-\xff\n\015()] * # normal* | |
1226 (?: # ( | |
1227 (?: \\ [^\x80-\xff] | | |
1228 \( # ( | |
1229 [^\\\x80-\xff\n\015()] * # normal* | |
1230 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1231 \) # ) | |
1232 ) # special | |
1233 [^\\\x80-\xff\n\015()] * # normal* | |
1234 )* # )* | |
1235 \) # ) | |
1236 [\040\t]* )* # If comment found, allow more spaces. | |
1237 (?: | |
1238 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1239 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1240 | | |
1241 \[ # [ | |
1242 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1243 \] # ] | |
1244 ) | |
1245 [\040\t]* # Nab whitespace. | |
1246 (?: | |
1247 \( # ( | |
1248 [^\\\x80-\xff\n\015()] * # normal* | |
1249 (?: # ( | |
1250 (?: \\ [^\x80-\xff] | | |
1251 \( # ( | |
1252 [^\\\x80-\xff\n\015()] * # normal* | |
1253 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1254 \) # ) | |
1255 ) # special | |
1256 [^\\\x80-\xff\n\015()] * # normal* | |
1257 )* # )* | |
1258 \) # ) | |
1259 [\040\t]* )* # If comment found, allow more spaces. | |
1260 # optional trailing comments | |
1261 (?: | |
1262 \. | |
1263 [\040\t]* # Nab whitespace. | |
1264 (?: | |
1265 \( # ( | |
1266 [^\\\x80-\xff\n\015()] * # normal* | |
1267 (?: # ( | |
1268 (?: \\ [^\x80-\xff] | | |
1269 \( # ( | |
1270 [^\\\x80-\xff\n\015()] * # normal* | |
1271 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1272 \) # ) | |
1273 ) # special | |
1274 [^\\\x80-\xff\n\015()] * # normal* | |
1275 )* # )* | |
1276 \) # ) | |
1277 [\040\t]* )* # If comment found, allow more spaces. | |
1278 (?: | |
1279 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1280 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1281 | | |
1282 \[ # [ | |
1283 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1284 \] # ] | |
1285 ) | |
1286 [\040\t]* # Nab whitespace. | |
1287 (?: | |
1288 \( # ( | |
1289 [^\\\x80-\xff\n\015()] * # normal* | |
1290 (?: # ( | |
1291 (?: \\ [^\x80-\xff] | | |
1292 \( # ( | |
1293 [^\\\x80-\xff\n\015()] * # normal* | |
1294 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1295 \) # ) | |
1296 ) # special | |
1297 [^\\\x80-\xff\n\015()] * # normal* | |
1298 )* # )* | |
1299 \) # ) | |
1300 [\040\t]* )* # If comment found, allow more spaces. | |
1301 # optional trailing comments | |
1302 )* | |
1303 # address | |
1304 | # or | |
1305 (?: | |
1306 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1307 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1308 # Atom | |
1309 | # or | |
1310 " # " | |
1311 [^\\\x80-\xff\n\015"] * # normal | |
1312 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* | |
1313 " # " | |
1314 # Quoted string | |
1315 ) | |
1316 # leading word | |
1317 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces | |
1318 (?: | |
1319 (?: | |
1320 \( # ( | |
1321 [^\\\x80-\xff\n\015()] * # normal* | |
1322 (?: # ( | |
1323 (?: \\ [^\x80-\xff] | | |
1324 \( # ( | |
1325 [^\\\x80-\xff\n\015()] * # normal* | |
1326 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1327 \) # ) | |
1328 ) # special | |
1329 [^\\\x80-\xff\n\015()] * # normal* | |
1330 )* # )* | |
1331 \) # ) | |
1332 | | |
1333 " # " | |
1334 [^\\\x80-\xff\n\015"] * # normal | |
1335 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* | |
1336 " # " | |
1337 ) # "special" comment or quoted string | |
1338 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal" | |
1339 )* | |
1340 < | |
1341 [\040\t]* # Nab whitespace. | |
1342 (?: | |
1343 \( # ( | |
1344 [^\\\x80-\xff\n\015()] * # normal* | |
1345 (?: # ( | |
1346 (?: \\ [^\x80-\xff] | | |
1347 \( # ( | |
1348 [^\\\x80-\xff\n\015()] * # normal* | |
1349 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1350 \) # ) | |
1351 ) # special | |
1352 [^\\\x80-\xff\n\015()] * # normal* | |
1353 )* # )* | |
1354 \) # ) | |
1355 [\040\t]* )* # If comment found, allow more spaces. | |
1356 # < | |
1357 (?: | |
1358 @ | |
1359 [\040\t]* # Nab whitespace. | |
1360 (?: | |
1361 \( # ( | |
1362 [^\\\x80-\xff\n\015()] * # normal* | |
1363 (?: # ( | |
1364 (?: \\ [^\x80-\xff] | | |
1365 \( # ( | |
1366 [^\\\x80-\xff\n\015()] * # normal* | |
1367 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1368 \) # ) | |
1369 ) # special | |
1370 [^\\\x80-\xff\n\015()] * # normal* | |
1371 )* # )* | |
1372 \) # ) | |
1373 [\040\t]* )* # If comment found, allow more spaces. | |
1374 (?: | |
1375 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1376 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1377 | | |
1378 \[ # [ | |
1379 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1380 \] # ] | |
1381 ) | |
1382 [\040\t]* # Nab whitespace. | |
1383 (?: | |
1384 \( # ( | |
1385 [^\\\x80-\xff\n\015()] * # normal* | |
1386 (?: # ( | |
1387 (?: \\ [^\x80-\xff] | | |
1388 \( # ( | |
1389 [^\\\x80-\xff\n\015()] * # normal* | |
1390 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1391 \) # ) | |
1392 ) # special | |
1393 [^\\\x80-\xff\n\015()] * # normal* | |
1394 )* # )* | |
1395 \) # ) | |
1396 [\040\t]* )* # If comment found, allow more spaces. | |
1397 # optional trailing comments | |
1398 (?: | |
1399 \. | |
1400 [\040\t]* # Nab whitespace. | |
1401 (?: | |
1402 \( # ( | |
1403 [^\\\x80-\xff\n\015()] * # normal* | |
1404 (?: # ( | |
1405 (?: \\ [^\x80-\xff] | | |
1406 \( # ( | |
1407 [^\\\x80-\xff\n\015()] * # normal* | |
1408 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1409 \) # ) | |
1410 ) # special | |
1411 [^\\\x80-\xff\n\015()] * # normal* | |
1412 )* # )* | |
1413 \) # ) | |
1414 [\040\t]* )* # If comment found, allow more spaces. | |
1415 (?: | |
1416 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1417 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1418 | | |
1419 \[ # [ | |
1420 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1421 \] # ] | |
1422 ) | |
1423 [\040\t]* # Nab whitespace. | |
1424 (?: | |
1425 \( # ( | |
1426 [^\\\x80-\xff\n\015()] * # normal* | |
1427 (?: # ( | |
1428 (?: \\ [^\x80-\xff] | | |
1429 \( # ( | |
1430 [^\\\x80-\xff\n\015()] * # normal* | |
1431 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1432 \) # ) | |
1433 ) # special | |
1434 [^\\\x80-\xff\n\015()] * # normal* | |
1435 )* # )* | |
1436 \) # ) | |
1437 [\040\t]* )* # If comment found, allow more spaces. | |
1438 # optional trailing comments | |
1439 )* | |
1440 (?: , | |
1441 [\040\t]* # Nab whitespace. | |
1442 (?: | |
1443 \( # ( | |
1444 [^\\\x80-\xff\n\015()] * # normal* | |
1445 (?: # ( | |
1446 (?: \\ [^\x80-\xff] | | |
1447 \( # ( | |
1448 [^\\\x80-\xff\n\015()] * # normal* | |
1449 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1450 \) # ) | |
1451 ) # special | |
1452 [^\\\x80-\xff\n\015()] * # normal* | |
1453 )* # )* | |
1454 \) # ) | |
1455 [\040\t]* )* # If comment found, allow more spaces. | |
1456 @ | |
1457 [\040\t]* # Nab whitespace. | |
1458 (?: | |
1459 \( # ( | |
1460 [^\\\x80-\xff\n\015()] * # normal* | |
1461 (?: # ( | |
1462 (?: \\ [^\x80-\xff] | | |
1463 \( # ( | |
1464 [^\\\x80-\xff\n\015()] * # normal* | |
1465 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1466 \) # ) | |
1467 ) # special | |
1468 [^\\\x80-\xff\n\015()] * # normal* | |
1469 )* # )* | |
1470 \) # ) | |
1471 [\040\t]* )* # If comment found, allow more spaces. | |
1472 (?: | |
1473 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1474 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1475 | | |
1476 \[ # [ | |
1477 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1478 \] # ] | |
1479 ) | |
1480 [\040\t]* # Nab whitespace. | |
1481 (?: | |
1482 \( # ( | |
1483 [^\\\x80-\xff\n\015()] * # normal* | |
1484 (?: # ( | |
1485 (?: \\ [^\x80-\xff] | | |
1486 \( # ( | |
1487 [^\\\x80-\xff\n\015()] * # normal* | |
1488 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1489 \) # ) | |
1490 ) # special | |
1491 [^\\\x80-\xff\n\015()] * # normal* | |
1492 )* # )* | |
1493 \) # ) | |
1494 [\040\t]* )* # If comment found, allow more spaces. | |
1495 # optional trailing comments | |
1496 (?: | |
1497 \. | |
1498 [\040\t]* # Nab whitespace. | |
1499 (?: | |
1500 \( # ( | |
1501 [^\\\x80-\xff\n\015()] * # normal* | |
1502 (?: # ( | |
1503 (?: \\ [^\x80-\xff] | | |
1504 \( # ( | |
1505 [^\\\x80-\xff\n\015()] * # normal* | |
1506 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1507 \) # ) | |
1508 ) # special | |
1509 [^\\\x80-\xff\n\015()] * # normal* | |
1510 )* # )* | |
1511 \) # ) | |
1512 [\040\t]* )* # If comment found, allow more spaces. | |
1513 (?: | |
1514 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1515 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1516 | | |
1517 \[ # [ | |
1518 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1519 \] # ] | |
1520 ) | |
1521 [\040\t]* # Nab whitespace. | |
1522 (?: | |
1523 \( # ( | |
1524 [^\\\x80-\xff\n\015()] * # normal* | |
1525 (?: # ( | |
1526 (?: \\ [^\x80-\xff] | | |
1527 \( # ( | |
1528 [^\\\x80-\xff\n\015()] * # normal* | |
1529 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1530 \) # ) | |
1531 ) # special | |
1532 [^\\\x80-\xff\n\015()] * # normal* | |
1533 )* # )* | |
1534 \) # ) | |
1535 [\040\t]* )* # If comment found, allow more spaces. | |
1536 # optional trailing comments | |
1537 )* | |
1538 )* # additional domains | |
1539 : | |
1540 [\040\t]* # Nab whitespace. | |
1541 (?: | |
1542 \( # ( | |
1543 [^\\\x80-\xff\n\015()] * # normal* | |
1544 (?: # ( | |
1545 (?: \\ [^\x80-\xff] | | |
1546 \( # ( | |
1547 [^\\\x80-\xff\n\015()] * # normal* | |
1548 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1549 \) # ) | |
1550 ) # special | |
1551 [^\\\x80-\xff\n\015()] * # normal* | |
1552 )* # )* | |
1553 \) # ) | |
1554 [\040\t]* )* # If comment found, allow more spaces. | |
1555 # optional trailing comments | |
1556 )? # optional route | |
1557 (?: | |
1558 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1559 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1560 # Atom | |
1561 | # or | |
1562 " # " | |
1563 [^\\\x80-\xff\n\015"] * # normal | |
1564 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* | |
1565 " # " | |
1566 # Quoted string | |
1567 ) | |
1568 [\040\t]* # Nab whitespace. | |
1569 (?: | |
1570 \( # ( | |
1571 [^\\\x80-\xff\n\015()] * # normal* | |
1572 (?: # ( | |
1573 (?: \\ [^\x80-\xff] | | |
1574 \( # ( | |
1575 [^\\\x80-\xff\n\015()] * # normal* | |
1576 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1577 \) # ) | |
1578 ) # special | |
1579 [^\\\x80-\xff\n\015()] * # normal* | |
1580 )* # )* | |
1581 \) # ) | |
1582 [\040\t]* )* # If comment found, allow more spaces. | |
1583 (?: | |
1584 \. | |
1585 [\040\t]* # Nab whitespace. | |
1586 (?: | |
1587 \( # ( | |
1588 [^\\\x80-\xff\n\015()] * # normal* | |
1589 (?: # ( | |
1590 (?: \\ [^\x80-\xff] | | |
1591 \( # ( | |
1592 [^\\\x80-\xff\n\015()] * # normal* | |
1593 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1594 \) # ) | |
1595 ) # special | |
1596 [^\\\x80-\xff\n\015()] * # normal* | |
1597 )* # )* | |
1598 \) # ) | |
1599 [\040\t]* )* # If comment found, allow more spaces. | |
1600 (?: | |
1601 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1602 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1603 # Atom | |
1604 | # or | |
1605 " # " | |
1606 [^\\\x80-\xff\n\015"] * # normal | |
1607 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )* | |
1608 " # " | |
1609 # Quoted string | |
1610 ) | |
1611 [\040\t]* # Nab whitespace. | |
1612 (?: | |
1613 \( # ( | |
1614 [^\\\x80-\xff\n\015()] * # normal* | |
1615 (?: # ( | |
1616 (?: \\ [^\x80-\xff] | | |
1617 \( # ( | |
1618 [^\\\x80-\xff\n\015()] * # normal* | |
1619 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1620 \) # ) | |
1621 ) # special | |
1622 [^\\\x80-\xff\n\015()] * # normal* | |
1623 )* # )* | |
1624 \) # ) | |
1625 [\040\t]* )* # If comment found, allow more spaces. | |
1626 # additional words | |
1627 )* | |
1628 @ | |
1629 [\040\t]* # Nab whitespace. | |
1630 (?: | |
1631 \( # ( | |
1632 [^\\\x80-\xff\n\015()] * # normal* | |
1633 (?: # ( | |
1634 (?: \\ [^\x80-\xff] | | |
1635 \( # ( | |
1636 [^\\\x80-\xff\n\015()] * # normal* | |
1637 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1638 \) # ) | |
1639 ) # special | |
1640 [^\\\x80-\xff\n\015()] * # normal* | |
1641 )* # )* | |
1642 \) # ) | |
1643 [\040\t]* )* # If comment found, allow more spaces. | |
1644 (?: | |
1645 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1646 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1647 | | |
1648 \[ # [ | |
1649 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1650 \] # ] | |
1651 ) | |
1652 [\040\t]* # Nab whitespace. | |
1653 (?: | |
1654 \( # ( | |
1655 [^\\\x80-\xff\n\015()] * # normal* | |
1656 (?: # ( | |
1657 (?: \\ [^\x80-\xff] | | |
1658 \( # ( | |
1659 [^\\\x80-\xff\n\015()] * # normal* | |
1660 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1661 \) # ) | |
1662 ) # special | |
1663 [^\\\x80-\xff\n\015()] * # normal* | |
1664 )* # )* | |
1665 \) # ) | |
1666 [\040\t]* )* # If comment found, allow more spaces. | |
1667 # optional trailing comments | |
1668 (?: | |
1669 \. | |
1670 [\040\t]* # Nab whitespace. | |
1671 (?: | |
1672 \( # ( | |
1673 [^\\\x80-\xff\n\015()] * # normal* | |
1674 (?: # ( | |
1675 (?: \\ [^\x80-\xff] | | |
1676 \( # ( | |
1677 [^\\\x80-\xff\n\015()] * # normal* | |
1678 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1679 \) # ) | |
1680 ) # special | |
1681 [^\\\x80-\xff\n\015()] * # normal* | |
1682 )* # )* | |
1683 \) # ) | |
1684 [\040\t]* )* # If comment found, allow more spaces. | |
1685 (?: | |
1686 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters... | |
1687 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom | |
1688 | | |
1689 \[ # [ | |
1690 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff | |
1691 \] # ] | |
1692 ) | |
1693 [\040\t]* # Nab whitespace. | |
1694 (?: | |
1695 \( # ( | |
1696 [^\\\x80-\xff\n\015()] * # normal* | |
1697 (?: # ( | |
1698 (?: \\ [^\x80-\xff] | | |
1699 \( # ( | |
1700 [^\\\x80-\xff\n\015()] * # normal* | |
1701 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)* | |
1702 \) # ) | |
1703 ) # special | |
1704 [^\\\x80-\xff\n\015()] * # normal* | |
1705 )* # )* | |
1706 \) # ) | |
1707 [\040\t]* )* # If comment found, allow more spaces. | |
1708 # optional trailing comments | |
1709 )* | |
1710 # address spec | |
1711 > # > | |
1712 # name and address | |
1713 ) | |
1714 /x | |
1715 Alan Other <user\@dom.ain> | |
1716 0: Alan Other <user@dom.ain> | |
1717 <user\@dom.ain> | |
1718 0: user@dom.ain | |
1719 user\@dom.ain | |
1720 0: user@dom.ain | |
1721 \"A. Other\" <user.1234\@dom.ain> (a comment) | |
1722 0: "A. Other" <user.1234@dom.ain> | |
1723 A. Other <user.1234\@dom.ain> (a comment) | |
1724 0: Other <user.1234@dom.ain> | |
1725 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay | |
1726 0: "/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/"@x400-re.lay | |
1727 A missing angle <user\@some.where | |
1728 0: user@some.where | |
1729 \= Expect no match | |
1730 The quick brown fox | |
1731 No match | |
1732 | |
1733 /abc\0def\00pqr\000xyz\0000AB/ | |
1734 abc\0def\00pqr\000xyz\0000AB | |
1735 0: abc\x00def\x00pqr\x00xyz\x000AB | |
1736 abc456 abc\0def\00pqr\000xyz\0000ABCDE | |
1737 0: abc\x00def\x00pqr\x00xyz\x000AB | |
1738 | |
1739 /abc\x0def\x00pqr\x000xyz\x0000AB/ | |
1740 abc\x0def\x00pqr\x000xyz\x0000AB | |
1741 0: abc\x0def\x00pqr\x000xyz\x0000AB | |
1742 abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE | |
1743 0: abc\x0def\x00pqr\x000xyz\x0000AB | |
1744 | |
1745 /^[\000-\037]/ | |
1746 \0A | |
1747 0: \x00 | |
1748 \01B | |
1749 0: \x01 | |
1750 \037C | |
1751 0: \x1f | |
1752 | |
1753 #.NET doesn't do octal with 1 number | |
1754 | |
1755 /^(cow|)\1(bell)/ | |
1756 cowcowbell | |
1757 0: cowcowbell | |
1758 1: cow | |
1759 2: bell | |
1760 bell | |
1761 0: bell | |
1762 1: | |
1763 2: bell | |
1764 \= Expect no match | |
1765 cowbell | |
1766 No match | |
1767 | |
1768 /^\s/ | |
1769 \040abc | |
1770 0: | |
1771 \x0cabc | |
1772 0: \x0c | |
1773 \nabc | |
1774 0: \x0a | |
1775 \rabc | |
1776 0: \x0d | |
1777 \tabc | |
1778 0: \x09 | |
1779 \= Expect no match | |
1780 abc | |
1781 No match | |
1782 | |
1783 /^a b | |
1784 c/x | |
1785 abc | |
1786 0: abc | |
1787 | |
1788 /^(a|)\1*b/ | |
1789 ab | |
1790 0: ab | |
1791 1: a | |
1792 aaaab | |
1793 0: aaaab | |
1794 1: a | |
1795 b | |
1796 0: b | |
1797 1: | |
1798 \= Expect no match | |
1799 acb | |
1800 No match | |
1801 | |
1802 /^(a|)\1+b/ | |
1803 aab | |
1804 0: aab | |
1805 1: a | |
1806 aaaab | |
1807 0: aaaab | |
1808 1: a | |
1809 b | |
1810 0: b | |
1811 1: | |
1812 \= Expect no match | |
1813 ab | |
1814 No match | |
1815 | |
1816 /^(a|)\1?b/ | |
1817 ab | |
1818 0: ab | |
1819 1: a | |
1820 aab | |
1821 0: aab | |
1822 1: a | |
1823 b | |
1824 0: b | |
1825 1: | |
1826 \= Expect no match | |
1827 acb | |
1828 No match | |
1829 | |
1830 /^(a|)\1{2}b/ | |
1831 aaab | |
1832 0: aaab | |
1833 1: a | |
1834 b | |
1835 0: b | |
1836 1: | |
1837 \= Expect no match | |
1838 ab | |
1839 No match | |
1840 aab | |
1841 No match | |
1842 aaaab | |
1843 No match | |
1844 | |
1845 /^(a|)\1{2,3}b/ | |
1846 aaab | |
1847 0: aaab | |
1848 1: a | |
1849 aaaab | |
1850 0: aaaab | |
1851 1: a | |
1852 b | |
1853 0: b | |
1854 1: | |
1855 \= Expect no match | |
1856 ab | |
1857 No match | |
1858 aab | |
1859 No match | |
1860 aaaaab | |
1861 No match | |
1862 | |
1863 /ab{1,3}bc/ | |
1864 abbbbc | |
1865 0: abbbbc | |
1866 abbbc | |
1867 0: abbbc | |
1868 abbc | |
1869 0: abbc | |
1870 \= Expect no match | |
1871 abc | |
1872 No match | |
1873 abbbbbc | |
1874 No match | |
1875 | |
1876 /([^.]*)\.([^:]*):[T ]+(.*)/ | |
1877 track1.title:TBlah blah blah | |
1878 0: track1.title:TBlah blah blah | |
1879 1: track1 | |
1880 2: title | |
1881 3: Blah blah blah | |
1882 | |
1883 /([^.]*)\.([^:]*):[T ]+(.*)/i | |
1884 track1.title:TBlah blah blah | |
1885 0: track1.title:TBlah blah blah | |
1886 1: track1 | |
1887 2: title | |
1888 3: Blah blah blah | |
1889 | |
1890 /([^.]*)\.([^:]*):[t ]+(.*)/i | |
1891 track1.title:TBlah blah blah | |
1892 0: track1.title:TBlah blah blah | |
1893 1: track1 | |
1894 2: title | |
1895 3: Blah blah blah | |
1896 | |
1897 /^[W-c]+$/ | |
1898 WXY_^abc | |
1899 0: WXY_^abc | |
1900 \= Expect no match | |
1901 wxy | |
1902 No match | |
1903 | |
1904 /^[W-c]+$/i | |
1905 WXY_^abc | |
1906 0: WXY_^abc | |
1907 wxy_^ABC | |
1908 0: wxy_^ABC | |
1909 | |
1910 /^[\x3f-\x5F]+$/i | |
1911 WXY_^abc | |
1912 0: WXY_^abc | |
1913 wxy_^ABC | |
1914 0: wxy_^ABC | |
1915 | |
1916 /^abc$/m | |
1917 abc | |
1918 0: abc | |
1919 qqq\nabc | |
1920 0: abc | |
1921 abc\nzzz | |
1922 0: abc | |
1923 qqq\nabc\nzzz | |
1924 0: abc | |
1925 | |
1926 /^abc$/ | |
1927 abc | |
1928 0: abc | |
1929 \= Expect no match | |
1930 qqq\nabc | |
1931 No match | |
1932 abc\nzzz | |
1933 No match | |
1934 qqq\nabc\nzzz | |
1935 No match | |
1936 | |
1937 /\Aabc\Z/m | |
1938 abc | |
1939 0: abc | |
1940 abc\n | |
1941 0: abc | |
1942 \= Expect no match | |
1943 qqq\nabc | |
1944 No match | |
1945 abc\nzzz | |
1946 No match | |
1947 qqq\nabc\nzzz | |
1948 No match | |
1949 | |
1950 /\A(.)*\Z/s | |
1951 abc\ndef | |
1952 0: abc\x0adef | |
1953 1: f | |
1954 | |
1955 /\A(.)*\Z/m | |
1956 \= Expect no match | |
1957 abc\ndef | |
1958 No match | |
1959 | |
1960 /(?:b)|(?::+)/ | |
1961 b::c | |
1962 0: b | |
1963 c::b | |
1964 0: :: | |
1965 | |
1966 /[-az]+/ | |
1967 az- | |
1968 0: az- | |
1969 \= Expect no match | |
1970 b | |
1971 No match | |
1972 | |
1973 /[az-]+/ | |
1974 za- | |
1975 0: za- | |
1976 \= Expect no match | |
1977 b | |
1978 No match | |
1979 | |
1980 /[a\-z]+/ | |
1981 a-z | |
1982 0: a-z | |
1983 \= Expect no match | |
1984 b | |
1985 No match | |
1986 | |
1987 /[a-z]+/ | |
1988 abcdxyz | |
1989 0: abcdxyz | |
1990 | |
1991 /[\d-]+/ | |
1992 12-34 | |
1993 0: 12-34 | |
1994 \= Expect no match | |
1995 aaa | |
1996 No match | |
1997 | |
1998 /[\d-z]+/ | |
1999 12-34z | |
2000 0: 12-34z | |
2001 \= Expect no match | |
2002 aaa | |
2003 No match | |
2004 | |
2005 /\x5c/ | |
2006 \\ | |
2007 0: \ | |
2008 | |
2009 /\x20Z/ | |
2010 the Zoo | |
2011 0: Z | |
2012 \= Expect no match | |
2013 Zulu | |
2014 No match | |
2015 | |
2016 /(abc)\1/i | |
2017 abcabc | |
2018 0: abcabc | |
2019 1: abc | |
2020 ABCabc | |
2021 0: ABCabc | |
2022 1: ABC | |
2023 abcABC | |
2024 0: abcABC | |
2025 1: abc | |
2026 | |
2027 /abc$/ | |
2028 abc | |
2029 0: abc | |
2030 abc\n | |
2031 0: abc | |
2032 \= Expect no match | |
2033 abc\ndef | |
2034 No match | |
2035 | |
2036 /(abc)\123/ | |
2037 abc\x53 | |
2038 0: abcS | |
2039 1: abc | |
2040 | |
2041 /(abc)\100/ | |
2042 abc\x40 | |
2043 0: abc@ | |
2044 1: abc | |
2045 abc\100 | |
2046 0: abc@ | |
2047 1: abc | |
2048 | |
2049 /(abc)\1000/ | |
2050 abc\x400 | |
2051 0: abc@0 | |
2052 1: abc | |
2053 abc\x40\x30 | |
2054 0: abc@0 | |
2055 1: abc | |
2056 abc\1000 | |
2057 0: abc@0 | |
2058 1: abc | |
2059 abc\100\x30 | |
2060 0: abc@0 | |
2061 1: abc | |
2062 abc\100\060 | |
2063 0: abc@0 | |
2064 1: abc | |
2065 abc\100\60 | |
2066 0: abc@0 | |
2067 1: abc | |
2068 | |
2069 /^(A)(B)(C)(D)(E)(F)(G)(H)(I)\8\9$/ | |
2070 ABCDEFGHIHI | |
2071 0: ABCDEFGHIHI | |
2072 1: A | |
2073 2: B | |
2074 3: C | |
2075 4: D | |
2076 5: E | |
2077 6: F | |
2078 7: G | |
2079 8: H | |
2080 9: I | |
2081 | |
2082 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/ | |
2083 abcdefghijkllS | |
2084 0: abcdefghijkllS | |
2085 1: a | |
2086 2: b | |
2087 3: c | |
2088 4: d | |
2089 5: e | |
2090 6: f | |
2091 7: g | |
2092 8: h | |
2093 9: i | |
2094 10: j | |
2095 11: k | |
2096 12: l | |
2097 | |
2098 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/ | |
2099 abcdefghijk\12S | |
2100 0: abcdefghijk\x0aS | |
2101 1: a | |
2102 2: b | |
2103 3: c | |
2104 4: d | |
2105 5: e | |
2106 6: f | |
2107 7: g | |
2108 8: h | |
2109 9: i | |
2110 10: j | |
2111 11: k | |
2112 | |
2113 /a{0}bc/ | |
2114 bc | |
2115 0: bc | |
2116 | |
2117 /(a|(bc)){0,0}?xyz/ | |
2118 xyz | |
2119 0: xyz | |
2120 | |
2121 /abc[\10]de/ | |
2122 abc\010de | |
2123 0: abc\x08de | |
2124 | |
2125 /abc[\1]de/ | |
2126 abc\1de | |
2127 0: abc\x01de | |
2128 | |
2129 /(abc)[\1]de/ | |
2130 abc\1de | |
2131 0: abc\x01de | |
2132 1: abc | |
2133 | |
2134 /(?s)a.b/ | |
2135 a\nb | |
2136 0: a\x0ab | |
2137 | |
2138 /^([^a])([^\b])([^c]*)([^d]{3,4})/ | |
2139 baNOTccccd | |
2140 0: baNOTcccc | |
2141 1: b | |
2142 2: a | |
2143 3: NOT | |
2144 4: cccc | |
2145 baNOTcccd | |
2146 0: baNOTccc | |
2147 1: b | |
2148 2: a | |
2149 3: NOT | |
2150 4: ccc | |
2151 baNOTccd | |
2152 0: baNOTcc | |
2153 1: b | |
2154 2: a | |
2155 3: NO | |
2156 4: Tcc | |
2157 bacccd | |
2158 0: baccc | |
2159 1: b | |
2160 2: a | |
2161 3: | |
2162 4: ccc | |
2163 \= Expect no match | |
2164 anything | |
2165 No match | |
2166 b\bc | |
2167 No match | |
2168 baccd | |
2169 No match | |
2170 | |
2171 /[^a]/ | |
2172 Abc | |
2173 0: A | |
2174 | |
2175 /[^a]/i | |
2176 Abc | |
2177 0: b | |
2178 | |
2179 /[^a]+/ | |
2180 AAAaAbc | |
2181 0: AAA | |
2182 | |
2183 /[^a]+/i | |
2184 AAAaAbc | |
2185 0: bc | |
2186 | |
2187 /[^a]+/ | |
2188 bbb\nccc | |
2189 0: bbb\x0accc | |
2190 | |
2191 /[^k]$/ | |
2192 abc | |
2193 0: c | |
2194 \= Expect no match | |
2195 abk | |
2196 No match | |
2197 | |
2198 /[^k]{2,3}$/ | |
2199 abc | |
2200 0: abc | |
2201 kbc | |
2202 0: bc | |
2203 kabc | |
2204 0: abc | |
2205 \= Expect no match | |
2206 abk | |
2207 No match | |
2208 akb | |
2209 No match | |
2210 akk | |
2211 No match | |
2212 | |
2213 /^\d{8,}\@.+[^k]$/ | |
2214 12345678\@a.b.c.d | |
2215 0: 12345678@a.b.c.d | |
2216 123456789\@x.y.z | |
2217 0: 123456789@x.y.z | |
2218 \= Expect no match | |
2219 12345678\@x.y.uk | |
2220 No match | |
2221 1234567\@a.b.c.d | |
2222 No match | |
2223 | |
2224 /(a)\1{8,}/ | |
2225 aaaaaaaaa | |
2226 0: aaaaaaaaa | |
2227 1: a | |
2228 aaaaaaaaaa | |
2229 0: aaaaaaaaaa | |
2230 1: a | |
2231 \= Expect no match | |
2232 aaaaaaa | |
2233 No match | |
2234 | |
2235 /[^a]/ | |
2236 aaaabcd | |
2237 0: b | |
2238 aaAabcd | |
2239 0: A | |
2240 | |
2241 /[^a]/i | |
2242 aaaabcd | |
2243 0: b | |
2244 aaAabcd | |
2245 0: b | |
2246 | |
2247 /[^az]/ | |
2248 aaaabcd | |
2249 0: b | |
2250 aaAabcd | |
2251 0: A | |
2252 | |
2253 /[^az]/i | |
2254 aaaabcd | |
2255 0: b | |
2256 aaAabcd | |
2257 0: b | |
2258 | |
2259 # trimmed upper ascii since Go is UTF-8 | |
2260 /\000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177/ | |
2261 \000\001\002\003\004\005\006\007\010\011\012\013\014\015\016\017\020\021\022\023\024\025\026\027\030\031\032\033\034\035\036\037\040\041\042\043\044\045\046\047\050\051\052\053\054\055\056\057\060\061\062\063\064\065\066\067\070\071\072\073\074\075\076\077\100\101\102\103\104\105\106\107\110\111\112\113\114\115\116\117\120\121\122\123\124\125\126\127\130\131\132\133\134\135\136\137\140\141\142\143\144\145\146\147\150\151\152\153\154\155\156\157\160\161\162\163\164\165\166\167\170\171\172\173\174\175\176\177 | |
2262 0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f | |
2263 | |
2264 /P[^*]TAIRE[^*]{1,6}?LL/ | |
2265 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx | |
2266 0: PSTAIREISLL | |
2267 | |
2268 /P[^*]TAIRE[^*]{1,}?LL/ | |
2269 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx | |
2270 0: PSTAIREISLL | |
2271 | |
2272 /(\.\d\d[1-9]?)\d+/ | |
2273 1.230003938 | |
2274 0: .230003938 | |
2275 1: .23 | |
2276 1.875000282 | |
2277 0: .875000282 | |
2278 1: .875 | |
2279 1.235 | |
2280 0: .235 | |
2281 1: .23 | |
2282 | |
2283 /(\.\d\d((?=0)|\d(?=\d)))/ | |
2284 1.230003938 | |
2285 0: .23 | |
2286 1: .23 | |
2287 2: | |
2288 1.875000282 | |
2289 0: .875 | |
2290 1: .875 | |
2291 2: 5 | |
2292 \= Expect no match | |
2293 1.235 | |
2294 No match | |
2295 | |
2296 /\b(foo)\s+(\w+)/i | |
2297 Food is on the foo table | |
2298 0: foo table | |
2299 1: foo | |
2300 2: table | |
2301 | |
2302 /foo(.*)bar/ | |
2303 The food is under the bar in the barn. | |
2304 0: food is under the bar in the bar | |
2305 1: d is under the bar in the | |
2306 | |
2307 /foo(.*?)bar/ | |
2308 The food is under the bar in the barn. | |
2309 0: food is under the bar | |
2310 1: d is under the | |
2311 | |
2312 /(.*)(\d*)/ | |
2313 I have 2 numbers: 53147 | |
2314 0: I have 2 numbers: 53147 | |
2315 1: I have 2 numbers: 53147 | |
2316 2: | |
2317 | |
2318 /(.*)(\d+)/ | |
2319 I have 2 numbers: 53147 | |
2320 0: I have 2 numbers: 53147 | |
2321 1: I have 2 numbers: 5314 | |
2322 2: 7 | |
2323 | |
2324 /(.*?)(\d*)/ | |
2325 I have 2 numbers: 53147 | |
2326 0: | |
2327 1: | |
2328 2: | |
2329 | |
2330 /(.*?)(\d+)/ | |
2331 I have 2 numbers: 53147 | |
2332 0: I have 2 | |
2333 1: I have | |
2334 2: 2 | |
2335 | |
2336 /(.*)(\d+)$/ | |
2337 I have 2 numbers: 53147 | |
2338 0: I have 2 numbers: 53147 | |
2339 1: I have 2 numbers: 5314 | |
2340 2: 7 | |
2341 | |
2342 /(.*?)(\d+)$/ | |
2343 I have 2 numbers: 53147 | |
2344 0: I have 2 numbers: 53147 | |
2345 1: I have 2 numbers: | |
2346 2: 53147 | |
2347 | |
2348 /(.*)\b(\d+)$/ | |
2349 I have 2 numbers: 53147 | |
2350 0: I have 2 numbers: 53147 | |
2351 1: I have 2 numbers: | |
2352 2: 53147 | |
2353 | |
2354 /(.*\D)(\d+)$/ | |
2355 I have 2 numbers: 53147 | |
2356 0: I have 2 numbers: 53147 | |
2357 1: I have 2 numbers: | |
2358 2: 53147 | |
2359 | |
2360 /^\D*(?!123)/ | |
2361 ABC123 | |
2362 0: AB | |
2363 | |
2364 /^(\D*)(?=\d)(?!123)/ | |
2365 ABC445 | |
2366 0: ABC | |
2367 1: ABC | |
2368 \= Expect no match | |
2369 ABC123 | |
2370 No match | |
2371 | |
2372 /^[W-]46]/ | |
2373 W46]789 | |
2374 0: W46] | |
2375 -46]789 | |
2376 0: -46] | |
2377 \= Expect no match | |
2378 Wall | |
2379 No match | |
2380 Zebra | |
2381 No match | |
2382 42 | |
2383 No match | |
2384 [abcd] | |
2385 No match | |
2386 ]abcd[ | |
2387 No match | |
2388 | |
2389 /^[W-\]46]/ | |
2390 W46]789 | |
2391 0: W | |
2392 Wall | |
2393 0: W | |
2394 Zebra | |
2395 0: Z | |
2396 Xylophone | |
2397 0: X | |
2398 42 | |
2399 0: 4 | |
2400 [abcd] | |
2401 0: [ | |
2402 ]abcd[ | |
2403 0: ] | |
2404 \\backslash | |
2405 0: \ | |
2406 \= Expect no match | |
2407 -46]789 | |
2408 No match | |
2409 well | |
2410 No match | |
2411 | |
2412 /\d\d\/\d\d\/\d\d\d\d/ | |
2413 01/01/2000 | |
2414 0: 01/01/2000 | |
2415 | |
2416 /word (?:[a-zA-Z0-9]+ ){0,10}otherword/ | |
2417 word cat dog elephant mussel cow horse canary baboon snake shark otherword | |
2418 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword | |
2419 \= Expect no match | |
2420 word cat dog elephant mussel cow horse canary baboon snake shark | |
2421 No match | |
2422 | |
2423 /word (?:[a-zA-Z0-9]+ ){0,300}otherword/ | |
2424 \= Expect no match | |
2425 word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope | |
2426 No match | |
2427 | |
2428 /^(a){0,0}/ | |
2429 bcd | |
2430 0: | |
2431 abc | |
2432 0: | |
2433 aab | |
2434 0: | |
2435 | |
2436 /^(a){0,1}/ | |
2437 bcd | |
2438 0: | |
2439 abc | |
2440 0: a | |
2441 1: a | |
2442 aab | |
2443 0: a | |
2444 1: a | |
2445 | |
2446 /^(a){0,2}/ | |
2447 bcd | |
2448 0: | |
2449 abc | |
2450 0: a | |
2451 1: a | |
2452 aab | |
2453 0: aa | |
2454 1: a | |
2455 | |
2456 /^(a){0,3}/ | |
2457 bcd | |
2458 0: | |
2459 abc | |
2460 0: a | |
2461 1: a | |
2462 aab | |
2463 0: aa | |
2464 1: a | |
2465 aaa | |
2466 0: aaa | |
2467 1: a | |
2468 | |
2469 /^(a){0,}/ | |
2470 bcd | |
2471 0: | |
2472 abc | |
2473 0: a | |
2474 1: a | |
2475 aab | |
2476 0: aa | |
2477 1: a | |
2478 aaa | |
2479 0: aaa | |
2480 1: a | |
2481 aaaaaaaa | |
2482 0: aaaaaaaa | |
2483 1: a | |
2484 | |
2485 /^(a){1,1}/ | |
2486 abc | |
2487 0: a | |
2488 1: a | |
2489 aab | |
2490 0: a | |
2491 1: a | |
2492 \= Expect no match | |
2493 bcd | |
2494 No match | |
2495 | |
2496 /^(a){1,2}/ | |
2497 abc | |
2498 0: a | |
2499 1: a | |
2500 aab | |
2501 0: aa | |
2502 1: a | |
2503 \= Expect no match | |
2504 bcd | |
2505 No match | |
2506 | |
2507 /^(a){1,3}/ | |
2508 abc | |
2509 0: a | |
2510 1: a | |
2511 aab | |
2512 0: aa | |
2513 1: a | |
2514 aaa | |
2515 0: aaa | |
2516 1: a | |
2517 \= Expect no match | |
2518 bcd | |
2519 No match | |
2520 | |
2521 /^(a){1,}/ | |
2522 abc | |
2523 0: a | |
2524 1: a | |
2525 aab | |
2526 0: aa | |
2527 1: a | |
2528 aaa | |
2529 0: aaa | |
2530 1: a | |
2531 aaaaaaaa | |
2532 0: aaaaaaaa | |
2533 1: a | |
2534 \= Expect no match | |
2535 bcd | |
2536 No match | |
2537 | |
2538 /.*\.gif/ | |
2539 borfle\nbib.gif\nno | |
2540 0: bib.gif | |
2541 | |
2542 /.{0,}\.gif/ | |
2543 borfle\nbib.gif\nno | |
2544 0: bib.gif | |
2545 | |
2546 /.*\.gif/m | |
2547 borfle\nbib.gif\nno | |
2548 0: bib.gif | |
2549 | |
2550 /.*\.gif/s | |
2551 borfle\nbib.gif\nno | |
2552 0: borfle\x0abib.gif | |
2553 | |
2554 /.*\.gif/ms | |
2555 borfle\nbib.gif\nno | |
2556 0: borfle\x0abib.gif | |
2557 | |
2558 /.*$/ | |
2559 borfle\nbib.gif\nno | |
2560 0: no | |
2561 | |
2562 /.*$/m | |
2563 borfle\nbib.gif\nno | |
2564 0: borfle | |
2565 | |
2566 /.*$/s | |
2567 borfle\nbib.gif\nno | |
2568 0: borfle\x0abib.gif\x0ano | |
2569 | |
2570 /.*$/ms | |
2571 borfle\nbib.gif\nno | |
2572 0: borfle\x0abib.gif\x0ano | |
2573 | |
2574 /.*$/ | |
2575 borfle\nbib.gif\nno\n | |
2576 0: no | |
2577 | |
2578 /.*$/m | |
2579 borfle\nbib.gif\nno\n | |
2580 0: borfle | |
2581 | |
2582 /.*$/s | |
2583 borfle\nbib.gif\nno\n | |
2584 0: borfle\x0abib.gif\x0ano\x0a | |
2585 | |
2586 /.*$/ms | |
2587 borfle\nbib.gif\nno\n | |
2588 0: borfle\x0abib.gif\x0ano\x0a | |
2589 | |
2590 /(.*X|^B)/ | |
2591 abcde\n1234Xyz | |
2592 0: 1234X | |
2593 1: 1234X | |
2594 BarFoo | |
2595 0: B | |
2596 1: B | |
2597 \= Expect no match | |
2598 abcde\nBar | |
2599 No match | |
2600 | |
2601 /(.*X|^B)/m | |
2602 abcde\n1234Xyz | |
2603 0: 1234X | |
2604 1: 1234X | |
2605 BarFoo | |
2606 0: B | |
2607 1: B | |
2608 abcde\nBar | |
2609 0: B | |
2610 1: B | |
2611 | |
2612 /(.*X|^B)/s | |
2613 abcde\n1234Xyz | |
2614 0: abcde\x0a1234X | |
2615 1: abcde\x0a1234X | |
2616 BarFoo | |
2617 0: B | |
2618 1: B | |
2619 \= Expect no match | |
2620 abcde\nBar | |
2621 No match | |
2622 | |
2623 /(.*X|^B)/ms | |
2624 abcde\n1234Xyz | |
2625 0: abcde\x0a1234X | |
2626 1: abcde\x0a1234X | |
2627 BarFoo | |
2628 0: B | |
2629 1: B | |
2630 abcde\nBar | |
2631 0: B | |
2632 1: B | |
2633 | |
2634 /(?s)(.*X|^B)/ | |
2635 abcde\n1234Xyz | |
2636 0: abcde\x0a1234X | |
2637 1: abcde\x0a1234X | |
2638 BarFoo | |
2639 0: B | |
2640 1: B | |
2641 \= Expect no match | |
2642 abcde\nBar | |
2643 No match | |
2644 | |
2645 /(?s:.*X|^B)/ | |
2646 abcde\n1234Xyz | |
2647 0: abcde\x0a1234X | |
2648 BarFoo | |
2649 0: B | |
2650 \= Expect no match | |
2651 abcde\nBar | |
2652 No match | |
2653 | |
2654 /^.*B/ | |
2655 \= Expect no match | |
2656 abc\nB | |
2657 No match | |
2658 | |
2659 /(?s)^.*B/ | |
2660 abc\nB | |
2661 0: abc\x0aB | |
2662 | |
2663 /(?m)^.*B/ | |
2664 abc\nB | |
2665 0: B | |
2666 | |
2667 /(?ms)^.*B/ | |
2668 abc\nB | |
2669 0: abc\x0aB | |
2670 | |
2671 /(?ms)^B/ | |
2672 abc\nB | |
2673 0: B | |
2674 | |
2675 /(?s)B$/ | |
2676 B\n | |
2677 0: B | |
2678 | |
2679 /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/ | |
2680 123456654321 | |
2681 0: 123456654321 | |
2682 | |
2683 /^\d\d\d\d\d\d\d\d\d\d\d\d/ | |
2684 123456654321 | |
2685 0: 123456654321 | |
2686 | |
2687 /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/ | |
2688 123456654321 | |
2689 0: 123456654321 | |
2690 | |
2691 /^[abc]{12}/ | |
2692 abcabcabcabc | |
2693 0: abcabcabcabc | |
2694 | |
2695 /^[a-c]{12}/ | |
2696 abcabcabcabc | |
2697 0: abcabcabcabc | |
2698 | |
2699 /^(a|b|c){12}/ | |
2700 abcabcabcabc | |
2701 0: abcabcabcabc | |
2702 1: c | |
2703 | |
2704 /^[abcdefghijklmnopqrstuvwxy0123456789]/ | |
2705 n | |
2706 0: n | |
2707 \= Expect no match | |
2708 z | |
2709 No match | |
2710 | |
2711 /abcde{0,0}/ | |
2712 abcd | |
2713 0: abcd | |
2714 \= Expect no match | |
2715 abce | |
2716 No match | |
2717 | |
2718 /ab[cd]{0,0}e/ | |
2719 abe | |
2720 0: abe | |
2721 \= Expect no match | |
2722 abcde | |
2723 No match | |
2724 | |
2725 /ab(c){0,0}d/ | |
2726 abd | |
2727 0: abd | |
2728 \= Expect no match | |
2729 abcd | |
2730 No match | |
2731 | |
2732 /a(b*)/ | |
2733 a | |
2734 0: a | |
2735 1: | |
2736 ab | |
2737 0: ab | |
2738 1: b | |
2739 abbbb | |
2740 0: abbbb | |
2741 1: bbbb | |
2742 \= Expect no match | |
2743 bbbbb | |
2744 No match | |
2745 | |
2746 /ab\d{0}e/ | |
2747 abe | |
2748 0: abe | |
2749 \= Expect no match | |
2750 ab1e | |
2751 No match | |
2752 | |
2753 /"([^\\"]+|\\.)*"/ | |
2754 the \"quick\" brown fox | |
2755 0: "quick" | |
2756 1: quick | |
2757 \"the \\\"quick\\\" brown fox\" | |
2758 0: "the \"quick\" brown fox" | |
2759 1: brown fox | |
2760 | |
2761 /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/is | |
2762 <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR> | |
2763 0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR> | |
2764 1: BGCOLOR='#DBE9E9' | |
2765 2: align=left valign=top | |
2766 3: 43. | |
2767 4: <a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286) | |
2768 5: | |
2769 6: | |
2770 7: <unset> | |
2771 8: align=left valign=top | |
2772 9: Lega lstaff.com | |
2773 10: align=left valign=top | |
2774 11: CA - Statewide | |
2775 | |
2776 /a[^a]b/ | |
2777 acb | |
2778 0: acb | |
2779 a\nb | |
2780 0: a\x0ab | |
2781 | |
2782 /a.b/ | |
2783 acb | |
2784 0: acb | |
2785 \= Expect no match | |
2786 a\nb | |
2787 No match | |
2788 | |
2789 /a[^a]b/s | |
2790 acb | |
2791 0: acb | |
2792 a\nb | |
2793 0: a\x0ab | |
2794 | |
2795 /a.b/s | |
2796 acb | |
2797 0: acb | |
2798 a\nb | |
2799 0: a\x0ab | |
2800 | |
2801 /^(b+?|a){1,2}?c/ | |
2802 bac | |
2803 0: bac | |
2804 1: a | |
2805 bbac | |
2806 0: bbac | |
2807 1: a | |
2808 bbbac | |
2809 0: bbbac | |
2810 1: a | |
2811 bbbbac | |
2812 0: bbbbac | |
2813 1: a | |
2814 bbbbbac | |
2815 0: bbbbbac | |
2816 1: a | |
2817 | |
2818 /^(b+|a){1,2}?c/ | |
2819 bac | |
2820 0: bac | |
2821 1: a | |
2822 bbac | |
2823 0: bbac | |
2824 1: a | |
2825 bbbac | |
2826 0: bbbac | |
2827 1: a | |
2828 bbbbac | |
2829 0: bbbbac | |
2830 1: a | |
2831 bbbbbac | |
2832 0: bbbbbac | |
2833 1: a | |
2834 | |
2835 /(?!\A)x/m | |
2836 a\bx\n | |
2837 0: x | |
2838 a\nx\n | |
2839 0: x | |
2840 \= Expect no match | |
2841 x\nb\n | |
2842 No match | |
2843 | |
2844 /(A|B)*?CD/ | |
2845 CD | |
2846 0: CD | |
2847 | |
2848 /(A|B)*CD/ | |
2849 CD | |
2850 0: CD | |
2851 | |
2852 /(AB)*?\1/ | |
2853 ABABAB | |
2854 0: ABAB | |
2855 1: AB | |
2856 | |
2857 /(AB)*\1/ | |
2858 ABABAB | |
2859 0: ABABAB | |
2860 1: AB | |
2861 | |
2862 /(?<!bar)foo/ | |
2863 foo | |
2864 0: foo | |
2865 catfood | |
2866 0: foo | |
2867 arfootle | |
2868 0: foo | |
2869 rfoosh | |
2870 0: foo | |
2871 \= Expect no match | |
2872 barfoo | |
2873 No match | |
2874 towbarfoo | |
2875 No match | |
2876 | |
2877 /\w{3}(?<!bar)foo/ | |
2878 catfood | |
2879 0: catfoo | |
2880 \= Expect no match | |
2881 foo | |
2882 No match | |
2883 barfoo | |
2884 No match | |
2885 towbarfoo | |
2886 No match | |
2887 | |
2888 /(?<=(foo)a)bar/ | |
2889 fooabar | |
2890 0: bar | |
2891 1: foo | |
2892 \= Expect no match | |
2893 bar | |
2894 No match | |
2895 foobbar | |
2896 No match | |
2897 | |
2898 /\Aabc\z/m | |
2899 abc | |
2900 0: abc | |
2901 \= Expect no match | |
2902 abc\n | |
2903 No match | |
2904 qqq\nabc | |
2905 No match | |
2906 abc\nzzz | |
2907 No match | |
2908 qqq\nabc\nzzz | |
2909 No match | |
2910 | |
2911 "(?>.*/)foo" | |
2912 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo | |
2913 0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo | |
2914 \= Expect no match | |
2915 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/ | |
2916 No match | |
2917 | |
2918 /(?>(\.\d\d[1-9]?))\d+/ | |
2919 1.230003938 | |
2920 0: .230003938 | |
2921 1: .23 | |
2922 1.875000282 | |
2923 0: .875000282 | |
2924 1: .875 | |
2925 \= Expect no match | |
2926 1.235 | |
2927 No match | |
2928 | |
2929 /^((?>\w+)|(?>\s+))*$/ | |
2930 now is the time for all good men to come to the aid of the party | |
2931 0: now is the time for all good men to come to the aid of the party | |
2932 1: party | |
2933 \= Expect no match | |
2934 this is not a line with only words and spaces! | |
2935 No match | |
2936 | |
2937 /(\d+)(\w)/ | |
2938 12345a | |
2939 0: 12345a | |
2940 1: 12345 | |
2941 2: a | |
2942 12345+ | |
2943 0: 12345 | |
2944 1: 1234 | |
2945 2: 5 | |
2946 | |
2947 /((?>\d+))(\w)/ | |
2948 12345a | |
2949 0: 12345a | |
2950 1: 12345 | |
2951 2: a | |
2952 \= Expect no match | |
2953 12345+ | |
2954 No match | |
2955 | |
2956 /(?>a+)b/ | |
2957 aaab | |
2958 0: aaab | |
2959 | |
2960 /((?>a+)b)/ | |
2961 aaab | |
2962 0: aaab | |
2963 1: aaab | |
2964 | |
2965 /(?>(a+))b/ | |
2966 aaab | |
2967 0: aaab | |
2968 1: aaa | |
2969 | |
2970 /(?>b)+/ | |
2971 aaabbbccc | |
2972 0: bbb | |
2973 | |
2974 /(?>a+|b+|c+)*c/ | |
2975 aaabbbbccccd | |
2976 0: aaabbbbc | |
2977 | |
2978 /((?>[^()]+)|\([^()]*\))+/ | |
2979 ((abc(ade)ufh()()x | |
2980 0: abc(ade)ufh()()x | |
2981 1: x | |
2982 | |
2983 /\(((?>[^()]+)|\([^()]+\))+\)/ | |
2984 (abc) | |
2985 0: (abc) | |
2986 1: abc | |
2987 (abc(def)xyz) | |
2988 0: (abc(def)xyz) | |
2989 1: xyz | |
2990 \= Expect no match | |
2991 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | |
2992 No match | |
2993 | |
2994 /a(?-i)b/i | |
2995 ab | |
2996 0: ab | |
2997 Ab | |
2998 0: Ab | |
2999 \= Expect no match | |
3000 aB | |
3001 No match | |
3002 AB | |
3003 No match | |
3004 | |
3005 /(a (?x)b c)d e/ | |
3006 a bcd e | |
3007 0: a bcd e | |
3008 1: a bc | |
3009 \= Expect no match | |
3010 a b cd e | |
3011 No match | |
3012 abcd e | |
3013 No match | |
3014 a bcde | |
3015 No match | |
3016 | |
3017 /(a b(?x)c d (?-x)e f)/ | |
3018 a bcde f | |
3019 0: a bcde f | |
3020 1: a bcde f | |
3021 \= Expect no match | |
3022 abcdef | |
3023 No match | |
3024 | |
3025 /(a(?i)b)c/ | |
3026 abc | |
3027 0: abc | |
3028 1: ab | |
3029 aBc | |
3030 0: aBc | |
3031 1: aB | |
3032 \= Expect no match | |
3033 abC | |
3034 No match | |
3035 aBC | |
3036 No match | |
3037 Abc | |
3038 No match | |
3039 ABc | |
3040 No match | |
3041 ABC | |
3042 No match | |
3043 AbC | |
3044 No match | |
3045 | |
3046 /a(?i:b)c/ | |
3047 abc | |
3048 0: abc | |
3049 aBc | |
3050 0: aBc | |
3051 \= Expect no match | |
3052 ABC | |
3053 No match | |
3054 abC | |
3055 No match | |
3056 aBC | |
3057 No match | |
3058 | |
3059 /a(?i:b)*c/ | |
3060 aBc | |
3061 0: aBc | |
3062 aBBc | |
3063 0: aBBc | |
3064 \= Expect no match | |
3065 aBC | |
3066 No match | |
3067 aBBC | |
3068 No match | |
3069 | |
3070 /a(?=b(?i)c)\w\wd/ | |
3071 abcd | |
3072 0: abcd | |
3073 abCd | |
3074 0: abCd | |
3075 \= Expect no match | |
3076 aBCd | |
3077 No match | |
3078 abcD | |
3079 No match | |
3080 | |
3081 /(?s-i:more.*than).*million/i | |
3082 more than million | |
3083 0: more than million | |
3084 more than MILLION | |
3085 0: more than MILLION | |
3086 more \n than Million | |
3087 0: more \x0a than Million | |
3088 \= Expect no match | |
3089 MORE THAN MILLION | |
3090 No match | |
3091 more \n than \n million | |
3092 No match | |
3093 | |
3094 /(?:(?s-i)more.*than).*million/i | |
3095 more than million | |
3096 0: more than million | |
3097 more than MILLION | |
3098 0: more than MILLION | |
3099 more \n than Million | |
3100 0: more \x0a than Million | |
3101 \= Expect no match | |
3102 MORE THAN MILLION | |
3103 No match | |
3104 more \n than \n million | |
3105 No match | |
3106 | |
3107 /(?>a(?i)b+)+c/ | |
3108 abc | |
3109 0: abc | |
3110 aBbc | |
3111 0: aBbc | |
3112 aBBc | |
3113 0: aBBc | |
3114 \= Expect no match | |
3115 Abc | |
3116 No match | |
3117 abAb | |
3118 No match | |
3119 abbC | |
3120 No match | |
3121 | |
3122 /(?=a(?i)b)\w\wc/ | |
3123 abc | |
3124 0: abc | |
3125 aBc | |
3126 0: aBc | |
3127 \= Expect no match | |
3128 Ab | |
3129 No match | |
3130 abC | |
3131 No match | |
3132 aBC | |
3133 No match | |
3134 | |
3135 /(?<=a(?i)b)(\w\w)c/ | |
3136 abxxc | |
3137 0: xxc | |
3138 1: xx | |
3139 aBxxc | |
3140 0: xxc | |
3141 1: xx | |
3142 \= Expect no match | |
3143 Abxxc | |
3144 No match | |
3145 ABxxc | |
3146 No match | |
3147 abxxC | |
3148 No match | |
3149 | |
3150 /(?:(a)|b)(?(1)A|B)/ | |
3151 aA | |
3152 0: aA | |
3153 1: a | |
3154 bB | |
3155 0: bB | |
3156 \= Expect no match | |
3157 aB | |
3158 No match | |
3159 bA | |
3160 No match | |
3161 | |
3162 /^(a)?(?(1)a|b)+$/ | |
3163 aa | |
3164 0: aa | |
3165 1: a | |
3166 b | |
3167 0: b | |
3168 bb | |
3169 0: bb | |
3170 \= Expect no match | |
3171 ab | |
3172 No match | |
3173 | |
3174 # Perl gets this next one wrong if the pattern ends with $; in that case it | |
3175 # fails to match "12". | |
3176 | |
3177 /^(?(?=abc)\w{3}:|\d\d)/ | |
3178 abc: | |
3179 0: abc: | |
3180 12 | |
3181 0: 12 | |
3182 123 | |
3183 0: 12 | |
3184 \= Expect no match | |
3185 xyz | |
3186 No match | |
3187 | |
3188 /^(?(?!abc)\d\d|\w{3}:)$/ | |
3189 abc: | |
3190 0: abc: | |
3191 12 | |
3192 0: 12 | |
3193 \= Expect no match | |
3194 123 | |
3195 No match | |
3196 xyz | |
3197 No match | |
3198 | |
3199 /(?(?<=foo)bar|cat)/ | |
3200 foobar | |
3201 0: bar | |
3202 cat | |
3203 0: cat | |
3204 fcat | |
3205 0: cat | |
3206 focat | |
3207 0: cat | |
3208 \= Expect no match | |
3209 foocat | |
3210 No match | |
3211 | |
3212 /(?(?<!foo)cat|bar)/ | |
3213 foobar | |
3214 0: bar | |
3215 cat | |
3216 0: cat | |
3217 fcat | |
3218 0: cat | |
3219 focat | |
3220 0: cat | |
3221 \= Expect no match | |
3222 foocat | |
3223 No match | |
3224 | |
3225 /( \( )? [^()]+ (?(1) \) |) /x | |
3226 abcd | |
3227 0: abcd | |
3228 (abcd) | |
3229 0: (abcd) | |
3230 1: ( | |
3231 the quick (abcd) fox | |
3232 0: the quick | |
3233 (abcd | |
3234 0: abcd | |
3235 | |
3236 /( \( )? [^()]+ (?(1) \) ) /x | |
3237 abcd | |
3238 0: abcd | |
3239 (abcd) | |
3240 0: (abcd) | |
3241 1: ( | |
3242 the quick (abcd) fox | |
3243 0: the quick | |
3244 (abcd | |
3245 0: abcd | |
3246 | |
3247 /^(?(2)a|(1)(2))+$/ | |
3248 12 | |
3249 0: 12 | |
3250 1: 1 | |
3251 2: 2 | |
3252 12a | |
3253 0: 12a | |
3254 1: 1 | |
3255 2: 2 | |
3256 12aa | |
3257 0: 12aa | |
3258 1: 1 | |
3259 2: 2 | |
3260 \= Expect no match | |
3261 1234 | |
3262 No match | |
3263 | |
3264 /((?i)blah)\s+\1/ | |
3265 blah blah | |
3266 0: blah blah | |
3267 1: blah | |
3268 BLAH BLAH | |
3269 0: BLAH BLAH | |
3270 1: BLAH | |
3271 Blah Blah | |
3272 0: Blah Blah | |
3273 1: Blah | |
3274 blaH blaH | |
3275 0: blaH blaH | |
3276 1: blaH | |
3277 \= Expect no match | |
3278 blah BLAH | |
3279 No match | |
3280 Blah blah | |
3281 No match | |
3282 blaH blah | |
3283 No match | |
3284 | |
3285 /((?i)blah)\s+(?i:\1)/ | |
3286 blah blah | |
3287 0: blah blah | |
3288 1: blah | |
3289 BLAH BLAH | |
3290 0: BLAH BLAH | |
3291 1: BLAH | |
3292 Blah Blah | |
3293 0: Blah Blah | |
3294 1: Blah | |
3295 blaH blaH | |
3296 0: blaH blaH | |
3297 1: blaH | |
3298 blah BLAH | |
3299 0: blah BLAH | |
3300 1: blah | |
3301 Blah blah | |
3302 0: Blah blah | |
3303 1: Blah | |
3304 blaH blah | |
3305 0: blaH blah | |
3306 1: blaH | |
3307 | |
3308 /(?>a*)*/ | |
3309 a | |
3310 0: a | |
3311 aa | |
3312 0: aa | |
3313 aaaa | |
3314 0: aaaa | |
3315 | |
3316 /(abc|)+/ | |
3317 abc | |
3318 0: abc | |
3319 1: | |
3320 abcabc | |
3321 0: abcabc | |
3322 1: | |
3323 abcabcabc | |
3324 0: abcabcabc | |
3325 1: | |
3326 xyz | |
3327 0: | |
3328 1: | |
3329 | |
3330 /([a]*)*/ | |
3331 a | |
3332 0: a | |
3333 1: | |
3334 aaaaa | |
3335 0: aaaaa | |
3336 1: | |
3337 | |
3338 /([ab]*)*/ | |
3339 a | |
3340 0: a | |
3341 1: | |
3342 b | |
3343 0: b | |
3344 1: | |
3345 ababab | |
3346 0: ababab | |
3347 1: | |
3348 aaaabcde | |
3349 0: aaaab | |
3350 1: | |
3351 bbbb | |
3352 0: bbbb | |
3353 1: | |
3354 | |
3355 /([^a]*)*/ | |
3356 b | |
3357 0: b | |
3358 1: | |
3359 bbbb | |
3360 0: bbbb | |
3361 1: | |
3362 aaa | |
3363 0: | |
3364 1: | |
3365 | |
3366 /([^ab]*)*/ | |
3367 cccc | |
3368 0: cccc | |
3369 1: | |
3370 abab | |
3371 0: | |
3372 1: | |
3373 | |
3374 /([a]*?)*/ | |
3375 a | |
3376 0: | |
3377 1: | |
3378 aaaa | |
3379 0: | |
3380 1: | |
3381 | |
3382 /([ab]*?)*/ | |
3383 a | |
3384 0: | |
3385 1: | |
3386 b | |
3387 0: | |
3388 1: | |
3389 abab | |
3390 0: | |
3391 1: | |
3392 baba | |
3393 0: | |
3394 1: | |
3395 | |
3396 /([^a]*?)*/ | |
3397 b | |
3398 0: | |
3399 1: | |
3400 bbbb | |
3401 0: | |
3402 1: | |
3403 aaa | |
3404 0: | |
3405 1: | |
3406 | |
3407 /([^ab]*?)*/ | |
3408 c | |
3409 0: | |
3410 1: | |
3411 cccc | |
3412 0: | |
3413 1: | |
3414 baba | |
3415 0: | |
3416 1: | |
3417 | |
3418 /(?>a*)*/ | |
3419 a | |
3420 0: a | |
3421 aaabcde | |
3422 0: aaa | |
3423 | |
3424 /((?>a*))*/ | |
3425 aaaaa | |
3426 0: aaaaa | |
3427 1: | |
3428 aabbaa | |
3429 0: aa | |
3430 1: | |
3431 | |
3432 /((?>a*?))*/ | |
3433 aaaaa | |
3434 0: | |
3435 1: | |
3436 aabbaa | |
3437 0: | |
3438 1: | |
3439 | |
3440 /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x | |
3441 12-sep-98 | |
3442 0: 12-sep-98 | |
3443 12-09-98 | |
3444 0: 12-09-98 | |
3445 \= Expect no match | |
3446 sep-12-98 | |
3447 No match | |
3448 | |
3449 /(?<=(foo))bar\1/ | |
3450 foobarfoo | |
3451 0: barfoo | |
3452 1: foo | |
3453 foobarfootling | |
3454 0: barfoo | |
3455 1: foo | |
3456 \= Expect no match | |
3457 foobar | |
3458 No match | |
3459 barfoo | |
3460 No match | |
3461 | |
3462 /(?i:saturday|sunday)/ | |
3463 saturday | |
3464 0: saturday | |
3465 sunday | |
3466 0: sunday | |
3467 Saturday | |
3468 0: Saturday | |
3469 Sunday | |
3470 0: Sunday | |
3471 SATURDAY | |
3472 0: SATURDAY | |
3473 SUNDAY | |
3474 0: SUNDAY | |
3475 SunDay | |
3476 0: SunDay | |
3477 | |
3478 /(a(?i)bc|BB)x/ | |
3479 abcx | |
3480 0: abcx | |
3481 1: abc | |
3482 aBCx | |
3483 0: aBCx | |
3484 1: aBC | |
3485 bbx | |
3486 0: bbx | |
3487 1: bb | |
3488 BBx | |
3489 0: BBx | |
3490 1: BB | |
3491 \= Expect no match | |
3492 abcX | |
3493 No match | |
3494 aBCX | |
3495 No match | |
3496 bbX | |
3497 No match | |
3498 BBX | |
3499 No match | |
3500 | |
3501 /^([ab](?i)[cd]|[ef])/ | |
3502 ac | |
3503 0: ac | |
3504 1: ac | |
3505 aC | |
3506 0: aC | |
3507 1: aC | |
3508 bD | |
3509 0: bD | |
3510 1: bD | |
3511 elephant | |
3512 0: e | |
3513 1: e | |
3514 Europe | |
3515 0: E | |
3516 1: E | |
3517 frog | |
3518 0: f | |
3519 1: f | |
3520 France | |
3521 0: F | |
3522 1: F | |
3523 \= Expect no match | |
3524 Africa | |
3525 No match | |
3526 | |
3527 /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/ | |
3528 ab | |
3529 0: ab | |
3530 1: ab | |
3531 aBd | |
3532 0: aBd | |
3533 1: aBd | |
3534 xy | |
3535 0: xy | |
3536 1: xy | |
3537 xY | |
3538 0: xY | |
3539 1: xY | |
3540 zebra | |
3541 0: z | |
3542 1: z | |
3543 Zambesi | |
3544 0: Z | |
3545 1: Z | |
3546 \= Expect no match | |
3547 aCD | |
3548 No match | |
3549 XY | |
3550 No match | |
3551 | |
3552 /(?<=foo\n)^bar/m | |
3553 foo\nbar | |
3554 0: bar | |
3555 \= Expect no match | |
3556 bar | |
3557 No match | |
3558 baz\nbar | |
3559 No match | |
3560 | |
3561 /(?<=(?<!foo)bar)baz/ | |
3562 barbaz | |
3563 0: baz | |
3564 barbarbaz | |
3565 0: baz | |
3566 koobarbaz | |
3567 0: baz | |
3568 \= Expect no match | |
3569 baz | |
3570 No match | |
3571 foobarbaz | |
3572 No match | |
3573 | |
3574 # The cases of aaaa and aaaaaa are missed out below because Perl does things | |
3575 # differently. We know that odd, and maybe incorrect, things happen with | |
3576 # recursive references in Perl, as far as 5.11.3 - see some stuff in test #2. | |
3577 | |
3578 /^(a\1?){4}$/ | |
3579 aaaaa | |
3580 0: aaaaa | |
3581 1: a | |
3582 aaaaaaa | |
3583 0: aaaaaaa | |
3584 1: a | |
3585 aaaaaaaaaa | |
3586 0: aaaaaaaaaa | |
3587 1: aaaa | |
3588 \= Expect no match | |
3589 a | |
3590 No match | |
3591 aa | |
3592 No match | |
3593 aaa | |
3594 No match | |
3595 aaaaaaaa | |
3596 No match | |
3597 aaaaaaaaa | |
3598 No match | |
3599 aaaaaaaaaaa | |
3600 No match | |
3601 aaaaaaaaaaaa | |
3602 No match | |
3603 aaaaaaaaaaaaa | |
3604 No match | |
3605 aaaaaaaaaaaaaa | |
3606 No match | |
3607 aaaaaaaaaaaaaaa | |
3608 No match | |
3609 aaaaaaaaaaaaaaaa | |
3610 No match | |
3611 | |
3612 /^(a\1?)(a\1?)(a\2?)(a\3?)$/ | |
3613 aaaa | |
3614 0: aaaa | |
3615 1: a | |
3616 2: a | |
3617 3: a | |
3618 4: a | |
3619 aaaaa | |
3620 0: aaaaa | |
3621 1: a | |
3622 2: aa | |
3623 3: a | |
3624 4: a | |
3625 aaaaaa | |
3626 0: aaaaaa | |
3627 1: a | |
3628 2: aa | |
3629 3: a | |
3630 4: aa | |
3631 aaaaaaa | |
3632 0: aaaaaaa | |
3633 1: a | |
3634 2: aa | |
3635 3: aaa | |
3636 4: a | |
3637 aaaaaaaaaa | |
3638 0: aaaaaaaaaa | |
3639 1: a | |
3640 2: aa | |
3641 3: aaa | |
3642 4: aaaa | |
3643 \= Expect no match | |
3644 a | |
3645 No match | |
3646 aa | |
3647 No match | |
3648 aaa | |
3649 No match | |
3650 aaaaaaaa | |
3651 No match | |
3652 aaaaaaaaa | |
3653 No match | |
3654 aaaaaaaaaaa | |
3655 No match | |
3656 aaaaaaaaaaaa | |
3657 No match | |
3658 aaaaaaaaaaaaa | |
3659 No match | |
3660 aaaaaaaaaaaaaa | |
3661 No match | |
3662 aaaaaaaaaaaaaaa | |
3663 No match | |
3664 aaaaaaaaaaaaaaaa | |
3665 No match | |
3666 | |
3667 # The following tests are taken from the Perl 5.005 test suite; some of them | |
3668 # are compatible with 5.004, but I'd rather not have to sort them out. | |
3669 | |
3670 /abc/ | |
3671 abc | |
3672 0: abc | |
3673 xabcy | |
3674 0: abc | |
3675 ababc | |
3676 0: abc | |
3677 \= Expect no match | |
3678 xbc | |
3679 No match | |
3680 axc | |
3681 No match | |
3682 abx | |
3683 No match | |
3684 | |
3685 /ab*c/ | |
3686 abc | |
3687 0: abc | |
3688 | |
3689 /ab*bc/ | |
3690 abc | |
3691 0: abc | |
3692 abbc | |
3693 0: abbc | |
3694 abbbbc | |
3695 0: abbbbc | |
3696 | |
3697 /.{1}/ | |
3698 abbbbc | |
3699 0: a | |
3700 | |
3701 /.{3,4}/ | |
3702 abbbbc | |
3703 0: abbb | |
3704 | |
3705 /ab{0,}bc/ | |
3706 abbbbc | |
3707 0: abbbbc | |
3708 | |
3709 /ab+bc/ | |
3710 abbc | |
3711 0: abbc | |
3712 \= Expect no match | |
3713 abc | |
3714 No match | |
3715 abq | |
3716 No match | |
3717 | |
3718 /ab{1,}bc/ | |
3719 | |
3720 /ab+bc/ | |
3721 abbbbc | |
3722 0: abbbbc | |
3723 | |
3724 /ab{1,}bc/ | |
3725 abbbbc | |
3726 0: abbbbc | |
3727 | |
3728 /ab{1,3}bc/ | |
3729 abbbbc | |
3730 0: abbbbc | |
3731 | |
3732 /ab{3,4}bc/ | |
3733 abbbbc | |
3734 0: abbbbc | |
3735 | |
3736 /ab{4,5}bc/ | |
3737 \= Expect no match | |
3738 abq | |
3739 No match | |
3740 abbbbc | |
3741 No match | |
3742 | |
3743 /ab?bc/ | |
3744 abbc | |
3745 0: abbc | |
3746 abc | |
3747 0: abc | |
3748 | |
3749 /ab{0,1}bc/ | |
3750 abc | |
3751 0: abc | |
3752 | |
3753 /ab?bc/ | |
3754 | |
3755 /ab?c/ | |
3756 abc | |
3757 0: abc | |
3758 | |
3759 /ab{0,1}c/ | |
3760 abc | |
3761 0: abc | |
3762 | |
3763 /^abc$/ | |
3764 abc | |
3765 0: abc | |
3766 \= Expect no match | |
3767 abbbbc | |
3768 No match | |
3769 abcc | |
3770 No match | |
3771 | |
3772 /^abc/ | |
3773 abcc | |
3774 0: abc | |
3775 | |
3776 /^abc$/ | |
3777 | |
3778 /abc$/ | |
3779 aabc | |
3780 0: abc | |
3781 \= Expect no match | |
3782 aabcd | |
3783 No match | |
3784 | |
3785 /^/ | |
3786 abc | |
3787 0: | |
3788 | |
3789 /$/ | |
3790 abc | |
3791 0: | |
3792 | |
3793 /a.c/ | |
3794 abc | |
3795 0: abc | |
3796 axc | |
3797 0: axc | |
3798 | |
3799 /a.*c/ | |
3800 axyzc | |
3801 0: axyzc | |
3802 | |
3803 /a[bc]d/ | |
3804 abd | |
3805 0: abd | |
3806 \= Expect no match | |
3807 axyzd | |
3808 No match | |
3809 abc | |
3810 No match | |
3811 | |
3812 /a[b-d]e/ | |
3813 ace | |
3814 0: ace | |
3815 | |
3816 /a[b-d]/ | |
3817 aac | |
3818 0: ac | |
3819 | |
3820 /a[-b]/ | |
3821 a- | |
3822 0: a- | |
3823 | |
3824 /a[b-]/ | |
3825 a- | |
3826 0: a- | |
3827 | |
3828 /a]/ | |
3829 a] | |
3830 0: a] | |
3831 | |
3832 /a[]]b/ | |
3833 a]b | |
3834 0: a]b | |
3835 | |
3836 /a[^bc]d/ | |
3837 aed | |
3838 0: aed | |
3839 \= Expect no match | |
3840 abd | |
3841 No match | |
3842 abd | |
3843 No match | |
3844 | |
3845 /a[^-b]c/ | |
3846 adc | |
3847 0: adc | |
3848 | |
3849 /a[^]b]c/ | |
3850 adc | |
3851 0: adc | |
3852 a-c | |
3853 0: a-c | |
3854 \= Expect no match | |
3855 a]c | |
3856 No match | |
3857 | |
3858 /\ba\b/ | |
3859 a- | |
3860 0: a | |
3861 -a | |
3862 0: a | |
3863 -a- | |
3864 0: a | |
3865 | |
3866 /\by\b/ | |
3867 \= Expect no match | |
3868 xy | |
3869 No match | |
3870 yz | |
3871 No match | |
3872 xyz | |
3873 No match | |
3874 | |
3875 /\Ba\B/ | |
3876 \= Expect no match | |
3877 a- | |
3878 No match | |
3879 -a | |
3880 No match | |
3881 -a- | |
3882 No match | |
3883 | |
3884 /\By\b/ | |
3885 xy | |
3886 0: y | |
3887 | |
3888 /\by\B/ | |
3889 yz | |
3890 0: y | |
3891 | |
3892 /\By\B/ | |
3893 xyz | |
3894 0: y | |
3895 | |
3896 /\w/ | |
3897 a | |
3898 0: a | |
3899 | |
3900 /\W/ | |
3901 - | |
3902 0: - | |
3903 \= Expect no match | |
3904 a | |
3905 No match | |
3906 | |
3907 /a\sb/ | |
3908 a b | |
3909 0: a b | |
3910 | |
3911 /a\Sb/ | |
3912 a-b | |
3913 0: a-b | |
3914 \= Expect no match | |
3915 a b | |
3916 No match | |
3917 | |
3918 /\d/ | |
3919 1 | |
3920 0: 1 | |
3921 | |
3922 /\D/ | |
3923 - | |
3924 0: - | |
3925 \= Expect no match | |
3926 1 | |
3927 No match | |
3928 | |
3929 /[\w]/ | |
3930 a | |
3931 0: a | |
3932 | |
3933 /[\W]/ | |
3934 - | |
3935 0: - | |
3936 \= Expect no match | |
3937 a | |
3938 No match | |
3939 | |
3940 /a[\s]b/ | |
3941 a b | |
3942 0: a b | |
3943 | |
3944 /a[\S]b/ | |
3945 a-b | |
3946 0: a-b | |
3947 \= Expect no match | |
3948 a b | |
3949 No match | |
3950 | |
3951 /[\d]/ | |
3952 1 | |
3953 0: 1 | |
3954 | |
3955 /[\D]/ | |
3956 - | |
3957 0: - | |
3958 \= Expect no match | |
3959 1 | |
3960 No match | |
3961 | |
3962 /ab|cd/ | |
3963 abc | |
3964 0: ab | |
3965 abcd | |
3966 0: ab | |
3967 | |
3968 /()ef/ | |
3969 def | |
3970 0: ef | |
3971 1: | |
3972 | |
3973 /$b/ | |
3974 | |
3975 /a\(b/ | |
3976 a(b | |
3977 0: a(b | |
3978 | |
3979 /a\(*b/ | |
3980 ab | |
3981 0: ab | |
3982 a((b | |
3983 0: a((b | |
3984 | |
3985 /a\\b/ | |
3986 a\\b | |
3987 0: a\b | |
3988 | |
3989 /((a))/ | |
3990 abc | |
3991 0: a | |
3992 1: a | |
3993 2: a | |
3994 | |
3995 /(a)b(c)/ | |
3996 abc | |
3997 0: abc | |
3998 1: a | |
3999 2: c | |
4000 | |
4001 /a+b+c/ | |
4002 aabbabc | |
4003 0: abc | |
4004 | |
4005 /a{1,}b{1,}c/ | |
4006 aabbabc | |
4007 0: abc | |
4008 | |
4009 /a.+?c/ | |
4010 abcabc | |
4011 0: abc | |
4012 | |
4013 /(a+|b)*/ | |
4014 ab | |
4015 0: ab | |
4016 1: b | |
4017 | |
4018 /(a+|b){0,}/ | |
4019 ab | |
4020 0: ab | |
4021 1: b | |
4022 | |
4023 /(a+|b)+/ | |
4024 ab | |
4025 0: ab | |
4026 1: b | |
4027 | |
4028 /(a+|b){1,}/ | |
4029 ab | |
4030 0: ab | |
4031 1: b | |
4032 | |
4033 /(a+|b)?/ | |
4034 ab | |
4035 0: a | |
4036 1: a | |
4037 | |
4038 /(a+|b){0,1}/ | |
4039 ab | |
4040 0: a | |
4041 1: a | |
4042 | |
4043 /[^ab]*/ | |
4044 cde | |
4045 0: cde | |
4046 | |
4047 /abc/ | |
4048 \= Expect no match | |
4049 b | |
4050 No match | |
4051 | |
4052 /a*/ | |
4053 \ | |
4054 0: | |
4055 | |
4056 /([abc])*d/ | |
4057 abbbcd | |
4058 0: abbbcd | |
4059 1: c | |
4060 | |
4061 /([abc])*bcd/ | |
4062 abcd | |
4063 0: abcd | |
4064 1: a | |
4065 | |
4066 /a|b|c|d|e/ | |
4067 e | |
4068 0: e | |
4069 | |
4070 /(a|b|c|d|e)f/ | |
4071 ef | |
4072 0: ef | |
4073 1: e | |
4074 | |
4075 /abcd*efg/ | |
4076 abcdefg | |
4077 0: abcdefg | |
4078 | |
4079 /ab*/ | |
4080 xabyabbbz | |
4081 0: ab | |
4082 xayabbbz | |
4083 0: a | |
4084 | |
4085 /(ab|cd)e/ | |
4086 abcde | |
4087 0: cde | |
4088 1: cd | |
4089 | |
4090 /[abhgefdc]ij/ | |
4091 hij | |
4092 0: hij | |
4093 | |
4094 /^(ab|cd)e/ | |
4095 | |
4096 /(abc|)ef/ | |
4097 abcdef | |
4098 0: ef | |
4099 1: | |
4100 | |
4101 /(a|b)c*d/ | |
4102 abcd | |
4103 0: bcd | |
4104 1: b | |
4105 | |
4106 /(ab|ab*)bc/ | |
4107 abc | |
4108 0: abc | |
4109 1: a | |
4110 | |
4111 /a([bc]*)c*/ | |
4112 abc | |
4113 0: abc | |
4114 1: bc | |
4115 | |
4116 /a([bc]*)(c*d)/ | |
4117 abcd | |
4118 0: abcd | |
4119 1: bc | |
4120 2: d | |
4121 | |
4122 /a([bc]+)(c*d)/ | |
4123 abcd | |
4124 0: abcd | |
4125 1: bc | |
4126 2: d | |
4127 | |
4128 /a([bc]*)(c+d)/ | |
4129 abcd | |
4130 0: abcd | |
4131 1: b | |
4132 2: cd | |
4133 | |
4134 /a[bcd]*dcdcde/ | |
4135 adcdcde | |
4136 0: adcdcde | |
4137 | |
4138 /a[bcd]+dcdcde/ | |
4139 \= Expect no match | |
4140 abcde | |
4141 No match | |
4142 adcdcde | |
4143 No match | |
4144 | |
4145 /(ab|a)b*c/ | |
4146 abc | |
4147 0: abc | |
4148 1: ab | |
4149 | |
4150 /((a)(b)c)(d)/ | |
4151 abcd | |
4152 0: abcd | |
4153 1: abc | |
4154 2: a | |
4155 3: b | |
4156 4: d | |
4157 | |
4158 /[a-zA-Z_][a-zA-Z0-9_]*/ | |
4159 alpha | |
4160 0: alpha | |
4161 | |
4162 /^a(bc+|b[eh])g|.h$/ | |
4163 abh | |
4164 0: bh | |
4165 | |
4166 /(bc+d$|ef*g.|h?i(j|k))/ | |
4167 effgz | |
4168 0: effgz | |
4169 1: effgz | |
4170 ij | |
4171 0: ij | |
4172 1: ij | |
4173 2: j | |
4174 reffgz | |
4175 0: effgz | |
4176 1: effgz | |
4177 \= Expect no match | |
4178 effg | |
4179 No match | |
4180 bcdd | |
4181 No match | |
4182 | |
4183 /((((((((((a))))))))))/ | |
4184 a | |
4185 0: a | |
4186 1: a | |
4187 2: a | |
4188 3: a | |
4189 4: a | |
4190 5: a | |
4191 6: a | |
4192 7: a | |
4193 8: a | |
4194 9: a | |
4195 10: a | |
4196 | |
4197 /((((((((((a))))))))))\10/ | |
4198 aa | |
4199 0: aa | |
4200 1: a | |
4201 2: a | |
4202 3: a | |
4203 4: a | |
4204 5: a | |
4205 6: a | |
4206 7: a | |
4207 8: a | |
4208 9: a | |
4209 10: a | |
4210 | |
4211 /(((((((((a)))))))))/ | |
4212 a | |
4213 0: a | |
4214 1: a | |
4215 2: a | |
4216 3: a | |
4217 4: a | |
4218 5: a | |
4219 6: a | |
4220 7: a | |
4221 8: a | |
4222 9: a | |
4223 | |
4224 /multiple words of text/ | |
4225 \= Expect no match | |
4226 aa | |
4227 No match | |
4228 uh-uh | |
4229 No match | |
4230 | |
4231 /multiple words/ | |
4232 multiple words, yeah | |
4233 0: multiple words | |
4234 | |
4235 /(.*)c(.*)/ | |
4236 abcde | |
4237 0: abcde | |
4238 1: ab | |
4239 2: de | |
4240 | |
4241 /\((.*), (.*)\)/ | |
4242 (a, b) | |
4243 0: (a, b) | |
4244 1: a | |
4245 2: b | |
4246 | |
4247 /[k]/ | |
4248 | |
4249 /abcd/ | |
4250 abcd | |
4251 0: abcd | |
4252 | |
4253 /a(bc)d/ | |
4254 abcd | |
4255 0: abcd | |
4256 1: bc | |
4257 | |
4258 /a[-]?c/ | |
4259 ac | |
4260 0: ac | |
4261 | |
4262 /(abc)\1/ | |
4263 abcabc | |
4264 0: abcabc | |
4265 1: abc | |
4266 | |
4267 /([a-c]*)\1/ | |
4268 abcabc | |
4269 0: abcabc | |
4270 1: abc | |
4271 | |
4272 /(a)|\1/ | |
4273 a | |
4274 0: a | |
4275 1: a | |
4276 ab | |
4277 0: a | |
4278 1: a | |
4279 \= Expect no match | |
4280 x | |
4281 No match | |
4282 | |
4283 /(([a-c])b*?\2)*/ | |
4284 ababbbcbc | |
4285 0: ababb | |
4286 1: bb | |
4287 2: b | |
4288 | |
4289 /(([a-c])b*?\2){3}/ | |
4290 ababbbcbc | |
4291 0: ababbbcbc | |
4292 1: cbc | |
4293 2: c | |
4294 | |
4295 /((\3|b)\2(a)x)+/ | |
4296 aaaxabaxbaaxbbax | |
4297 0: bbax | |
4298 1: bbax | |
4299 2: b | |
4300 3: a | |
4301 | |
4302 /((\3|b)\2(a)){2,}/ | |
4303 bbaababbabaaaaabbaaaabba | |
4304 0: bbaaaabba | |
4305 1: bba | |
4306 2: b | |
4307 3: a | |
4308 | |
4309 /abc/i | |
4310 ABC | |
4311 0: ABC | |
4312 XABCY | |
4313 0: ABC | |
4314 ABABC | |
4315 0: ABC | |
4316 \= Expect no match | |
4317 aaxabxbaxbbx | |
4318 No match | |
4319 XBC | |
4320 No match | |
4321 AXC | |
4322 No match | |
4323 ABX | |
4324 No match | |
4325 | |
4326 /ab*c/i | |
4327 ABC | |
4328 0: ABC | |
4329 | |
4330 /ab*bc/i | |
4331 ABC | |
4332 0: ABC | |
4333 ABBC | |
4334 0: ABBC | |
4335 | |
4336 /ab*?bc/i | |
4337 ABBBBC | |
4338 0: ABBBBC | |
4339 | |
4340 /ab{0,}?bc/i | |
4341 ABBBBC | |
4342 0: ABBBBC | |
4343 | |
4344 /ab+?bc/i | |
4345 ABBC | |
4346 0: ABBC | |
4347 | |
4348 /ab+bc/i | |
4349 \= Expect no match | |
4350 ABC | |
4351 No match | |
4352 ABQ | |
4353 No match | |
4354 | |
4355 /ab{1,}bc/i | |
4356 | |
4357 /ab+bc/i | |
4358 ABBBBC | |
4359 0: ABBBBC | |
4360 | |
4361 /ab{1,}?bc/i | |
4362 ABBBBC | |
4363 0: ABBBBC | |
4364 | |
4365 /ab{1,3}?bc/i | |
4366 ABBBBC | |
4367 0: ABBBBC | |
4368 | |
4369 /ab{3,4}?bc/i | |
4370 ABBBBC | |
4371 0: ABBBBC | |
4372 | |
4373 /ab{4,5}?bc/i | |
4374 \= Expect no match | |
4375 ABQ | |
4376 No match | |
4377 ABBBBC | |
4378 No match | |
4379 | |
4380 /ab??bc/i | |
4381 ABBC | |
4382 0: ABBC | |
4383 ABC | |
4384 0: ABC | |
4385 | |
4386 /ab{0,1}?bc/i | |
4387 ABC | |
4388 0: ABC | |
4389 | |
4390 /ab??bc/i | |
4391 | |
4392 /ab??c/i | |
4393 ABC | |
4394 0: ABC | |
4395 | |
4396 /ab{0,1}?c/i | |
4397 ABC | |
4398 0: ABC | |
4399 | |
4400 /^abc$/i | |
4401 ABC | |
4402 0: ABC | |
4403 \= Expect no match | |
4404 ABBBBC | |
4405 No match | |
4406 ABCC | |
4407 No match | |
4408 | |
4409 /^abc/i | |
4410 ABCC | |
4411 0: ABC | |
4412 | |
4413 /^abc$/i | |
4414 | |
4415 /abc$/i | |
4416 AABC | |
4417 0: ABC | |
4418 | |
4419 /^/i | |
4420 ABC | |
4421 0: | |
4422 | |
4423 /$/i | |
4424 ABC | |
4425 0: | |
4426 | |
4427 /a.c/i | |
4428 ABC | |
4429 0: ABC | |
4430 AXC | |
4431 0: AXC | |
4432 | |
4433 /a.*?c/i | |
4434 AXYZC | |
4435 0: AXYZC | |
4436 | |
4437 /a.*c/i | |
4438 AABC | |
4439 0: AABC | |
4440 \= Expect no match | |
4441 AXYZD | |
4442 No match | |
4443 | |
4444 /a[bc]d/i | |
4445 ABD | |
4446 0: ABD | |
4447 | |
4448 /a[b-d]e/i | |
4449 ACE | |
4450 0: ACE | |
4451 \= Expect no match | |
4452 ABC | |
4453 No match | |
4454 ABD | |
4455 No match | |
4456 | |
4457 /a[b-d]/i | |
4458 AAC | |
4459 0: AC | |
4460 | |
4461 /a[-b]/i | |
4462 A- | |
4463 0: A- | |
4464 | |
4465 /a[b-]/i | |
4466 A- | |
4467 0: A- | |
4468 | |
4469 /a]/i | |
4470 A] | |
4471 0: A] | |
4472 | |
4473 /a[]]b/i | |
4474 A]B | |
4475 0: A]B | |
4476 | |
4477 /a[^bc]d/i | |
4478 AED | |
4479 0: AED | |
4480 | |
4481 /a[^-b]c/i | |
4482 ADC | |
4483 0: ADC | |
4484 \= Expect no match | |
4485 ABD | |
4486 No match | |
4487 A-C | |
4488 No match | |
4489 | |
4490 /a[^]b]c/i | |
4491 ADC | |
4492 0: ADC | |
4493 | |
4494 /ab|cd/i | |
4495 ABC | |
4496 0: AB | |
4497 ABCD | |
4498 0: AB | |
4499 | |
4500 /()ef/i | |
4501 DEF | |
4502 0: EF | |
4503 1: | |
4504 | |
4505 /$b/i | |
4506 \= Expect no match | |
4507 A]C | |
4508 No match | |
4509 B | |
4510 No match | |
4511 | |
4512 /a\(b/i | |
4513 A(B | |
4514 0: A(B | |
4515 | |
4516 /a\(*b/i | |
4517 AB | |
4518 0: AB | |
4519 A((B | |
4520 0: A((B | |
4521 | |
4522 /a\\b/i | |
4523 A\\b | |
4524 0: A\b | |
4525 a\\B | |
4526 0: a\B | |
4527 | |
4528 /((a))/i | |
4529 ABC | |
4530 0: A | |
4531 1: A | |
4532 2: A | |
4533 | |
4534 /(a)b(c)/i | |
4535 ABC | |
4536 0: ABC | |
4537 1: A | |
4538 2: C | |
4539 | |
4540 /a+b+c/i | |
4541 AABBABC | |
4542 0: ABC | |
4543 | |
4544 /a{1,}b{1,}c/i | |
4545 AABBABC | |
4546 0: ABC | |
4547 | |
4548 /a.+?c/i | |
4549 ABCABC | |
4550 0: ABC | |
4551 | |
4552 /a.*?c/i | |
4553 ABCABC | |
4554 0: ABC | |
4555 | |
4556 /a.{0,5}?c/i | |
4557 ABCABC | |
4558 0: ABC | |
4559 | |
4560 /(a+|b)*/i | |
4561 AB | |
4562 0: AB | |
4563 1: B | |
4564 | |
4565 /(a+|b){0,}/i | |
4566 AB | |
4567 0: AB | |
4568 1: B | |
4569 | |
4570 /(a+|b)+/i | |
4571 AB | |
4572 0: AB | |
4573 1: B | |
4574 | |
4575 /(a+|b){1,}/i | |
4576 AB | |
4577 0: AB | |
4578 1: B | |
4579 | |
4580 /(a+|b)?/i | |
4581 AB | |
4582 0: A | |
4583 1: A | |
4584 | |
4585 /(a+|b){0,1}/i | |
4586 AB | |
4587 0: A | |
4588 1: A | |
4589 | |
4590 /(a+|b){0,1}?/i | |
4591 AB | |
4592 0: | |
4593 | |
4594 /[^ab]*/i | |
4595 CDE | |
4596 0: CDE | |
4597 | |
4598 /([abc])*d/i | |
4599 ABBBCD | |
4600 0: ABBBCD | |
4601 1: C | |
4602 | |
4603 /([abc])*bcd/i | |
4604 ABCD | |
4605 0: ABCD | |
4606 1: A | |
4607 | |
4608 /a|b|c|d|e/i | |
4609 E | |
4610 0: E | |
4611 | |
4612 /(a|b|c|d|e)f/i | |
4613 EF | |
4614 0: EF | |
4615 1: E | |
4616 | |
4617 /abcd*efg/i | |
4618 ABCDEFG | |
4619 0: ABCDEFG | |
4620 | |
4621 /ab*/i | |
4622 XABYABBBZ | |
4623 0: AB | |
4624 XAYABBBZ | |
4625 0: A | |
4626 | |
4627 /(ab|cd)e/i | |
4628 ABCDE | |
4629 0: CDE | |
4630 1: CD | |
4631 | |
4632 /[abhgefdc]ij/i | |
4633 HIJ | |
4634 0: HIJ | |
4635 | |
4636 /^(ab|cd)e/i | |
4637 \= Expect no match | |
4638 ABCDE | |
4639 No match | |
4640 | |
4641 /(abc|)ef/i | |
4642 ABCDEF | |
4643 0: EF | |
4644 1: | |
4645 | |
4646 /(a|b)c*d/i | |
4647 ABCD | |
4648 0: BCD | |
4649 1: B | |
4650 | |
4651 /(ab|ab*)bc/i | |
4652 ABC | |
4653 0: ABC | |
4654 1: A | |
4655 | |
4656 /a([bc]*)c*/i | |
4657 ABC | |
4658 0: ABC | |
4659 1: BC | |
4660 | |
4661 /a([bc]*)(c*d)/i | |
4662 ABCD | |
4663 0: ABCD | |
4664 1: BC | |
4665 2: D | |
4666 | |
4667 /a([bc]+)(c*d)/i | |
4668 ABCD | |
4669 0: ABCD | |
4670 1: BC | |
4671 2: D | |
4672 | |
4673 /a([bc]*)(c+d)/i | |
4674 ABCD | |
4675 0: ABCD | |
4676 1: B | |
4677 2: CD | |
4678 | |
4679 /a[bcd]*dcdcde/i | |
4680 ADCDCDE | |
4681 0: ADCDCDE | |
4682 | |
4683 /a[bcd]+dcdcde/i | |
4684 | |
4685 /(ab|a)b*c/i | |
4686 ABC | |
4687 0: ABC | |
4688 1: AB | |
4689 | |
4690 /((a)(b)c)(d)/i | |
4691 ABCD | |
4692 0: ABCD | |
4693 1: ABC | |
4694 2: A | |
4695 3: B | |
4696 4: D | |
4697 | |
4698 /[a-zA-Z_][a-zA-Z0-9_]*/i | |
4699 ALPHA | |
4700 0: ALPHA | |
4701 | |
4702 /^a(bc+|b[eh])g|.h$/i | |
4703 ABH | |
4704 0: BH | |
4705 | |
4706 /(bc+d$|ef*g.|h?i(j|k))/i | |
4707 EFFGZ | |
4708 0: EFFGZ | |
4709 1: EFFGZ | |
4710 IJ | |
4711 0: IJ | |
4712 1: IJ | |
4713 2: J | |
4714 REFFGZ | |
4715 0: EFFGZ | |
4716 1: EFFGZ | |
4717 \= Expect no match | |
4718 ADCDCDE | |
4719 No match | |
4720 EFFG | |
4721 No match | |
4722 BCDD | |
4723 No match | |
4724 | |
4725 /((((((((((a))))))))))/i | |
4726 A | |
4727 0: A | |
4728 1: A | |
4729 2: A | |
4730 3: A | |
4731 4: A | |
4732 5: A | |
4733 6: A | |
4734 7: A | |
4735 8: A | |
4736 9: A | |
4737 10: A | |
4738 | |
4739 /((((((((((a))))))))))\10/i | |
4740 AA | |
4741 0: AA | |
4742 1: A | |
4743 2: A | |
4744 3: A | |
4745 4: A | |
4746 5: A | |
4747 6: A | |
4748 7: A | |
4749 8: A | |
4750 9: A | |
4751 10: A | |
4752 | |
4753 /(((((((((a)))))))))/i | |
4754 A | |
4755 0: A | |
4756 1: A | |
4757 2: A | |
4758 3: A | |
4759 4: A | |
4760 5: A | |
4761 6: A | |
4762 7: A | |
4763 8: A | |
4764 9: A | |
4765 | |
4766 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i | |
4767 A | |
4768 0: A | |
4769 1: A | |
4770 | |
4771 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i | |
4772 C | |
4773 0: C | |
4774 1: C | |
4775 | |
4776 /multiple words of text/i | |
4777 \= Expect no match | |
4778 AA | |
4779 No match | |
4780 UH-UH | |
4781 No match | |
4782 | |
4783 /multiple words/i | |
4784 MULTIPLE WORDS, YEAH | |
4785 0: MULTIPLE WORDS | |
4786 | |
4787 /(.*)c(.*)/i | |
4788 ABCDE | |
4789 0: ABCDE | |
4790 1: AB | |
4791 2: DE | |
4792 | |
4793 /\((.*), (.*)\)/i | |
4794 (A, B) | |
4795 0: (A, B) | |
4796 1: A | |
4797 2: B | |
4798 | |
4799 /[k]/i | |
4800 | |
4801 /abcd/i | |
4802 ABCD | |
4803 0: ABCD | |
4804 | |
4805 /a(bc)d/i | |
4806 ABCD | |
4807 0: ABCD | |
4808 1: BC | |
4809 | |
4810 /a[-]?c/i | |
4811 AC | |
4812 0: AC | |
4813 | |
4814 /(abc)\1/i | |
4815 ABCABC | |
4816 0: ABCABC | |
4817 1: ABC | |
4818 | |
4819 /([a-c]*)\1/i | |
4820 ABCABC | |
4821 0: ABCABC | |
4822 1: ABC | |
4823 | |
4824 /a(?!b)./ | |
4825 abad | |
4826 0: ad | |
4827 | |
4828 /a(?=d)./ | |
4829 abad | |
4830 0: ad | |
4831 | |
4832 /a(?=c|d)./ | |
4833 abad | |
4834 0: ad | |
4835 | |
4836 /a(?:b|c|d)(.)/ | |
4837 ace | |
4838 0: ace | |
4839 1: e | |
4840 | |
4841 /a(?:b|c|d)*(.)/ | |
4842 ace | |
4843 0: ace | |
4844 1: e | |
4845 | |
4846 /a(?:b|c|d)+?(.)/ | |
4847 ace | |
4848 0: ace | |
4849 1: e | |
4850 acdbcdbe | |
4851 0: acd | |
4852 1: d | |
4853 | |
4854 /a(?:b|c|d)+(.)/ | |
4855 acdbcdbe | |
4856 0: acdbcdbe | |
4857 1: e | |
4858 | |
4859 /a(?:b|c|d){2}(.)/ | |
4860 acdbcdbe | |
4861 0: acdb | |
4862 1: b | |
4863 | |
4864 /a(?:b|c|d){4,5}(.)/ | |
4865 acdbcdbe | |
4866 0: acdbcdb | |
4867 1: b | |
4868 | |
4869 /a(?:b|c|d){4,5}?(.)/ | |
4870 acdbcdbe | |
4871 0: acdbcd | |
4872 1: d | |
4873 | |
4874 /((foo)|(bar))*/ | |
4875 foobar | |
4876 0: foobar | |
4877 1: bar | |
4878 2: foo | |
4879 3: bar | |
4880 | |
4881 /a(?:b|c|d){6,7}(.)/ | |
4882 acdbcdbe | |
4883 0: acdbcdbe | |
4884 1: e | |
4885 | |
4886 /a(?:b|c|d){6,7}?(.)/ | |
4887 acdbcdbe | |
4888 0: acdbcdbe | |
4889 1: e | |
4890 | |
4891 /a(?:b|c|d){5,6}(.)/ | |
4892 acdbcdbe | |
4893 0: acdbcdbe | |
4894 1: e | |
4895 | |
4896 /a(?:b|c|d){5,6}?(.)/ | |
4897 acdbcdbe | |
4898 0: acdbcdb | |
4899 1: b | |
4900 | |
4901 /a(?:b|c|d){5,7}(.)/ | |
4902 acdbcdbe | |
4903 0: acdbcdbe | |
4904 1: e | |
4905 | |
4906 /a(?:b|c|d){5,7}?(.)/ | |
4907 acdbcdbe | |
4908 0: acdbcdb | |
4909 1: b | |
4910 | |
4911 /a(?:b|(c|e){1,2}?|d)+?(.)/ | |
4912 ace | |
4913 0: ace | |
4914 1: c | |
4915 2: e | |
4916 | |
4917 /^(.+)?B/ | |
4918 AB | |
4919 0: AB | |
4920 1: A | |
4921 | |
4922 /^([^a-z])|(\^)$/ | |
4923 . | |
4924 0: . | |
4925 1: . | |
4926 | |
4927 /^[<>]&/ | |
4928 <&OUT | |
4929 0: <& | |
4930 | |
4931 /^(a\1?){4}$/ | |
4932 aaaaaaaaaa | |
4933 0: aaaaaaaaaa | |
4934 1: aaaa | |
4935 \= Expect no match | |
4936 AB | |
4937 No match | |
4938 aaaaaaaaa | |
4939 No match | |
4940 aaaaaaaaaaa | |
4941 No match | |
4942 | |
4943 /^(a(?(1)\1)){4}$/ | |
4944 aaaaaaaaaa | |
4945 0: aaaaaaaaaa | |
4946 1: aaaa | |
4947 \= Expect no match | |
4948 aaaaaaaaa | |
4949 No match | |
4950 aaaaaaaaaaa | |
4951 No match | |
4952 | |
4953 /(?:(f)(o)(o)|(b)(a)(r))*/ | |
4954 foobar | |
4955 0: foobar | |
4956 1: f | |
4957 2: o | |
4958 3: o | |
4959 4: b | |
4960 5: a | |
4961 6: r | |
4962 | |
4963 /(?<=a)b/ | |
4964 ab | |
4965 0: b | |
4966 \= Expect no match | |
4967 cb | |
4968 No match | |
4969 b | |
4970 No match | |
4971 | |
4972 /(?<!c)b/ | |
4973 ab | |
4974 0: b | |
4975 b | |
4976 0: b | |
4977 b | |
4978 0: b | |
4979 | |
4980 /(?:..)*a/ | |
4981 aba | |
4982 0: aba | |
4983 | |
4984 /(?:..)*?a/ | |
4985 aba | |
4986 0: a | |
4987 | |
4988 /^(?:b|a(?=(.)))*\1/ | |
4989 abc | |
4990 0: ab | |
4991 1: b | |
4992 | |
4993 /^(){3,5}/ | |
4994 abc | |
4995 0: | |
4996 1: | |
4997 | |
4998 /^(a+)*ax/ | |
4999 aax | |
5000 0: aax | |
5001 1: a | |
5002 | |
5003 /^((a|b)+)*ax/ | |
5004 aax | |
5005 0: aax | |
5006 1: a | |
5007 2: a | |
5008 | |
5009 /^((a|bc)+)*ax/ | |
5010 aax | |
5011 0: aax | |
5012 1: a | |
5013 2: a | |
5014 | |
5015 /(a|x)*ab/ | |
5016 cab | |
5017 0: ab | |
5018 | |
5019 /(a)*ab/ | |
5020 cab | |
5021 0: ab | |
5022 | |
5023 /(?:(?i)a)b/ | |
5024 ab | |
5025 0: ab | |
5026 | |
5027 /((?i)a)b/ | |
5028 ab | |
5029 0: ab | |
5030 1: a | |
5031 | |
5032 /(?:(?i)a)b/ | |
5033 Ab | |
5034 0: Ab | |
5035 | |
5036 /((?i)a)b/ | |
5037 Ab | |
5038 0: Ab | |
5039 1: A | |
5040 | |
5041 /(?:(?i)a)b/ | |
5042 \= Expect no match | |
5043 cb | |
5044 No match | |
5045 aB | |
5046 No match | |
5047 | |
5048 /((?i)a)b/ | |
5049 | |
5050 /(?i:a)b/ | |
5051 ab | |
5052 0: ab | |
5053 | |
5054 /((?i:a))b/ | |
5055 ab | |
5056 0: ab | |
5057 1: a | |
5058 | |
5059 /(?i:a)b/ | |
5060 Ab | |
5061 0: Ab | |
5062 | |
5063 /((?i:a))b/ | |
5064 Ab | |
5065 0: Ab | |
5066 1: A | |
5067 | |
5068 /(?i:a)b/ | |
5069 \= Expect no match | |
5070 aB | |
5071 No match | |
5072 aB | |
5073 No match | |
5074 | |
5075 /((?i:a))b/ | |
5076 | |
5077 /(?:(?-i)a)b/i | |
5078 ab | |
5079 0: ab | |
5080 | |
5081 /((?-i)a)b/i | |
5082 ab | |
5083 0: ab | |
5084 1: a | |
5085 | |
5086 /(?:(?-i)a)b/i | |
5087 aB | |
5088 0: aB | |
5089 | |
5090 /((?-i)a)b/i | |
5091 aB | |
5092 0: aB | |
5093 1: a | |
5094 | |
5095 /(?:(?-i)a)b/i | |
5096 aB | |
5097 0: aB | |
5098 \= Expect no match | |
5099 Ab | |
5100 No match | |
5101 AB | |
5102 No match | |
5103 | |
5104 /(?-i:a)b/i | |
5105 ab | |
5106 0: ab | |
5107 | |
5108 /((?-i:a))b/i | |
5109 ab | |
5110 0: ab | |
5111 1: a | |
5112 | |
5113 /(?-i:a)b/i | |
5114 aB | |
5115 0: aB | |
5116 | |
5117 /((?-i:a))b/i | |
5118 aB | |
5119 0: aB | |
5120 1: a | |
5121 | |
5122 /(?-i:a)b/i | |
5123 \= Expect no match | |
5124 AB | |
5125 No match | |
5126 Ab | |
5127 No match | |
5128 | |
5129 /((?-i:a))b/i | |
5130 | |
5131 /(?-i:a)b/i | |
5132 aB | |
5133 0: aB | |
5134 | |
5135 /((?-i:a))b/i | |
5136 aB | |
5137 0: aB | |
5138 1: a | |
5139 | |
5140 /(?-i:a)b/i | |
5141 \= Expect no match | |
5142 Ab | |
5143 No match | |
5144 AB | |
5145 No match | |
5146 | |
5147 /((?-i:a))b/i | |
5148 | |
5149 /((?-i:a.))b/i | |
5150 \= Expect no match | |
5151 AB | |
5152 No match | |
5153 a\nB | |
5154 No match | |
5155 | |
5156 /((?s-i:a.))b/i | |
5157 a\nB | |
5158 0: a\x0aB | |
5159 1: a\x0a | |
5160 | |
5161 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/ | |
5162 cabbbb | |
5163 0: cabbbb | |
5164 | |
5165 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/ | |
5166 caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb | |
5167 0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb | |
5168 | |
5169 /(ab)\d\1/i | |
5170 Ab4ab | |
5171 0: Ab4ab | |
5172 1: Ab | |
5173 ab4Ab | |
5174 0: ab4Ab | |
5175 1: ab | |
5176 | |
5177 /foo\w*\d{4}baz/ | |
5178 foobar1234baz | |
5179 0: foobar1234baz | |
5180 | |
5181 /x(~~)*(?:(?:F)?)?/ | |
5182 x~~ | |
5183 0: x~~ | |
5184 1: ~~ | |
5185 | |
5186 /^a(?#xxx){3}c/ | |
5187 aaac | |
5188 0: aaac | |
5189 | |
5190 /^a (?#xxx) (?#yyy) {3}c/x | |
5191 aaac | |
5192 0: aaac | |
5193 | |
5194 /(?<![cd])b/ | |
5195 \= Expect no match | |
5196 B\nB | |
5197 No match | |
5198 dbcb | |
5199 No match | |
5200 | |
5201 /(?<![cd])[ab]/ | |
5202 dbaacb | |
5203 0: a | |
5204 | |
5205 /(?<!(c|d))b/ | |
5206 | |
5207 /(?<!(c|d))[ab]/ | |
5208 dbaacb | |
5209 0: a | |
5210 | |
5211 /(?<!cd)[ab]/ | |
5212 cdaccb | |
5213 0: b | |
5214 | |
5215 /^(?:a?b?)*$/ | |
5216 \ | |
5217 0: | |
5218 a | |
5219 0: a | |
5220 ab | |
5221 0: ab | |
5222 aaa | |
5223 0: aaa | |
5224 \= Expect no match | |
5225 dbcb | |
5226 No match | |
5227 a-- | |
5228 No match | |
5229 aa-- | |
5230 No match | |
5231 | |
5232 /((?s)^a(.))((?m)^b$)/ | |
5233 a\nb\nc\n | |
5234 0: a\x0ab | |
5235 1: a\x0a | |
5236 2: \x0a | |
5237 3: b | |
5238 | |
5239 /((?m)^b$)/ | |
5240 a\nb\nc\n | |
5241 0: b | |
5242 1: b | |
5243 | |
5244 /(?m)^b/ | |
5245 a\nb\n | |
5246 0: b | |
5247 | |
5248 /(?m)^(b)/ | |
5249 a\nb\n | |
5250 0: b | |
5251 1: b | |
5252 | |
5253 /((?m)^b)/ | |
5254 a\nb\n | |
5255 0: b | |
5256 1: b | |
5257 | |
5258 /\n((?m)^b)/ | |
5259 a\nb\n | |
5260 0: \x0ab | |
5261 1: b | |
5262 | |
5263 /((?s).)c(?!.)/ | |
5264 a\nb\nc\n | |
5265 0: \x0ac | |
5266 1: \x0a | |
5267 a\nb\nc\n | |
5268 0: \x0ac | |
5269 1: \x0a | |
5270 | |
5271 /((?s)b.)c(?!.)/ | |
5272 a\nb\nc\n | |
5273 0: b\x0ac | |
5274 1: b\x0a | |
5275 a\nb\nc\n | |
5276 0: b\x0ac | |
5277 1: b\x0a | |
5278 | |
5279 /^b/ | |
5280 | |
5281 /()^b/ | |
5282 \= Expect no match | |
5283 a\nb\nc\n | |
5284 No match | |
5285 a\nb\nc\n | |
5286 No match | |
5287 | |
5288 /((?m)^b)/ | |
5289 a\nb\nc\n | |
5290 0: b | |
5291 1: b | |
5292 | |
5293 /(x)?(?(1)a|b)/ | |
5294 \= Expect no match | |
5295 a | |
5296 No match | |
5297 a | |
5298 No match | |
5299 | |
5300 /(x)?(?(1)b|a)/ | |
5301 a | |
5302 0: a | |
5303 | |
5304 /()?(?(1)b|a)/ | |
5305 a | |
5306 0: a | |
5307 | |
5308 /()(?(1)b|a)/ | |
5309 | |
5310 /()?(?(1)a|b)/ | |
5311 a | |
5312 0: a | |
5313 1: | |
5314 | |
5315 /^(\()?blah(?(1)(\)))$/ | |
5316 (blah) | |
5317 0: (blah) | |
5318 1: ( | |
5319 2: ) | |
5320 blah | |
5321 0: blah | |
5322 \= Expect no match | |
5323 a | |
5324 No match | |
5325 blah) | |
5326 No match | |
5327 (blah | |
5328 No match | |
5329 | |
5330 /^(\(+)?blah(?(1)(\)))$/ | |
5331 (blah) | |
5332 0: (blah) | |
5333 1: ( | |
5334 2: ) | |
5335 blah | |
5336 0: blah | |
5337 \= Expect no match | |
5338 blah) | |
5339 No match | |
5340 (blah | |
5341 No match | |
5342 | |
5343 /(?(?!a)a|b)/ | |
5344 | |
5345 /(?(?!a)b|a)/ | |
5346 a | |
5347 0: a | |
5348 | |
5349 /(?(?=a)b|a)/ | |
5350 \= Expect no match | |
5351 a | |
5352 No match | |
5353 a | |
5354 No match | |
5355 | |
5356 /(?(?=a)a|b)/ | |
5357 a | |
5358 0: a | |
5359 | |
5360 /(?=(a+?))(\1ab)/ | |
5361 aaab | |
5362 0: aab | |
5363 1: a | |
5364 2: aab | |
5365 | |
5366 /^(?=(a+?))\1ab/ | |
5367 | |
5368 /(\w+:)+/ | |
5369 one: | |
5370 0: one: | |
5371 1: one: | |
5372 | |
5373 /$(?<=^(a))/ | |
5374 a | |
5375 0: | |
5376 1: a | |
5377 | |
5378 /(?=(a+?))(\1ab)/ | |
5379 aaab | |
5380 0: aab | |
5381 1: a | |
5382 2: aab | |
5383 | |
5384 /^(?=(a+?))\1ab/ | |
5385 \= Expect no match | |
5386 aaab | |
5387 No match | |
5388 aaab | |
5389 No match | |
5390 | |
5391 /([\w:]+::)?(\w+)$/ | |
5392 abcd | |
5393 0: abcd | |
5394 1: <unset> | |
5395 2: abcd | |
5396 xy:z:::abcd | |
5397 0: xy:z:::abcd | |
5398 1: xy:z::: | |
5399 2: abcd | |
5400 | |
5401 /^[^bcd]*(c+)/ | |
5402 aexycd | |
5403 0: aexyc | |
5404 1: c | |
5405 | |
5406 /(a*)b+/ | |
5407 caab | |
5408 0: aab | |
5409 1: aa | |
5410 | |
5411 /([\w:]+::)?(\w+)$/ | |
5412 abcd | |
5413 0: abcd | |
5414 1: <unset> | |
5415 2: abcd | |
5416 xy:z:::abcd | |
5417 0: xy:z:::abcd | |
5418 1: xy:z::: | |
5419 2: abcd | |
5420 \= Expect no match | |
5421 abcd: | |
5422 No match | |
5423 abcd: | |
5424 No match | |
5425 | |
5426 /^[^bcd]*(c+)/ | |
5427 aexycd | |
5428 0: aexyc | |
5429 1: c | |
5430 | |
5431 /(>a+)ab/ | |
5432 | |
5433 /(?>a+)b/ | |
5434 aaab | |
5435 0: aaab | |
5436 | |
5437 /([[:]+)/ | |
5438 a:[b]: | |
5439 0: :[ | |
5440 1: :[ | |
5441 | |
5442 /([[=]+)/ | |
5443 a=[b]= | |
5444 0: =[ | |
5445 1: =[ | |
5446 | |
5447 /([[.]+)/ | |
5448 a.[b]. | |
5449 0: .[ | |
5450 1: .[ | |
5451 | |
5452 /((?>a+)b)/ | |
5453 aaab | |
5454 0: aaab | |
5455 1: aaab | |
5456 | |
5457 /(?>(a+))b/ | |
5458 aaab | |
5459 0: aaab | |
5460 1: aaa | |
5461 | |
5462 /((?>[^()]+)|\([^()]*\))+/ | |
5463 ((abc(ade)ufh()()x | |
5464 0: abc(ade)ufh()()x | |
5465 1: x | |
5466 | |
5467 /a\Z/ | |
5468 \= Expect no match | |
5469 aaab | |
5470 No match | |
5471 a\nb\n | |
5472 No match | |
5473 | |
5474 /b\Z/ | |
5475 a\nb\n | |
5476 0: b | |
5477 | |
5478 /b\z/ | |
5479 | |
5480 /b\Z/ | |
5481 a\nb | |
5482 0: b | |
5483 | |
5484 /b\z/ | |
5485 a\nb | |
5486 0: b | |
5487 | |
5488 /^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/ | |
5489 a | |
5490 0: a | |
5491 1: | |
5492 abc | |
5493 0: abc | |
5494 1: | |
5495 a-b | |
5496 0: a-b | |
5497 1: | |
5498 0-9 | |
5499 0: 0-9 | |
5500 1: | |
5501 a.b | |
5502 0: a.b | |
5503 1: | |
5504 5.6.7 | |
5505 0: 5.6.7 | |
5506 1: | |
5507 the.quick.brown.fox | |
5508 0: the.quick.brown.fox | |
5509 1: | |
5510 a100.b200.300c | |
5511 0: a100.b200.300c | |
5512 1: | |
5513 12-ab.1245 | |
5514 0: 12-ab.1245 | |
5515 1: | |
5516 \= Expect no match | |
5517 \ | |
5518 No match | |
5519 .a | |
5520 No match | |
5521 -a | |
5522 No match | |
5523 a- | |
5524 No match | |
5525 a. | |
5526 No match | |
5527 a_b | |
5528 No match | |
5529 a.- | |
5530 No match | |
5531 a.. | |
5532 No match | |
5533 ab..bc | |
5534 No match | |
5535 the.quick.brown.fox- | |
5536 No match | |
5537 the.quick.brown.fox. | |
5538 No match | |
5539 the.quick.brown.fox_ | |
5540 No match | |
5541 the.quick.brown.fox+ | |
5542 No match | |
5543 | |
5544 /(?>.*)(?<=(abcd|wxyz))/ | |
5545 alphabetabcd | |
5546 0: alphabetabcd | |
5547 1: abcd | |
5548 endingwxyz | |
5549 0: endingwxyz | |
5550 1: wxyz | |
5551 \= Expect no match | |
5552 a rather long string that doesn't end with one of them | |
5553 No match | |
5554 | |
5555 /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/ | |
5556 word cat dog elephant mussel cow horse canary baboon snake shark otherword | |
5557 0: word cat dog elephant mussel cow horse canary baboon snake shark otherword | |
5558 \= Expect no match | |
5559 word cat dog elephant mussel cow horse canary baboon snake shark | |
5560 No match | |
5561 | |
5562 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/ | |
5563 \= Expect no match | |
5564 word cat dog elephant mussel cow horse canary baboon snake shark the quick brown fox and the lazy dog and several other words getting close to thirty by now I hope | |
5565 No match | |
5566 | |
5567 /(?<=\d{3}(?!999))foo/ | |
5568 999foo | |
5569 0: foo | |
5570 123999foo | |
5571 0: foo | |
5572 \= Expect no match | |
5573 123abcfoo | |
5574 No match | |
5575 | |
5576 /(?<=(?!...999)\d{3})foo/ | |
5577 999foo | |
5578 0: foo | |
5579 123999foo | |
5580 0: foo | |
5581 \= Expect no match | |
5582 123abcfoo | |
5583 No match | |
5584 | |
5585 /(?<=\d{3}(?!999)...)foo/ | |
5586 123abcfoo | |
5587 0: foo | |
5588 123456foo | |
5589 0: foo | |
5590 \= Expect no match | |
5591 123999foo | |
5592 No match | |
5593 | |
5594 /(?<=\d{3}...)(?<!999)foo/ | |
5595 123abcfoo | |
5596 0: foo | |
5597 123456foo | |
5598 0: foo | |
5599 \= Expect no match | |
5600 123999foo | |
5601 No match | |
5602 | |
5603 /<a[\s]+href[\s]*=[\s]* # find <a href= | |
5604 ([\"\'])? # find single or double quote | |
5605 (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching | |
5606 # quote, otherwise match up to next space | |
5607 /isx | |
5608 <a href=abcd xyz | |
5609 0: <a href=abcd | |
5610 1: <unset> | |
5611 2: <unset> | |
5612 3: abcd | |
5613 <a href=\"abcd xyz pqr\" cats | |
5614 0: <a href="abcd xyz pqr" | |
5615 1: " | |
5616 2: abcd xyz pqr | |
5617 <a href=\'abcd xyz pqr\' cats | |
5618 0: <a href='abcd xyz pqr' | |
5619 1: ' | |
5620 2: abcd xyz pqr | |
5621 | |
5622 /<a\s+href\s*=\s* # find <a href= | |
5623 (["'])? # find single or double quote | |
5624 (?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching | |
5625 # quote, otherwise match up to next space | |
5626 /isx | |
5627 <a href=abcd xyz | |
5628 0: <a href=abcd | |
5629 1: <unset> | |
5630 2: <unset> | |
5631 3: abcd | |
5632 <a href=\"abcd xyz pqr\" cats | |
5633 0: <a href="abcd xyz pqr" | |
5634 1: " | |
5635 2: abcd xyz pqr | |
5636 <a href = \'abcd xyz pqr\' cats | |
5637 0: <a href = 'abcd xyz pqr' | |
5638 1: ' | |
5639 2: abcd xyz pqr | |
5640 | |
5641 /<a\s+href(?>\s*)=(?>\s*) # find <a href= | |
5642 (["'])? # find single or double quote | |
5643 (?(1) (.*?)\1 | (\S+)) # if quote found, match up to next matching | |
5644 # quote, otherwise match up to next space | |
5645 /isx | |
5646 <a href=abcd xyz | |
5647 0: <a href=abcd | |
5648 1: <unset> | |
5649 2: <unset> | |
5650 3: abcd | |
5651 <a href=\"abcd xyz pqr\" cats | |
5652 0: <a href="abcd xyz pqr" | |
5653 1: " | |
5654 2: abcd xyz pqr | |
5655 <a href = \'abcd xyz pqr\' cats | |
5656 0: <a href = 'abcd xyz pqr' | |
5657 1: ' | |
5658 2: abcd xyz pqr | |
5659 | |
5660 /((Z)+|A)*/ | |
5661 ZABCDEFG | |
5662 0: ZA | |
5663 1: A | |
5664 2: Z | |
5665 | |
5666 /(Z()|A)*/ | |
5667 ZABCDEFG | |
5668 0: ZA | |
5669 1: A | |
5670 2: | |
5671 | |
5672 /(Z(())|A)*/ | |
5673 ZABCDEFG | |
5674 0: ZA | |
5675 1: A | |
5676 2: | |
5677 3: | |
5678 | |
5679 /((?>Z)+|A)*/ | |
5680 ZABCDEFG | |
5681 0: ZA | |
5682 1: A | |
5683 | |
5684 /((?>)+|A)*/ | |
5685 ZABCDEFG | |
5686 0: | |
5687 1: | |
5688 | |
5689 /^[\d-a]/ | |
5690 abcde | |
5691 0: a | |
5692 -things | |
5693 0: - | |
5694 0digit | |
5695 0: 0 | |
5696 \= Expect no match | |
5697 bcdef | |
5698 No match | |
5699 | |
5700 /[\s]+/ | |
5701 > \x09\x0a\x0c\x0d\x0b< | |
5702 0: \x09\x0a\x0c\x0d\x0b | |
5703 | |
5704 /\s+/ | |
5705 > \x09\x0a\x0c\x0d\x0b< | |
5706 0: \x09\x0a\x0c\x0d\x0b | |
5707 | |
5708 /ab/x | |
5709 ab | |
5710 0: ab | |
5711 | |
5712 /(?!\A)x/m | |
5713 a\nxb\n | |
5714 0: x | |
5715 | |
5716 /(?!^)x/m | |
5717 \= Expect no match | |
5718 a\nxb\n | |
5719 No match | |
5720 | |
5721 #/abc\Qabc\Eabc/ | |
5722 # abcabcabc | |
5723 # 0: abcabcabc | |
5724 | |
5725 #/abc\Q(*+|\Eabc/ | |
5726 # abc(*+|abc | |
5727 # 0: abc(*+|abc | |
5728 | |
5729 #/ abc\Q abc\Eabc/x | |
5730 # abc abcabc | |
5731 # 0: abc abcabc | |
5732 #\= Expect no match | |
5733 # abcabcabc | |
5734 #No match | |
5735 | |
5736 #/abc#comment | |
5737 # \Q#not comment | |
5738 # literal\E/x | |
5739 # abc#not comment\n literal | |
5740 # 0: abc#not comment\x0a literal | |
5741 | |
5742 #/abc#comment | |
5743 # \Q#not comment | |
5744 # literal/x | |
5745 # abc#not comment\n literal | |
5746 # 0: abc#not comment\x0a literal | |
5747 | |
5748 #/abc#comment | |
5749 # \Q#not comment | |
5750 # literal\E #more comment | |
5751 # /x | |
5752 # abc#not comment\n literal | |
5753 # 0: abc#not comment\x0a literal | |
5754 | |
5755 #/abc#comment | |
5756 # \Q#not comment | |
5757 # literal\E #more comment/x | |
5758 # abc#not comment\n literal | |
5759 # 0: abc#not comment\x0a literal | |
5760 | |
5761 #/\Qabc\$xyz\E/ | |
5762 # abc\\\$xyz | |
5763 # 0: abc\$xyz | |
5764 | |
5765 #/\Qabc\E\$\Qxyz\E/ | |
5766 # abc\$xyz | |
5767 # 0: abc$xyz | |
5768 | |
5769 /\Gabc/ | |
5770 abc | |
5771 0: abc | |
5772 \= Expect no match | |
5773 xyzabc | |
5774 No match | |
5775 | |
5776 /a(?x: b c )d/ | |
5777 XabcdY | |
5778 0: abcd | |
5779 \= Expect no match | |
5780 Xa b c d Y | |
5781 No match | |
5782 | |
5783 /((?x)x y z | a b c)/ | |
5784 XabcY | |
5785 0: abc | |
5786 1: abc | |
5787 AxyzB | |
5788 0: xyz | |
5789 1: xyz | |
5790 | |
5791 /(?i)AB(?-i)C/ | |
5792 XabCY | |
5793 0: abC | |
5794 \= Expect no match | |
5795 XabcY | |
5796 No match | |
5797 | |
5798 /((?i)AB(?-i)C|D)E/ | |
5799 abCE | |
5800 0: abCE | |
5801 1: abC | |
5802 DE | |
5803 0: DE | |
5804 1: D | |
5805 \= Expect no match | |
5806 abcE | |
5807 No match | |
5808 abCe | |
5809 No match | |
5810 dE | |
5811 No match | |
5812 De | |
5813 No match | |
5814 | |
5815 /(.*)\d+\1/ | |
5816 abc123abc | |
5817 0: abc123abc | |
5818 1: abc | |
5819 abc123bc | |
5820 0: bc123bc | |
5821 1: bc | |
5822 | |
5823 /(.*)\d+\1/s | |
5824 abc123abc | |
5825 0: abc123abc | |
5826 1: abc | |
5827 abc123bc | |
5828 0: bc123bc | |
5829 1: bc | |
5830 | |
5831 /((.*))\d+\1/ | |
5832 abc123abc | |
5833 0: abc123abc | |
5834 1: abc | |
5835 2: abc | |
5836 abc123bc | |
5837 0: bc123bc | |
5838 1: bc | |
5839 2: bc | |
5840 | |
5841 # This tests for an IPv6 address in the form where it can have up to | |
5842 # eight components, one and only one of which is empty. This must be | |
5843 # an internal component. | |
5844 | |
5845 /^(?!:) # colon disallowed at start | |
5846 (?: # start of item | |
5847 (?: [0-9a-f]{1,4} | # 1-4 hex digits or | |
5848 (?(1)0 | () ) ) # if null previously matched, fail; else null | |
5849 : # followed by colon | |
5850 ){1,7} # end item; 1-7 of them required | |
5851 [0-9a-f]{1,4} $ # final hex number at end of string | |
5852 (?(1)|.) # check that there was an empty component | |
5853 /ix | |
5854 a123::a123 | |
5855 0: a123::a123 | |
5856 1: | |
5857 a123:b342::abcd | |
5858 0: a123:b342::abcd | |
5859 1: | |
5860 a123:b342::324e:abcd | |
5861 0: a123:b342::324e:abcd | |
5862 1: | |
5863 a123:ddde:b342::324e:abcd | |
5864 0: a123:ddde:b342::324e:abcd | |
5865 1: | |
5866 a123:ddde:b342::324e:dcba:abcd | |
5867 0: a123:ddde:b342::324e:dcba:abcd | |
5868 1: | |
5869 a123:ddde:9999:b342::324e:dcba:abcd | |
5870 0: a123:ddde:9999:b342::324e:dcba:abcd | |
5871 1: | |
5872 \= Expect no match | |
5873 1:2:3:4:5:6:7:8 | |
5874 No match | |
5875 a123:bce:ddde:9999:b342::324e:dcba:abcd | |
5876 No match | |
5877 a123::9999:b342::324e:dcba:abcd | |
5878 No match | |
5879 abcde:2:3:4:5:6:7:8 | |
5880 No match | |
5881 ::1 | |
5882 No match | |
5883 abcd:fee0:123:: | |
5884 No match | |
5885 :1 | |
5886 No match | |
5887 1: | |
5888 No match | |
5889 | |
5890 #/[z\Qa-d]\E]/ | |
5891 # z | |
5892 # 0: z | |
5893 # a | |
5894 # 0: a | |
5895 # - | |
5896 # 0: - | |
5897 # d | |
5898 # 0: d | |
5899 # ] | |
5900 # 0: ] | |
5901 #\= Expect no match | |
5902 # b | |
5903 #No match | |
5904 | |
5905 #TODO: PCRE has an optimization to make this workable, .NET does not | |
5906 #/(a+)*b/ | |
5907 #\= Expect no match | |
5908 # aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | |
5909 #No match | |
5910 | |
5911 # All these had to be updated because we understand unicode | |
5912 # and this looks like it's expecting single byte matches | |
5913 | |
5914 # .NET generates \xe4...not sure what's up, might just be different code pages | |
5915 /(?i)reg(?:ul(?:[aä]|ae)r|ex)/ | |
5916 REGular | |
5917 0: REGular | |
5918 regulaer | |
5919 0: regulaer | |
5920 Regex | |
5921 0: Regex | |
5922 regulär | |
5923 0: regul\xc3\xa4r | |
5924 | |
5925 #/Åæåä[à-ÿÀ-ß]+/ | |
5926 # Åæåäà | |
5927 # 0: \xc5\xe6\xe5\xe4\xe0 | |
5928 # Åæåäÿ | |
5929 # 0: \xc5\xe6\xe5\xe4\xff | |
5930 # ÅæåäÀ | |
5931 # 0: \xc5\xe6\xe5\xe4\xc0 | |
5932 # Åæåäß | |
5933 # 0: \xc5\xe6\xe5\xe4\xdf | |
5934 | |
5935 /(?<=Z)X./ | |
5936 \x84XAZXB | |
5937 0: XB | |
5938 | |
5939 /ab cd (?x) de fg/ | |
5940 ab cd defg | |
5941 0: ab cd defg | |
5942 | |
5943 /ab cd(?x) de fg/ | |
5944 ab cddefg | |
5945 0: ab cddefg | |
5946 \= Expect no match | |
5947 abcddefg | |
5948 No match | |
5949 | |
5950 /(?<![^f]oo)(bar)/ | |
5951 foobarX | |
5952 0: bar | |
5953 1: bar | |
5954 \= Expect no match | |
5955 boobarX | |
5956 No match | |
5957 | |
5958 /(?<![^f])X/ | |
5959 offX | |
5960 0: X | |
5961 \= Expect no match | |
5962 onyX | |
5963 No match | |
5964 | |
5965 /(?<=[^f])X/ | |
5966 onyX | |
5967 0: X | |
5968 \= Expect no match | |
5969 offX | |
5970 No match | |
5971 | |
5972 /(?:(?(1)a|b)(X))+/ | |
5973 bXaX | |
5974 0: bXaX | |
5975 1: X | |
5976 | |
5977 /(?:(?(1)\1a|b)(X|Y))+/ | |
5978 bXXaYYaY | |
5979 0: bXXaYYaY | |
5980 1: Y | |
5981 bXYaXXaX | |
5982 0: bX | |
5983 1: X | |
5984 | |
5985 # TODO: I think this is a difference caused by the | |
5986 # collision of group numbers, but not sure | |
5987 #/()()()()()()()()()(?:(?(10)\10a|b)(X|Y))+/ | |
5988 # bXXaYYaY | |
5989 # 0: bX | |
5990 # 1: | |
5991 # 2: | |
5992 # 3: | |
5993 # 4: | |
5994 # 5: | |
5995 # 6: | |
5996 # 7: | |
5997 # 8: | |
5998 # 9: | |
5999 #10: X | |
6000 | |
6001 /[[,abc,]+]/ | |
6002 abc] | |
6003 0: abc] | |
6004 a,b] | |
6005 0: a,b] | |
6006 [a,b,c] | |
6007 0: [a,b,c] | |
6008 | |
6009 /(?-x: )/x | |
6010 A\x20B | |
6011 0: | |
6012 | |
6013 "(?x)(?-x: \s*#\s*)" | |
6014 A # B | |
6015 0: # | |
6016 \= Expect no match | |
6017 # | |
6018 No match | |
6019 | |
6020 "(?x-is)(?:(?-ixs) \s*#\s*) include" | |
6021 A #include | |
6022 0: #include | |
6023 \= Expect no match | |
6024 A#include | |
6025 No match | |
6026 A #Include | |
6027 No match | |
6028 | |
6029 /a*b*\w/ | |
6030 aaabbbb | |
6031 0: aaabbbb | |
6032 aaaa | |
6033 0: aaaa | |
6034 a | |
6035 0: a | |
6036 | |
6037 /a*b?\w/ | |
6038 aaabbbb | |
6039 0: aaabb | |
6040 aaaa | |
6041 0: aaaa | |
6042 a | |
6043 0: a | |
6044 | |
6045 /a*b{0,4}\w/ | |
6046 aaabbbb | |
6047 0: aaabbbb | |
6048 aaaa | |
6049 0: aaaa | |
6050 a | |
6051 0: a | |
6052 | |
6053 /a*b{0,}\w/ | |
6054 aaabbbb | |
6055 0: aaabbbb | |
6056 aaaa | |
6057 0: aaaa | |
6058 a | |
6059 0: a | |
6060 | |
6061 /a*\d*\w/ | |
6062 0a | |
6063 0: 0a | |
6064 a | |
6065 0: a | |
6066 | |
6067 /a*b *\w/x | |
6068 a | |
6069 0: a | |
6070 | |
6071 /a*b#comment | |
6072 *\w/x | |
6073 a | |
6074 0: a | |
6075 | |
6076 /a* b *\w/x | |
6077 a | |
6078 0: a | |
6079 | |
6080 /^\w+=.*(\\\n.*)*/ | |
6081 abc=xyz\\\npqr | |
6082 0: abc=xyz\ | |
6083 | |
6084 /(?=(\w+))\1:/ | |
6085 abcd: | |
6086 0: abcd: | |
6087 1: abcd | |
6088 | |
6089 /^(?=(\w+))\1:/ | |
6090 abcd: | |
6091 0: abcd: | |
6092 1: abcd | |
6093 | |
6094 #/^\Eabc/ | |
6095 # abc | |
6096 # 0: abc | |
6097 | |
6098 #/^[\Eabc]/ | |
6099 # a | |
6100 # 0: a | |
6101 #\= Expect no match | |
6102 # E | |
6103 #No match | |
6104 | |
6105 #/^[a-\Ec]/ | |
6106 # b | |
6107 # 0: b | |
6108 #\= Expect no match | |
6109 # - | |
6110 #No match | |
6111 # E | |
6112 #No match | |
6113 | |
6114 #/^[a\E\E-\Ec]/ | |
6115 # b | |
6116 # 0: b | |
6117 #\= Expect no match | |
6118 # - | |
6119 #No match | |
6120 # E | |
6121 #No match | |
6122 | |
6123 #/^[\E\Qa\E-\Qz\E]+/ | |
6124 # b | |
6125 # 0: b | |
6126 #\= Expect no match | |
6127 # - | |
6128 #No match | |
6129 | |
6130 #/^[a\Q]bc\E]/ | |
6131 # a | |
6132 # 0: a | |
6133 # ] | |
6134 # 0: ] | |
6135 # c | |
6136 # 0: c | |
6137 | |
6138 #/^[a-\Q\E]/ | |
6139 # a | |
6140 # 0: a | |
6141 # - | |
6142 # 0: - | |
6143 | |
6144 /^(a()*)*/ | |
6145 aaaa | |
6146 0: aaaa | |
6147 1: a | |
6148 2: | |
6149 | |
6150 /^(?:a(?:(?:))*)*/ | |
6151 aaaa | |
6152 0: aaaa | |
6153 | |
6154 /^(a()+)+/ | |
6155 aaaa | |
6156 0: aaaa | |
6157 1: a | |
6158 2: | |
6159 | |
6160 /^(?:a(?:(?:))+)+/ | |
6161 aaaa | |
6162 0: aaaa | |
6163 | |
6164 /(a){0,3}(?(1)b|(c|))*D/ | |
6165 abbD | |
6166 0: abbD | |
6167 1: a | |
6168 ccccD | |
6169 0: ccccD | |
6170 1: <unset> | |
6171 2: | |
6172 D | |
6173 0: D | |
6174 1: <unset> | |
6175 2: | |
6176 | |
6177 # this is really long with debug -- removing for now | |
6178 #/(a|)*\d/ | |
6179 # aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 | |
6180 # 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 | |
6181 # 1: | |
6182 #\= Expect no match | |
6183 # aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | |
6184 #No match | |
6185 | |
6186 /(?>a|)*\d/ | |
6187 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 | |
6188 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 | |
6189 \= Expect no match | |
6190 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | |
6191 No match | |
6192 | |
6193 /(?:a|)*\d/ | |
6194 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 | |
6195 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4 | |
6196 \= Expect no match | |
6197 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa | |
6198 No match | |
6199 | |
6200 /^(?s)(?>.*)(?<!\n)/ | |
6201 abc | |
6202 0: abc | |
6203 \= Expect no match | |
6204 abc\n | |
6205 No match | |
6206 | |
6207 /^(?![^\n]*\n\z)/ | |
6208 abc | |
6209 0: | |
6210 \= Expect no match | |
6211 abc\n | |
6212 No match | |
6213 | |
6214 /\z(?<!\n)/ | |
6215 abc | |
6216 0: | |
6217 \= Expect no match | |
6218 abc\n | |
6219 No match | |
6220 | |
6221 /(.*(.)?)*/ | |
6222 abcd | |
6223 0: abcd | |
6224 1: | |
6225 | |
6226 /( (A | (?(1)0|) )* )/x | |
6227 abcd | |
6228 0: | |
6229 1: | |
6230 2: | |
6231 | |
6232 /( ( (?(1)0|) )* )/x | |
6233 abcd | |
6234 0: | |
6235 1: | |
6236 2: | |
6237 | |
6238 /( (?(1)0|)* )/x | |
6239 abcd | |
6240 0: | |
6241 1: | |
6242 | |
6243 /[[:abcd:xyz]]/ | |
6244 a] | |
6245 0: a] | |
6246 :] | |
6247 0: :] | |
6248 | |
6249 /[abc[:x\]pqr]/ | |
6250 a | |
6251 0: a | |
6252 [ | |
6253 0: [ | |
6254 : | |
6255 0: : | |
6256 ] | |
6257 0: ] | |
6258 p | |
6259 0: p | |
6260 | |
6261 /.*[op][xyz]/ | |
6262 \= Expect no match | |
6263 fooabcfoo | |
6264 No match | |
6265 | |
6266 /(?(?=.*b)b|^)/ | |
6267 adc | |
6268 0: | |
6269 abc | |
6270 0: b | |
6271 | |
6272 /(?(?=^.*b)b|^)/ | |
6273 adc | |
6274 0: | |
6275 \= Expect no match | |
6276 abc | |
6277 No match | |
6278 | |
6279 /(?(?=.*b)b|^)*/ | |
6280 adc | |
6281 0: | |
6282 abc | |
6283 0: | |
6284 | |
6285 /(?(?=.*b)b|^)+/ | |
6286 adc | |
6287 0: | |
6288 abc | |
6289 0: b | |
6290 | |
6291 /(?(?=b).*b|^d)/ | |
6292 abc | |
6293 0: b | |
6294 | |
6295 /(?(?=.*b).*b|^d)/ | |
6296 abc | |
6297 0: ab | |
6298 | |
6299 /^%((?(?=[a])[^%])|b)*%$/ | |
6300 %ab% | |
6301 0: %ab% | |
6302 1: | |
6303 | |
6304 /(?i)a(?-i)b|c/ | |
6305 XabX | |
6306 0: ab | |
6307 XAbX | |
6308 0: Ab | |
6309 CcC | |
6310 0: c | |
6311 \= Expect no match | |
6312 XABX | |
6313 No match | |
6314 | |
6315 /[\x00-\xff\s]+/ | |
6316 \x0a\x0b\x0c\x0d | |
6317 0: \x0a\x0b\x0c\x0d | |
6318 | |
6319 /(abc)\1/i | |
6320 \= Expect no match | |
6321 abc | |
6322 No match | |
6323 | |
6324 /(abc)\1/ | |
6325 \= Expect no match | |
6326 abc | |
6327 No match | |
6328 | |
6329 /[^a]*/i | |
6330 12abc | |
6331 0: 12 | |
6332 12ABC | |
6333 0: 12 | |
6334 | |
6335 #Posses | |
6336 /[^a]*/i | |
6337 12abc | |
6338 0: 12 | |
6339 12ABC | |
6340 0: 12 | |
6341 | |
6342 /[^a]*?X/i | |
6343 \= Expect no match | |
6344 12abc | |
6345 No match | |
6346 12ABC | |
6347 No match | |
6348 | |
6349 /[^a]+?X/i | |
6350 \= Expect no match | |
6351 12abc | |
6352 No match | |
6353 12ABC | |
6354 No match | |
6355 | |
6356 /[^a]?X/i | |
6357 12aXbcX | |
6358 0: X | |
6359 12AXBCX | |
6360 0: X | |
6361 BCX | |
6362 0: CX | |
6363 | |
6364 /[^a]??X/i | |
6365 12aXbcX | |
6366 0: X | |
6367 12AXBCX | |
6368 0: X | |
6369 BCX | |
6370 0: CX | |
6371 | |
6372 /[^a]{2,3}/i | |
6373 abcdef | |
6374 0: bcd | |
6375 ABCDEF | |
6376 0: BCD | |
6377 | |
6378 /[^a]{2,3}?/i | |
6379 abcdef | |
6380 0: bc | |
6381 ABCDEF | |
6382 0: BC | |
6383 | |
6384 /((a|)+)+Z/ | |
6385 Z | |
6386 0: Z | |
6387 1: | |
6388 2: | |
6389 | |
6390 /(a)b|(a)c/ | |
6391 ac | |
6392 0: ac | |
6393 1: <unset> | |
6394 2: a | |
6395 | |
6396 /(?>(a))b|(a)c/ | |
6397 ac | |
6398 0: ac | |
6399 1: <unset> | |
6400 2: a | |
6401 | |
6402 /(?=(a))ab|(a)c/ | |
6403 ac | |
6404 0: ac | |
6405 1: <unset> | |
6406 2: a | |
6407 | |
6408 /((?>(a))b|(a)c)/ | |
6409 ac | |
6410 0: ac | |
6411 1: ac | |
6412 2: <unset> | |
6413 3: a | |
6414 | |
6415 /(?=(?>(a))b|(a)c)(..)/ | |
6416 ac | |
6417 0: ac | |
6418 1: <unset> | |
6419 2: a | |
6420 3: ac | |
6421 | |
6422 /(?>(?>(a))b|(a)c)/ | |
6423 ac | |
6424 0: ac | |
6425 1: <unset> | |
6426 2: a | |
6427 | |
6428 /((?>(a+)b)+(aabab))/ | |
6429 aaaabaaabaabab | |
6430 0: aaaabaaabaabab | |
6431 1: aaaabaaabaabab | |
6432 2: aaa | |
6433 3: aabab | |
6434 | |
6435 /(?>a+|ab)+?c/ | |
6436 \= Expect no match | |
6437 aabc | |
6438 No match | |
6439 | |
6440 /(?>a+|ab)+c/ | |
6441 \= Expect no match | |
6442 aabc | |
6443 No match | |
6444 | |
6445 /(?:a+|ab)+c/ | |
6446 aabc | |
6447 0: aabc | |
6448 | |
6449 /^(?:a|ab)+c/ | |
6450 aaaabc | |
6451 0: aaaabc | |
6452 | |
6453 /(?=abc){0}xyz/ | |
6454 xyz | |
6455 0: xyz | |
6456 | |
6457 /(?=abc){1}xyz/ | |
6458 \= Expect no match | |
6459 xyz | |
6460 No match | |
6461 | |
6462 /(?=(a))?./ | |
6463 ab | |
6464 0: a | |
6465 1: a | |
6466 bc | |
6467 0: b | |
6468 | |
6469 /(?=(a))??./ | |
6470 ab | |
6471 0: a | |
6472 bc | |
6473 0: b | |
6474 | |
6475 /^(?!a){0}\w+/ | |
6476 aaaaa | |
6477 0: aaaaa | |
6478 | |
6479 /(?<=(abc))?xyz/ | |
6480 abcxyz | |
6481 0: xyz | |
6482 1: abc | |
6483 pqrxyz | |
6484 0: xyz | |
6485 | |
6486 /^[g<a>]+/ | |
6487 ggg<<<aaa>>> | |
6488 0: ggg<<<aaa>>> | |
6489 \= Expect no match | |
6490 \\ga | |
6491 No match | |
6492 | |
6493 /^[ga]+/ | |
6494 gggagagaxyz | |
6495 0: gggagaga | |
6496 | |
6497 /[:a]xxx[b:]/ | |
6498 :xxx: | |
6499 0: :xxx: | |
6500 | |
6501 /(?<=a{2})b/i | |
6502 xaabc | |
6503 0: b | |
6504 \= Expect no match | |
6505 xabc | |
6506 No match | |
6507 | |
6508 /(?<!a{2})b/i | |
6509 xabc | |
6510 0: b | |
6511 \= Expect no match | |
6512 xaabc | |
6513 No match | |
6514 | |
6515 /(?<=[^a]{2})b/ | |
6516 axxbc | |
6517 0: b | |
6518 aAAbc | |
6519 0: b | |
6520 \= Expect no match | |
6521 xaabc | |
6522 No match | |
6523 | |
6524 /(?<=[^a]{2})b/i | |
6525 axxbc | |
6526 0: b | |
6527 \= Expect no match | |
6528 aAAbc | |
6529 No match | |
6530 xaabc | |
6531 No match | |
6532 | |
6533 #/(?|(abc)|(xyz))\1/ | |
6534 # abcabc | |
6535 # 0: abcabc | |
6536 # 1: abc | |
6537 # xyzxyz | |
6538 # 0: xyzxyz | |
6539 # 1: xyz | |
6540 #\= Expect no match | |
6541 # abcxyz | |
6542 #No match | |
6543 # xyzabc | |
6544 #No match | |
6545 | |
6546 #/(?|(abc)|(xyz))(?1)/ | |
6547 # abcabc | |
6548 # 0: abcabc | |
6549 # 1: abc | |
6550 # xyzabc | |
6551 # 0: xyzabc | |
6552 # 1: xyz | |
6553 #\= Expect no match | |
6554 # xyzxyz | |
6555 #No match | |
6556 | |
6557 #/^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/ | |
6558 # XYabcdY | |
6559 # 0: XYabcdY | |
6560 # 1: a | |
6561 # 2: b | |
6562 # 3: c | |
6563 # 4: d | |
6564 # 5: Y | |
6565 | |
6566 #/^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/ | |
6567 # XYabcdY | |
6568 # 0: XYabcdY | |
6569 # 1: a | |
6570 # 2: b | |
6571 # 3: <unset> | |
6572 # 4: <unset> | |
6573 # 5: c | |
6574 # 6: d | |
6575 # 7: Y | |
6576 | |
6577 #/^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/ | |
6578 # XYabcdY | |
6579 # 0: XYabcdY | |
6580 # 1: a | |
6581 # 2: b | |
6582 # 3: <unset> | |
6583 # 4: <unset> | |
6584 # 5: c | |
6585 # 6: d | |
6586 # 7: Y | |
6587 | |
6588 /(?'abc'\w+):\k<abc>{2}/ | |
6589 a:aaxyz | |
6590 0: a:aa | |
6591 1: a | |
6592 ab:ababxyz | |
6593 0: ab:abab | |
6594 1: ab | |
6595 \= Expect no match | |
6596 a:axyz | |
6597 No match | |
6598 ab:abxyz | |
6599 No match | |
6600 | |
6601 /^(?<ab>a)? (?(ab)b|c) (?(ab)d|e)/x | |
6602 abd | |
6603 0: abd | |
6604 1: a | |
6605 ce | |
6606 0: ce | |
6607 | |
6608 # .NET has more consistent grouping numbers with these dupe groups for the two options | |
6609 /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |b(?<quote> (?<apostrophe>')|(?<realquote>")) ) (?(quote)[a-z]+|[0-9]+)/x,dupnames | |
6610 a\"aaaaa | |
6611 0: a"aaaaa | |
6612 1: " | |
6613 2: <unset> | |
6614 3: " | |
6615 b\"aaaaa | |
6616 0: b"aaaaa | |
6617 1: " | |
6618 2: <unset> | |
6619 3: " | |
6620 \= Expect no match | |
6621 b\"11111 | |
6622 No match | |
6623 | |
6624 #/(?P<L1>(?P<L2>0)(?P>L1)|(?P>L2))/ | |
6625 # 0 | |
6626 # 0: 0 | |
6627 # 1: 0 | |
6628 # 00 | |
6629 # 0: 00 | |
6630 # 1: 00 | |
6631 # 2: 0 | |
6632 # 0000 | |
6633 # 0: 0000 | |
6634 # 1: 0000 | |
6635 # 2: 0 | |
6636 | |
6637 #/(?P<L1>(?P<L2>0)|(?P>L2)(?P>L1))/ | |
6638 # 0 | |
6639 # 0: 0 | |
6640 # 1: 0 | |
6641 # 2: 0 | |
6642 # 00 | |
6643 # 0: 0 | |
6644 # 1: 0 | |
6645 # 2: 0 | |
6646 # 0000 | |
6647 # 0: 0 | |
6648 # 1: 0 | |
6649 # 2: 0 | |
6650 | |
6651 # Check the use of names for failure | |
6652 | |
6653 # Check opening parens in comment when seeking forward reference. | |
6654 | |
6655 #/(?P<abn>(?P=abn)xxx|)+/ | |
6656 # xxx | |
6657 # 0: | |
6658 # 1: | |
6659 | |
6660 #Posses | |
6661 /^(a)?(\w)/ | |
6662 aaaaX | |
6663 0: aa | |
6664 1: a | |
6665 2: a | |
6666 YZ | |
6667 0: Y | |
6668 1: <unset> | |
6669 2: Y | |
6670 | |
6671 #Posses | |
6672 /^(?:a)?(\w)/ | |
6673 aaaaX | |
6674 0: aa | |
6675 1: a | |
6676 YZ | |
6677 0: Y | |
6678 1: Y | |
6679 | |
6680 /\A.*?(a|bc)/ | |
6681 ba | |
6682 0: ba | |
6683 1: a | |
6684 | |
6685 /\A.*?(?:a|bc|d)/ | |
6686 ba | |
6687 0: ba | |
6688 | |
6689 # -------------------------- | |
6690 | |
6691 /(another)?(\1?)test/ | |
6692 hello world test | |
6693 0: test | |
6694 1: <unset> | |
6695 2: | |
6696 | |
6697 /(another)?(\1+)test/ | |
6698 \= Expect no match | |
6699 hello world test | |
6700 No match | |
6701 | |
6702 /((?:a?)*)*c/ | |
6703 aac | |
6704 0: aac | |
6705 1: | |
6706 | |
6707 /((?>a?)*)*c/ | |
6708 aac | |
6709 0: aac | |
6710 1: | |
6711 | |
6712 /(?>.*?a)(?<=ba)/ | |
6713 aba | |
6714 0: ba | |
6715 | |
6716 /(?:.*?a)(?<=ba)/ | |
6717 aba | |
6718 0: aba | |
6719 | |
6720 /(?>.*?a)b/s | |
6721 aab | |
6722 0: ab | |
6723 | |
6724 /(?>.*?a)b/ | |
6725 aab | |
6726 0: ab | |
6727 | |
6728 /(?>^a)b/s | |
6729 \= Expect no match | |
6730 aab | |
6731 No match | |
6732 | |
6733 /(?>.*?)(?<=(abcd)|(wxyz))/ | |
6734 alphabetabcd | |
6735 0: | |
6736 1: abcd | |
6737 endingwxyz | |
6738 0: | |
6739 1: <unset> | |
6740 2: wxyz | |
6741 | |
6742 /(?>.*)(?<=(abcd)|(wxyz))/ | |
6743 alphabetabcd | |
6744 0: alphabetabcd | |
6745 1: abcd | |
6746 endingwxyz | |
6747 0: endingwxyz | |
6748 1: <unset> | |
6749 2: wxyz | |
6750 | |
6751 "(?>.*)foo" | |
6752 \= Expect no match | |
6753 abcdfooxyz | |
6754 No match | |
6755 | |
6756 "(?>.*?)foo" | |
6757 abcdfooxyz | |
6758 0: foo | |
6759 | |
6760 # Tests that try to figure out how Perl works. My hypothesis is that the first | |
6761 # verb that is backtracked onto is the one that acts. This seems to be the case | |
6762 # almost all the time, but there is one exception that is perhaps a bug. | |
6763 | |
6764 /a(?=bc).|abd/ | |
6765 abd | |
6766 0: abd | |
6767 abc | |
6768 0: ab | |
6769 | |
6770 /a(?>bc)d|abd/ | |
6771 abceabd | |
6772 0: abd | |
6773 | |
6774 # These tests were formerly in test 2, but changes in PCRE and Perl have | |
6775 # made them compatible. | |
6776 | |
6777 /^(a)?(?(1)a|b)+$/ | |
6778 \= Expect no match | |
6779 a | |
6780 No match | |
6781 | |
6782 # ---- | |
6783 | |
6784 /^\d*\w{4}/ | |
6785 1234 | |
6786 0: 1234 | |
6787 \= Expect no match | |
6788 123 | |
6789 No match | |
6790 | |
6791 /^[^b]*\w{4}/ | |
6792 aaaa | |
6793 0: aaaa | |
6794 \= Expect no match | |
6795 aaa | |
6796 No match | |
6797 | |
6798 /^[^b]*\w{4}/i | |
6799 aaaa | |
6800 0: aaaa | |
6801 \= Expect no match | |
6802 aaa | |
6803 No match | |
6804 | |
6805 /^a*\w{4}/ | |
6806 aaaa | |
6807 0: aaaa | |
6808 \= Expect no match | |
6809 aaa | |
6810 No match | |
6811 | |
6812 /^a*\w{4}/i | |
6813 aaaa | |
6814 0: aaaa | |
6815 \= Expect no match | |
6816 aaa | |
6817 No match | |
6818 | |
6819 /(?:(?<n>foo)|(?<n>bar))\k<n>/dupnames | |
6820 foofoo | |
6821 0: foofoo | |
6822 1: foo | |
6823 barbar | |
6824 0: barbar | |
6825 1: bar | |
6826 | |
6827 # A notable difference between PCRE and .NET. According to | |
6828 # the PCRE docs: | |
6829 # If you make a subroutine call to a non-unique named | |
6830 # subpattern, the one that corresponds to the first | |
6831 # occurrence of the name is used. In the absence of | |
6832 # duplicate numbers (see the previous section) this is | |
6833 # the one with the lowest number. | |
6834 # .NET takes the most recently captured number according to MSDN: | |
6835 # A backreference refers to the most recent definition of | |
6836 # a group (the definition most immediately to the left, | |
6837 # when matching left to right). When a group makes multiple | |
6838 # captures, a backreference refers to the most recent capture. | |
6839 | |
6840 #/(?<n>A)(?:(?<n>foo)|(?<n>bar))\k<n>/dupnames | |
6841 # AfooA | |
6842 # 0: AfooA | |
6843 # 1: A | |
6844 # 2: foo | |
6845 # AbarA | |
6846 # 0: AbarA | |
6847 # 1: A | |
6848 # 2: <unset> | |
6849 # 3: bar | |
6850 #\= Expect no match | |
6851 # Afoofoo | |
6852 #No match | |
6853 # Abarbar | |
6854 #No match | |
6855 | |
6856 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/ | |
6857 1 IN SOA non-sp1 non-sp2( | |
6858 0: 1 IN SOA non-sp1 non-sp2( | |
6859 1: 1 | |
6860 2: non-sp1 | |
6861 3: non-sp2 | |
6862 | |
6863 # TODO: .NET's group number ordering here in the second example is a bit odd | |
6864 /^ (?:(?<A>A)|(?'B'B)(?<A>A)) (?(A)x) (?(B)y)$/x,dupnames | |
6865 Ax | |
6866 0: Ax | |
6867 1: A | |
6868 BAxy | |
6869 0: BAxy | |
6870 1: A | |
6871 2: B | |
6872 | |
6873 / ^ a + b $ /x | |
6874 aaaab | |
6875 0: aaaab | |
6876 | |
6877 / ^ a + #comment | |
6878 b $ /x | |
6879 aaaab | |
6880 0: aaaab | |
6881 | |
6882 / ^ a + #comment | |
6883 #comment | |
6884 b $ /x | |
6885 aaaab | |
6886 0: aaaab | |
6887 | |
6888 / ^ (?> a + ) b $ /x | |
6889 aaaab | |
6890 0: aaaab | |
6891 | |
6892 / ^ ( a + ) + \w $ /x | |
6893 aaaab | |
6894 0: aaaab | |
6895 1: aaaa | |
6896 | |
6897 /(?:x|(?:(xx|yy)+|x|x|x|x|x)|a|a|a)bc/ | |
6898 \= Expect no match | |
6899 acb | |
6900 No match | |
6901 | |
6902 #Posses | |
6903 #/\A(?:[^\"]+|\"(?:[^\"]*|\"\")*\")+/ | |
6904 # NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED | |
6905 # 0: NON QUOTED "QUOT""ED" AFTER | |
6906 | |
6907 #Posses | |
6908 #/\A(?:[^\"]+|\"(?:[^\"]+|\"\")*\")+/ | |
6909 # NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED | |
6910 # 0: NON QUOTED "QUOT""ED" AFTER | |
6911 | |
6912 #Posses | |
6913 #/\A(?:[^\"]+|\"(?:[^\"]+|\"\")+\")+/ | |
6914 # NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED | |
6915 # 0: NON QUOTED "QUOT""ED" AFTER | |
6916 | |
6917 #Posses | |
6918 #/\A([^\"1]+|[\"2]([^\"3]*|[\"4][\"5])*[\"6])+/ | |
6919 # NON QUOTED \"QUOT\"\"ED\" AFTER \"NOT MATCHED | |
6920 # 0: NON QUOTED "QUOT""ED" AFTER | |
6921 # 1: AFTER | |
6922 # 2: | |
6923 | |
6924 /^\w+(?>\s*)(?<=\w)/ | |
6925 test test | |
6926 0: tes | |
6927 | |
6928 #/(?P<Name>a)?(?P<Name2>b)?(?(<Name>)c|d)*l/ | |
6929 # acl | |
6930 # 0: acl | |
6931 # 1: a | |
6932 # bdl | |
6933 # 0: bdl | |
6934 # 1: <unset> | |
6935 # 2: b | |
6936 # adl | |
6937 # 0: dl | |
6938 # bcl | |
6939 # 0: l | |
6940 | |
6941 /\sabc/ | |
6942 \x0babc | |
6943 0: \x0babc | |
6944 | |
6945 #/[\Qa]\E]+/ | |
6946 # aa]] | |
6947 # 0: aa]] | |
6948 | |
6949 #/[\Q]a\E]+/ | |
6950 # aa]] | |
6951 # 0: aa]] | |
6952 | |
6953 /A((((((((a))))))))\8B/ | |
6954 AaaB | |
6955 0: AaaB | |
6956 1: a | |
6957 2: a | |
6958 3: a | |
6959 4: a | |
6960 5: a | |
6961 6: a | |
6962 7: a | |
6963 8: a | |
6964 | |
6965 /A(((((((((a)))))))))\9B/ | |
6966 AaaB | |
6967 0: AaaB | |
6968 1: a | |
6969 2: a | |
6970 3: a | |
6971 4: a | |
6972 5: a | |
6973 6: a | |
6974 7: a | |
6975 8: a | |
6976 9: a | |
6977 | |
6978 /(|ab)*?d/ | |
6979 abd | |
6980 0: abd | |
6981 1: ab | |
6982 xyd | |
6983 0: d | |
6984 | |
6985 /(\2|a)(\1)/ | |
6986 aaa | |
6987 0: aa | |
6988 1: a | |
6989 2: a | |
6990 | |
6991 /(\2)(\1)/ | |
6992 | |
6993 "Z*(|d*){216}" | |
6994 | |
6995 /((((((((((((x))))))))))))\12/ | |
6996 xx | |
6997 0: xx | |
6998 1: x | |
6999 2: x | |
7000 3: x | |
7001 4: x | |
7002 5: x | |
7003 6: x | |
7004 7: x | |
7005 8: x | |
7006 9: x | |
7007 10: x | |
7008 11: x | |
7009 12: x | |
7010 | |
7011 #"(?|(\k'Pm')|(?'Pm'))" | |
7012 # abcd | |
7013 # 0: | |
7014 # 1: | |
7015 | |
7016 #/(?|(aaa)|(b))\g{1}/ | |
7017 # aaaaaa | |
7018 # 0: aaaaaa | |
7019 # 1: aaa | |
7020 # bb | |
7021 # 0: bb | |
7022 # 1: b | |
7023 | |
7024 #/(?|(aaa)|(b))(?1)/ | |
7025 # aaaaaa | |
7026 # 0: aaaaaa | |
7027 # 1: aaa | |
7028 # baaa | |
7029 # 0: baaa | |
7030 # 1: b | |
7031 #\= Expect no match | |
7032 # bb | |
7033 #No match | |
7034 | |
7035 #/(?|(aaa)|(b))/ | |
7036 # xaaa | |
7037 # 0: aaa | |
7038 # 1: aaa | |
7039 # xbc | |
7040 # 0: b | |
7041 # 1: b | |
7042 | |
7043 #/(?|(?'a'aaa)|(?'a'b))\k'a'/ | |
7044 # aaaaaa | |
7045 # 0: aaaaaa | |
7046 # 1: aaa | |
7047 # bb | |
7048 # 0: bb | |
7049 # 1: b | |
7050 | |
7051 #/(?|(?'a'aaa)|(?'a'b))(?'a'cccc)\k'a'/dupnames | |
7052 # aaaccccaaa | |
7053 # 0: aaaccccaaa | |
7054 # 1: aaa | |
7055 # 2: cccc | |
7056 # bccccb | |
7057 # 0: bccccb | |
7058 # 1: b | |
7059 # 2: cccc | |
7060 | |
7061 # End of testinput1 |