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

Contents of /code/trunk/testdata/testoutput7

Parent Directory Parent Directory | Revision Log Revision Log


Revision 473 - (show annotations) (download)
Sat Jan 2 12:40:07 2010 UTC (4 years, 7 months ago) by ph10
File size: 117488 byte(s)
Fix bugs relating to the use of (*SKIP) etc in assertions.

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