/[pcre]/code/trunk/testdata/testoutput1
ViewVC logotype

Contents of /code/trunk/testdata/testoutput1

Parent Directory Parent Directory | Revision Log Revision Log


Revision 604 - (show annotations) (download)
Thu Jun 2 19:04:54 2011 UTC (3 years, 6 months ago) by ph10
File size: 102999 byte(s)
Refactoring to reduce stack usage for possessively quantified subpatterns. Also 
fixed a number of bugs related to repeated subpatterns. Some further tidies 
consequent on the removal of OP_OPT are also in this patch.

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

Properties

Name Value
svn:keywords "Author Date Id Revision Url"

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12