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

Contents of /code/trunk/testdata/testoutput7

Parent Directory Parent Directory | Revision Log Revision Log


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