| author | John Schoenick <john@pointysoftware.net> |
| Wed Jun 01 20:36:16 2011 -0400 (2011-06-01) | |
| changeset 3292 | f428ffc8a3fe |
| parent 2762 | d2d467bf1b5a |
| child 3831 | babd0eee3c5e |
| permissions | -rw-r--r-- |
1 /abc/
2 abc
4 /ab*c/
5 abc
6 abbbbc
7 ac
9 /ab+c/
10 abc
11 abbbbbbc
12 *** Failers
13 ac
14 ab
16 /a*/
17 a
18 aaaaaaaaaaaaaaaaa
19 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
20 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F
22 /(a|abcd|african)/
23 a
24 abcd
25 african
27 /^abc/
28 abcdef
29 *** Failers
30 xyzabc
31 xyz\nabc
33 /^abc/m
34 abcdef
35 xyz\nabc
36 *** Failers
37 xyzabc
39 /\Aabc/
40 abcdef
41 *** Failers
42 xyzabc
43 xyz\nabc
45 /\Aabc/m
46 abcdef
47 *** Failers
48 xyzabc
49 xyz\nabc
51 /\Gabc/
52 abcdef
53 xyzabc\>3
54 *** Failers
55 xyzabc
56 xyzabc\>2
58 /x\dy\Dz/
59 x9yzz
60 x0y+z
61 *** Failers
62 xyz
63 xxy0z
65 /x\sy\Sz/
66 x yzz
67 x y+z
68 *** Failers
69 xyz
70 xxyyz
72 /x\wy\Wz/
73 xxy+z
74 *** Failers
75 xxy0z
76 x+y+z
78 /x.y/
79 x+y
80 x-y
81 *** Failers
82 x\ny
84 /x.y/s
85 x+y
86 x-y
87 x\ny
89 /(a.b(?s)c.d|x.y)p.q/
90 a+bc+dp+q
91 a+bc\ndp+q
92 x\nyp+q
93 *** Failers
94 a\nbc\ndp+q
95 a+bc\ndp\nq
96 x\nyp\nq
98 /a\d\z/
99 ba0
100 *** Failers
101 ba0\n
102 ba0\ncd
104 /a\d\z/m
105 ba0
106 *** Failers
107 ba0\n
108 ba0\ncd
110 /a\d\Z/
111 ba0
112 ba0\n
113 *** Failers
114 ba0\ncd
116 /a\d\Z/m
117 ba0
118 ba0\n
119 *** Failers
120 ba0\ncd
122 /a\d$/
123 ba0
124 ba0\n
125 *** Failers
126 ba0\ncd
128 /a\d$/m
129 ba0
130 ba0\n
131 ba0\ncd
132 *** Failers
134 /abc/i
135 abc
136 aBc
137 ABC
139 /[^a]/
140 abcd
142 /ab?\w/
143 abz
144 abbz
145 azz
147 /x{0,3}yz/
148 ayzq
149 axyzq
150 axxyz
151 axxxyzq
152 axxxxyzq
153 *** Failers
154 ax
155 axx
157 /x{3}yz/
158 axxxyzq
159 axxxxyzq
160 *** Failers
161 ax
162 axx
163 ayzq
164 axyzq
165 axxyz
167 /x{2,3}yz/
168 axxyz
169 axxxyzq
170 axxxxyzq
171 *** Failers
172 ax
173 axx
174 ayzq
175 axyzq
177 /[^a]+/
178 bac
179 bcdefax
180 *** Failers
181 aaaaa
183 /[^a]*/
184 bac
185 bcdefax
186 *** Failers
187 aaaaa
189 /[^a]{3,5}/
190 xyz
191 awxyza
192 abcdefa
193 abcdefghijk
194 *** Failers
195 axya
196 axa
197 aaaaa
199 /\d*/
200 1234b567
201 xyz
203 /\D*/
204 a1234b567
205 xyz
207 /\d+/
208 ab1234c56
209 *** Failers
210 xyz
212 /\D+/
213 ab123c56
214 *** Failers
215 789
217 /\d?A/
218 045ABC
219 ABC
220 *** Failers
221 XYZ
223 /\D?A/
224 ABC
225 BAC
226 9ABC
227 *** Failers
229 /a+/
230 aaaa
232 /^.*xyz/
233 xyz
234 ggggggggxyz
236 /^.+xyz/
237 abcdxyz
238 axyz
239 *** Failers
240 xyz
242 /^.?xyz/
243 xyz
244 cxyz
246 /^\d{2,3}X/
247 12X
248 123X
249 *** Failers
250 X
251 1X
252 1234X
254 /^[abcd]\d/
255 a45
256 b93
257 c99z
258 d04
259 *** Failers
260 e45
261 abcd
262 abcd1234
263 1234
265 /^[abcd]*\d/
266 a45
267 b93
268 c99z
269 d04
270 abcd1234
271 1234
272 *** Failers
273 e45
274 abcd
276 /^[abcd]+\d/
277 a45
278 b93
279 c99z
280 d04
281 abcd1234
282 *** Failers
283 1234
284 e45
285 abcd
287 /^a+X/
288 aX
289 aaX
291 /^[abcd]?\d/
292 a45
293 b93
294 c99z
295 d04
296 1234
297 *** Failers
298 abcd1234
299 e45
301 /^[abcd]{2,3}\d/
302 ab45
303 bcd93
304 *** Failers
305 1234
306 a36
307 abcd1234
308 ee45
310 /^(abc)*\d/
311 abc45
312 abcabcabc45
313 42xyz
314 *** Failers
316 /^(abc)+\d/
317 abc45
318 abcabcabc45
319 *** Failers
320 42xyz
322 /^(abc)?\d/
323 abc45
324 42xyz
325 *** Failers
326 abcabcabc45
328 /^(abc){2,3}\d/
329 abcabc45
330 abcabcabc45
331 *** Failers
332 abcabcabcabc45
333 abc45
334 42xyz
336 /1(abc|xyz)2(?1)3/
337 1abc2abc3456
338 1abc2xyz3456
340 /^(a*\w|ab)=(a*\w|ab)/
341 ab=ab
343 /^(a*\w|ab)=(?1)/
344 ab=ab
346 /^([^()]|\((?1)*\))*$/
347 abc
348 a(b)c
349 a(b(c))d
350 *** Failers)
351 a(b(c)d
353 /^>abc>([^()]|\((?1)*\))*<xyz<$/
354 >abc>123<xyz<
355 >abc>1(2)3<xyz<
356 >abc>(1(2)3)<xyz<
358 /^(?>a*)\d/
359 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
360 *** Failers
361 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
363 /< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/x
364 <>
365 <abcd>
366 <abc <123> hij>
367 <abc <def> hij>
368 <abc<>def>
369 <abc<>
370 *** Failers
371 <abc
373 /^(?(?=abc)\w{3}:|\d\d)$/
374 abc:
375 12
376 *** Failers
377 123
378 xyz
380 /^(?(?!abc)\d\d|\w{3}:)$/
381 abc:
382 12
383 *** Failers
384 123
385 xyz
387 /^(?=abc)\w{5}:$/
388 abcde:
389 *** Failers
390 abc..
391 123
392 vwxyz
394 /^(?!abc)\d\d$/
395 12
396 *** Failers
397 abcde:
398 abc..
399 123
400 vwxyz
402 /(?<=abc|xy)123/
403 abc12345
404 wxy123z
405 *** Failers
406 123abc
408 /(?<!abc|xy)123/
409 123abc
410 mno123456
411 *** Failers
412 abc12345
413 wxy123z
415 /abc(?C1)xyz/
416 abcxyz
417 123abcxyz999
419 /(ab|cd){3,4}/C
420 ababab
421 abcdabcd
422 abcdcdcdcdcd
424 /^abc/
425 abcdef
426 *** Failers
427 abcdef\B
429 /^(a*|xyz)/
430 bcd
431 aaabcd
432 xyz
433 xyz\N
434 *** Failers
435 bcd\N
437 /xyz$/
438 xyz
439 xyz\n
440 *** Failers
441 xyz\Z
442 xyz\n\Z
444 /xyz$/m
445 xyz
446 xyz\n
447 abcxyz\npqr
448 abcxyz\npqr\Z
449 xyz\n\Z
450 *** Failers
451 xyz\Z
453 /\Gabc/
454 abcdef
455 defabcxyz\>3
456 *** Failers
457 defabcxyz
459 /^abcdef/
460 ab\P
461 abcde\P
462 abcdef\P
463 *** Failers
464 abx\P
466 /^a{2,4}\d+z/
467 a\P
468 aa\P
469 aa2\P
470 aaa\P
471 aaa23\P
472 aaaa12345\P
473 aa0z\P
474 aaaa4444444444444z\P
475 *** Failers
476 az\P
477 aaaaa\P
478 a56\P
480 /^abcdef/
481 abc\P
482 def\R
484 /(?<=foo)bar/
485 xyzfo\P
486 foob\P\>2
487 foobar...\R\P\>4
488 xyzfo\P
489 foobar\>2
490 *** Failers
491 xyzfo\P
492 obar\R
494 /(ab*(cd|ef))+X/
495 adfadadaklhlkalkajhlkjahdfasdfasdfladsfjkj\P\Z
496 lkjhlkjhlkjhlkjhabbbbbbcdaefabbbbbbbefa\P\B\Z
497 cdabbbbbbbb\P\R\B\Z
498 efabbbbbbbbbbbbbbbb\P\R\B\Z
499 bbbbbbbbbbbbcdXyasdfadf\P\R\B\Z
501 /(a|b)/SF>testsavedregex
502 <testsavedregex
503 abc
504 ** Failers
505 def
507 /the quick brown fox/
508 the quick brown fox
509 The quick brown FOX
510 What do you know about the quick brown fox?
511 What do you know about THE QUICK BROWN FOX?
513 /The quick brown fox/i
514 the quick brown fox
515 The quick brown FOX
516 What do you know about the quick brown fox?
517 What do you know about THE QUICK BROWN FOX?
519 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
520 abcd\t\n\r\f\a\e9;\$\\?caxyz
522 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
523 abxyzpqrrrabbxyyyypqAzz
524 abxyzpqrrrabbxyyyypqAzz
525 aabxyzpqrrrabbxyyyypqAzz
526 aaabxyzpqrrrabbxyyyypqAzz
527 aaaabxyzpqrrrabbxyyyypqAzz
528 abcxyzpqrrrabbxyyyypqAzz
529 aabcxyzpqrrrabbxyyyypqAzz
530 aaabcxyzpqrrrabbxyyyypAzz
531 aaabcxyzpqrrrabbxyyyypqAzz
532 aaabcxyzpqrrrabbxyyyypqqAzz
533 aaabcxyzpqrrrabbxyyyypqqqAzz
534 aaabcxyzpqrrrabbxyyyypqqqqAzz
535 aaabcxyzpqrrrabbxyyyypqqqqqAzz
536 aaabcxyzpqrrrabbxyyyypqqqqqqAzz
537 aaaabcxyzpqrrrabbxyyyypqAzz
538 abxyzzpqrrrabbxyyyypqAzz
539 aabxyzzzpqrrrabbxyyyypqAzz
540 aaabxyzzzzpqrrrabbxyyyypqAzz
541 aaaabxyzzzzpqrrrabbxyyyypqAzz
542 abcxyzzpqrrrabbxyyyypqAzz
543 aabcxyzzzpqrrrabbxyyyypqAzz
544 aaabcxyzzzzpqrrrabbxyyyypqAzz
545 aaaabcxyzzzzpqrrrabbxyyyypqAzz
546 aaaabcxyzzzzpqrrrabbbxyyyypqAzz
547 aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
548 aaabcxyzpqrrrabbxyyyypABzz
549 aaabcxyzpqrrrabbxyyyypABBzz
550 >>>aaabxyzpqrrrabbxyyyypqAzz
551 >aaaabxyzpqrrrabbxyyyypqAzz
552 >>>>abcxyzpqrrrabbxyyyypqAzz
553 *** Failers
554 abxyzpqrrabbxyyyypqAzz
555 abxyzpqrrrrabbxyyyypqAzz
556 abxyzpqrrrabxyyyypqAzz
557 aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
558 aaaabcxyzzzzpqrrrabbbxyyypqAzz
559 aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
561 /^(abc){1,2}zz/
562 abczz
563 abcabczz
564 *** Failers
565 zz
566 abcabcabczz
567 >>abczz
569 /^(b+?|a){1,2}?c/
570 bc
571 bbc
572 bbbc
573 bac
574 bbac
575 aac
576 abbbbbbbbbbbc
577 bbbbbbbbbbbac
578 *** Failers
579 aaac
580 abbbbbbbbbbbac
582 /^(b+|a){1,2}c/
583 bc
584 bbc
585 bbbc
586 bac
587 bbac
588 aac
589 abbbbbbbbbbbc
590 bbbbbbbbbbbac
591 *** Failers
592 aaac
593 abbbbbbbbbbbac
595 /^(b+|a){1,2}?bc/
596 bbc
598 /^(b*|ba){1,2}?bc/
599 babc
600 bbabc
601 bababc
602 *** Failers
603 bababbc
604 babababc
606 /^(ba|b*){1,2}?bc/
607 babc
608 bbabc
609 bababc
610 *** Failers
611 bababbc
612 babababc
614 /^\ca\cA\c[\c{\c:/
615 \x01\x01\e;z
617 /^[ab\]cde]/
618 athing
619 bthing
620 ]thing
621 cthing
622 dthing
623 ething
624 *** Failers
625 fthing
626 [thing
627 \\thing
629 /^[]cde]/
630 ]thing
631 cthing
632 dthing
633 ething
634 *** Failers
635 athing
636 fthing
638 /^[^ab\]cde]/
639 fthing
640 [thing
641 \\thing
642 *** Failers
643 athing
644 bthing
645 ]thing
646 cthing
647 dthing
648 ething
650 /^[^]cde]/
651 athing
652 fthing
653 *** Failers
654 ]thing
655 cthing
656 dthing
657 ething
659 /^\�/
660 �
662 /^�/
663 �
665 /^[0-9]+$/
666 0
667 1
668 2
669 3
670 4
671 5
672 6
673 7
674 8
675 9
676 10
677 100
678 *** Failers
679 abc
681 /^.*nter/
682 enter
683 inter
684 uponter
686 /^xxx[0-9]+$/
687 xxx0
688 xxx1234
689 *** Failers
690 xxx
692 /^.+[0-9][0-9][0-9]$/
693 x123
694 xx123
695 123456
696 *** Failers
697 123
698 x1234
700 /^.+?[0-9][0-9][0-9]$/
701 x123
702 xx123
703 123456
704 *** Failers
705 123
706 x1234
708 /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
709 abc!pqr=apquxz.ixr.zzz.ac.uk
710 *** Failers
711 !pqr=apquxz.ixr.zzz.ac.uk
712 abc!=apquxz.ixr.zzz.ac.uk
713 abc!pqr=apquxz:ixr.zzz.ac.uk
714 abc!pqr=apquxz.ixr.zzz.ac.ukk
716 /:/
717 Well, we need a colon: somewhere
718 *** Fail if we don't
720 /([\da-f:]+)$/i
721 0abc
722 abc
723 fed
724 E
725 ::
726 5f03:12C0::932e
727 fed def
728 Any old stuff
729 *** Failers
730 0zzz
731 gzzz
732 fed\x20
733 Any old rubbish
735 /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
736 .1.2.3
737 A.12.123.0
738 *** Failers
739 .1.2.3333
740 1.2.3
741 1234.2.3
743 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
744 1 IN SOA non-sp1 non-sp2(
745 1 IN SOA non-sp1 non-sp2 (
746 *** Failers
747 1IN SOA non-sp1 non-sp2(
749 /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
750 a.
751 Z.
752 2.
753 ab-c.pq-r.
754 sxk.zzz.ac.uk.
755 x-.y-.
756 *** Failers
757 -abc.peq.
759 /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
760 *.a
761 *.b0-a
762 *.c3-b.c
763 *.c-a.b-c
764 *** Failers
765 *.0
766 *.a-
767 *.a-b.c-
768 *.c-a.0-c
770 /^(?=ab(de))(abd)(e)/
771 abde
773 /^(?!(ab)de|x)(abd)(f)/
774 abdf
776 /^(?=(ab(cd)))(ab)/
777 abcd
779 /^[\da-f](\.[\da-f])*$/i
780 a.b.c.d
781 A.B.C.D
782 a.b.c.1.2.3.C
784 /^\".*\"\s*(;.*)?$/
785 \"1234\"
786 \"abcd\" ;
787 \"\" ; rhubarb
788 *** Failers
789 \"1234\" : things
791 /^$/
792 \
793 *** Failers
795 / ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x
796 ab c
797 *** Failers
798 abc
799 ab cde
801 /(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/
802 ab c
803 *** Failers
804 abc
805 ab cde
807 /^ a\ b[c ]d $/x
808 a bcd
809 a b d
810 *** Failers
811 abcd
812 ab d
814 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
815 abcdefhijklm
817 /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
818 abcdefhijklm
820 /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
821 a+ Z0+\x08\n\x1d\x12
823 /^[.^$|()*+?{,}]+/
824 .^\$(*+)|{?,?}
826 /^a*\w/
827 z
828 az
829 aaaz
830 a
831 aa
832 aaaa
833 a+
834 aa+
836 /^a*?\w/
837 z
838 az
839 aaaz
840 a
841 aa
842 aaaa
843 a+
844 aa+
846 /^a+\w/
847 az
848 aaaz
849 aa
850 aaaa
851 aa+
853 /^a+?\w/
854 az
855 aaaz
856 aa
857 aaaa
858 aa+
860 /^\d{8}\w{2,}/
861 1234567890
862 12345678ab
863 12345678__
864 *** Failers
865 1234567
867 /^[aeiou\d]{4,5}$/
868 uoie
869 1234
870 12345
871 aaaaa
872 *** Failers
873 123456
875 /^[aeiou\d]{4,5}?/
876 uoie
877 1234
878 12345
879 aaaaa
880 123456
882 /^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]/
883 From abcd Mon Sep 01 12:33:02 1997
885 /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
886 From abcd Mon Sep 01 12:33:02 1997
887 From abcd Mon Sep 1 12:33:02 1997
888 *** Failers
889 From abcd Sep 01 12:33:02 1997
891 /^12.34/s
892 12\n34
893 12\r34
895 /\w+(?=\t)/
896 the quick brown\t fox
898 /foo(?!bar)(.*)/
899 foobar is foolish see?
901 /(?:(?!foo)...|^.{0,2})bar(.*)/
902 foobar crowbar etc
903 barrel
904 2barrel
905 A barrel
907 /^(\D*)(?=\d)(?!123)/
908 abc456
909 *** Failers
910 abc123
912 /^1234(?# test newlines
913 inside)/
914 1234
916 /^1234 #comment in extended re
917 /x
918 1234
920 /#rhubarb
921 abcd/x
922 abcd
924 /^abcd#rhubarb/x
925 abcd
927 /(?!^)abc/
928 the abc
929 *** Failers
930 abc
932 /(?=^)abc/
933 abc
934 *** Failers
935 the abc
937 /^[ab]{1,3}(ab*|b)/
938 aabbbbb
940 /^[ab]{1,3}?(ab*|b)/
941 aabbbbb
943 /^[ab]{1,3}?(ab*?|b)/
944 aabbbbb
946 /^[ab]{1,3}(ab*?|b)/
947 aabbbbb
949 / (?: [\040\t] | \(
950 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
951 \) )* # optional leading comment
952 (?: (?:
953 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
954 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
955 |
956 " (?: # opening quote...
957 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
958 | # or
959 \\ [^\x80-\xff] # Escaped something (something != CR)
960 )* " # closing quote
961 ) # initial word
962 (?: (?: [\040\t] | \(
963 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
964 \) )* \. (?: [\040\t] | \(
965 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
966 \) )* (?:
967 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
968 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
969 |
970 " (?: # opening quote...
971 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
972 | # or
973 \\ [^\x80-\xff] # Escaped something (something != CR)
974 )* " # closing quote
975 ) )* # further okay, if led by a period
976 (?: [\040\t] | \(
977 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
978 \) )* @ (?: [\040\t] | \(
979 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
980 \) )* (?:
981 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
982 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
983 | \[ # [
984 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
985 \] # ]
986 ) # initial subdomain
987 (?: #
988 (?: [\040\t] | \(
989 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
990 \) )* \. # if led by a period...
991 (?: [\040\t] | \(
992 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
993 \) )* (?:
994 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
995 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
996 | \[ # [
997 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
998 \] # ]
999 ) # ...further okay
1000 )*
1001 # address
1002 | # or
1003 (?:
1004 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1005 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1006 |
1007 " (?: # opening quote...
1008 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1009 | # or
1010 \\ [^\x80-\xff] # Escaped something (something != CR)
1011 )* " # closing quote
1012 ) # one word, optionally followed by....
1013 (?:
1014 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
1015 \(
1016 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1017 \) | # comments, or...
1019 " (?: # opening quote...
1020 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1021 | # or
1022 \\ [^\x80-\xff] # Escaped something (something != CR)
1023 )* " # closing quote
1024 # quoted strings
1025 )*
1026 < (?: [\040\t] | \(
1027 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1028 \) )* # leading <
1029 (?: @ (?: [\040\t] | \(
1030 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1031 \) )* (?:
1032 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1033 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1034 | \[ # [
1035 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1036 \] # ]
1037 ) # initial subdomain
1038 (?: #
1039 (?: [\040\t] | \(
1040 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1041 \) )* \. # if led by a period...
1042 (?: [\040\t] | \(
1043 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1044 \) )* (?:
1045 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1046 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1047 | \[ # [
1048 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1049 \] # ]
1050 ) # ...further okay
1051 )*
1053 (?: (?: [\040\t] | \(
1054 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1055 \) )* , (?: [\040\t] | \(
1056 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1057 \) )* @ (?: [\040\t] | \(
1058 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1059 \) )* (?:
1060 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1061 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1062 | \[ # [
1063 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1064 \] # ]
1065 ) # initial subdomain
1066 (?: #
1067 (?: [\040\t] | \(
1068 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1069 \) )* \. # if led by a period...
1070 (?: [\040\t] | \(
1071 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1072 \) )* (?:
1073 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1074 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1075 | \[ # [
1076 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1077 \] # ]
1078 ) # ...further okay
1079 )*
1080 )* # further okay, if led by comma
1081 : # closing colon
1082 (?: [\040\t] | \(
1083 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1084 \) )* )? # optional route
1085 (?:
1086 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1087 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1088 |
1089 " (?: # opening quote...
1090 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1091 | # or
1092 \\ [^\x80-\xff] # Escaped something (something != CR)
1093 )* " # closing quote
1094 ) # initial word
1095 (?: (?: [\040\t] | \(
1096 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1097 \) )* \. (?: [\040\t] | \(
1098 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1099 \) )* (?:
1100 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1101 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1102 |
1103 " (?: # opening quote...
1104 [^\\\x80-\xff\n\015"] # Anything except backslash and quote
1105 | # or
1106 \\ [^\x80-\xff] # Escaped something (something != CR)
1107 )* " # closing quote
1108 ) )* # further okay, if led by a period
1109 (?: [\040\t] | \(
1110 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1111 \) )* @ (?: [\040\t] | \(
1112 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1113 \) )* (?:
1114 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1115 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1116 | \[ # [
1117 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1118 \] # ]
1119 ) # initial subdomain
1120 (?: #
1121 (?: [\040\t] | \(
1122 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1123 \) )* \. # if led by a period...
1124 (?: [\040\t] | \(
1125 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1126 \) )* (?:
1127 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1128 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1129 | \[ # [
1130 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1131 \] # ]
1132 ) # ...further okay
1133 )*
1134 # address spec
1135 (?: [\040\t] | \(
1136 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1137 \) )* > # trailing >
1138 # name and address
1139 ) (?: [\040\t] | \(
1140 (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
1141 \) )* # optional trailing comment
1142 /x
1143 Alan Other <user\@dom.ain>
1144 <user\@dom.ain>
1145 user\@dom.ain
1146 \"A. Other\" <user.1234\@dom.ain> (a comment)
1147 A. Other <user.1234\@dom.ain> (a comment)
1148 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
1149 A missing angle <user\@some.where
1150 *** Failers
1151 The quick brown fox
1153 /[\040\t]* # Nab whitespace.
1154 (?:
1155 \( # (
1156 [^\\\x80-\xff\n\015()] * # normal*
1157 (?: # (
1158 (?: \\ [^\x80-\xff] |
1159 \( # (
1160 [^\\\x80-\xff\n\015()] * # normal*
1161 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1162 \) # )
1163 ) # special
1164 [^\\\x80-\xff\n\015()] * # normal*
1165 )* # )*
1166 \) # )
1167 [\040\t]* )* # If comment found, allow more spaces.
1168 # optional leading comment
1169 (?:
1170 (?:
1171 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1172 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1173 # Atom
1174 | # or
1175 " # "
1176 [^\\\x80-\xff\n\015"] * # normal
1177 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1178 " # "
1179 # Quoted string
1180 )
1181 [\040\t]* # Nab whitespace.
1182 (?:
1183 \( # (
1184 [^\\\x80-\xff\n\015()] * # normal*
1185 (?: # (
1186 (?: \\ [^\x80-\xff] |
1187 \( # (
1188 [^\\\x80-\xff\n\015()] * # normal*
1189 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1190 \) # )
1191 ) # special
1192 [^\\\x80-\xff\n\015()] * # normal*
1193 )* # )*
1194 \) # )
1195 [\040\t]* )* # If comment found, allow more spaces.
1196 (?:
1197 \.
1198 [\040\t]* # Nab whitespace.
1199 (?:
1200 \( # (
1201 [^\\\x80-\xff\n\015()] * # normal*
1202 (?: # (
1203 (?: \\ [^\x80-\xff] |
1204 \( # (
1205 [^\\\x80-\xff\n\015()] * # normal*
1206 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1207 \) # )
1208 ) # special
1209 [^\\\x80-\xff\n\015()] * # normal*
1210 )* # )*
1211 \) # )
1212 [\040\t]* )* # If comment found, allow more spaces.
1213 (?:
1214 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1215 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1216 # Atom
1217 | # or
1218 " # "
1219 [^\\\x80-\xff\n\015"] * # normal
1220 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1221 " # "
1222 # Quoted string
1223 )
1224 [\040\t]* # Nab whitespace.
1225 (?:
1226 \( # (
1227 [^\\\x80-\xff\n\015()] * # normal*
1228 (?: # (
1229 (?: \\ [^\x80-\xff] |
1230 \( # (
1231 [^\\\x80-\xff\n\015()] * # normal*
1232 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1233 \) # )
1234 ) # special
1235 [^\\\x80-\xff\n\015()] * # normal*
1236 )* # )*
1237 \) # )
1238 [\040\t]* )* # If comment found, allow more spaces.
1239 # additional words
1240 )*
1241 @
1242 [\040\t]* # Nab whitespace.
1243 (?:
1244 \( # (
1245 [^\\\x80-\xff\n\015()] * # normal*
1246 (?: # (
1247 (?: \\ [^\x80-\xff] |
1248 \( # (
1249 [^\\\x80-\xff\n\015()] * # normal*
1250 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1251 \) # )
1252 ) # special
1253 [^\\\x80-\xff\n\015()] * # normal*
1254 )* # )*
1255 \) # )
1256 [\040\t]* )* # If comment found, allow more spaces.
1257 (?:
1258 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1259 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1260 |
1261 \[ # [
1262 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1263 \] # ]
1264 )
1265 [\040\t]* # Nab whitespace.
1266 (?:
1267 \( # (
1268 [^\\\x80-\xff\n\015()] * # normal*
1269 (?: # (
1270 (?: \\ [^\x80-\xff] |
1271 \( # (
1272 [^\\\x80-\xff\n\015()] * # normal*
1273 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1274 \) # )
1275 ) # special
1276 [^\\\x80-\xff\n\015()] * # normal*
1277 )* # )*
1278 \) # )
1279 [\040\t]* )* # If comment found, allow more spaces.
1280 # optional trailing comments
1281 (?:
1282 \.
1283 [\040\t]* # Nab whitespace.
1284 (?:
1285 \( # (
1286 [^\\\x80-\xff\n\015()] * # normal*
1287 (?: # (
1288 (?: \\ [^\x80-\xff] |
1289 \( # (
1290 [^\\\x80-\xff\n\015()] * # normal*
1291 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1292 \) # )
1293 ) # special
1294 [^\\\x80-\xff\n\015()] * # normal*
1295 )* # )*
1296 \) # )
1297 [\040\t]* )* # If comment found, allow more spaces.
1298 (?:
1299 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1300 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1301 |
1302 \[ # [
1303 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1304 \] # ]
1305 )
1306 [\040\t]* # Nab whitespace.
1307 (?:
1308 \( # (
1309 [^\\\x80-\xff\n\015()] * # normal*
1310 (?: # (
1311 (?: \\ [^\x80-\xff] |
1312 \( # (
1313 [^\\\x80-\xff\n\015()] * # normal*
1314 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1315 \) # )
1316 ) # special
1317 [^\\\x80-\xff\n\015()] * # normal*
1318 )* # )*
1319 \) # )
1320 [\040\t]* )* # If comment found, allow more spaces.
1321 # optional trailing comments
1322 )*
1323 # address
1324 | # or
1325 (?:
1326 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1327 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1328 # Atom
1329 | # or
1330 " # "
1331 [^\\\x80-\xff\n\015"] * # normal
1332 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1333 " # "
1334 # Quoted string
1335 )
1336 # leading word
1337 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # "normal" atoms and or spaces
1338 (?:
1339 (?:
1340 \( # (
1341 [^\\\x80-\xff\n\015()] * # normal*
1342 (?: # (
1343 (?: \\ [^\x80-\xff] |
1344 \( # (
1345 [^\\\x80-\xff\n\015()] * # normal*
1346 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1347 \) # )
1348 ) # special
1349 [^\\\x80-\xff\n\015()] * # normal*
1350 )* # )*
1351 \) # )
1352 |
1353 " # "
1354 [^\\\x80-\xff\n\015"] * # normal
1355 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1356 " # "
1357 ) # "special" comment or quoted string
1358 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] * # more "normal"
1359 )*
1360 <
1361 [\040\t]* # Nab whitespace.
1362 (?:
1363 \( # (
1364 [^\\\x80-\xff\n\015()] * # normal*
1365 (?: # (
1366 (?: \\ [^\x80-\xff] |
1367 \( # (
1368 [^\\\x80-\xff\n\015()] * # normal*
1369 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1370 \) # )
1371 ) # special
1372 [^\\\x80-\xff\n\015()] * # normal*
1373 )* # )*
1374 \) # )
1375 [\040\t]* )* # If comment found, allow more spaces.
1376 # <
1377 (?:
1378 @
1379 [\040\t]* # Nab whitespace.
1380 (?:
1381 \( # (
1382 [^\\\x80-\xff\n\015()] * # normal*
1383 (?: # (
1384 (?: \\ [^\x80-\xff] |
1385 \( # (
1386 [^\\\x80-\xff\n\015()] * # normal*
1387 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1388 \) # )
1389 ) # special
1390 [^\\\x80-\xff\n\015()] * # normal*
1391 )* # )*
1392 \) # )
1393 [\040\t]* )* # If comment found, allow more spaces.
1394 (?:
1395 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1396 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1397 |
1398 \[ # [
1399 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1400 \] # ]
1401 )
1402 [\040\t]* # Nab whitespace.
1403 (?:
1404 \( # (
1405 [^\\\x80-\xff\n\015()] * # normal*
1406 (?: # (
1407 (?: \\ [^\x80-\xff] |
1408 \( # (
1409 [^\\\x80-\xff\n\015()] * # normal*
1410 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1411 \) # )
1412 ) # special
1413 [^\\\x80-\xff\n\015()] * # normal*
1414 )* # )*
1415 \) # )
1416 [\040\t]* )* # If comment found, allow more spaces.
1417 # optional trailing comments
1418 (?:
1419 \.
1420 [\040\t]* # Nab whitespace.
1421 (?:
1422 \( # (
1423 [^\\\x80-\xff\n\015()] * # normal*
1424 (?: # (
1425 (?: \\ [^\x80-\xff] |
1426 \( # (
1427 [^\\\x80-\xff\n\015()] * # normal*
1428 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1429 \) # )
1430 ) # special
1431 [^\\\x80-\xff\n\015()] * # normal*
1432 )* # )*
1433 \) # )
1434 [\040\t]* )* # If comment found, allow more spaces.
1435 (?:
1436 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1437 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1438 |
1439 \[ # [
1440 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1441 \] # ]
1442 )
1443 [\040\t]* # Nab whitespace.
1444 (?:
1445 \( # (
1446 [^\\\x80-\xff\n\015()] * # normal*
1447 (?: # (
1448 (?: \\ [^\x80-\xff] |
1449 \( # (
1450 [^\\\x80-\xff\n\015()] * # normal*
1451 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1452 \) # )
1453 ) # special
1454 [^\\\x80-\xff\n\015()] * # normal*
1455 )* # )*
1456 \) # )
1457 [\040\t]* )* # If comment found, allow more spaces.
1458 # optional trailing comments
1459 )*
1460 (?: ,
1461 [\040\t]* # Nab whitespace.
1462 (?:
1463 \( # (
1464 [^\\\x80-\xff\n\015()] * # normal*
1465 (?: # (
1466 (?: \\ [^\x80-\xff] |
1467 \( # (
1468 [^\\\x80-\xff\n\015()] * # normal*
1469 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1470 \) # )
1471 ) # special
1472 [^\\\x80-\xff\n\015()] * # normal*
1473 )* # )*
1474 \) # )
1475 [\040\t]* )* # If comment found, allow more spaces.
1476 @
1477 [\040\t]* # Nab whitespace.
1478 (?:
1479 \( # (
1480 [^\\\x80-\xff\n\015()] * # normal*
1481 (?: # (
1482 (?: \\ [^\x80-\xff] |
1483 \( # (
1484 [^\\\x80-\xff\n\015()] * # normal*
1485 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1486 \) # )
1487 ) # special
1488 [^\\\x80-\xff\n\015()] * # normal*
1489 )* # )*
1490 \) # )
1491 [\040\t]* )* # If comment found, allow more spaces.
1492 (?:
1493 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1494 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1495 |
1496 \[ # [
1497 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1498 \] # ]
1499 )
1500 [\040\t]* # Nab whitespace.
1501 (?:
1502 \( # (
1503 [^\\\x80-\xff\n\015()] * # normal*
1504 (?: # (
1505 (?: \\ [^\x80-\xff] |
1506 \( # (
1507 [^\\\x80-\xff\n\015()] * # normal*
1508 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1509 \) # )
1510 ) # special
1511 [^\\\x80-\xff\n\015()] * # normal*
1512 )* # )*
1513 \) # )
1514 [\040\t]* )* # If comment found, allow more spaces.
1515 # optional trailing comments
1516 (?:
1517 \.
1518 [\040\t]* # Nab whitespace.
1519 (?:
1520 \( # (
1521 [^\\\x80-\xff\n\015()] * # normal*
1522 (?: # (
1523 (?: \\ [^\x80-\xff] |
1524 \( # (
1525 [^\\\x80-\xff\n\015()] * # normal*
1526 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1527 \) # )
1528 ) # special
1529 [^\\\x80-\xff\n\015()] * # normal*
1530 )* # )*
1531 \) # )
1532 [\040\t]* )* # If comment found, allow more spaces.
1533 (?:
1534 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1535 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1536 |
1537 \[ # [
1538 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1539 \] # ]
1540 )
1541 [\040\t]* # Nab whitespace.
1542 (?:
1543 \( # (
1544 [^\\\x80-\xff\n\015()] * # normal*
1545 (?: # (
1546 (?: \\ [^\x80-\xff] |
1547 \( # (
1548 [^\\\x80-\xff\n\015()] * # normal*
1549 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1550 \) # )
1551 ) # special
1552 [^\\\x80-\xff\n\015()] * # normal*
1553 )* # )*
1554 \) # )
1555 [\040\t]* )* # If comment found, allow more spaces.
1556 # optional trailing comments
1557 )*
1558 )* # additional domains
1559 :
1560 [\040\t]* # Nab whitespace.
1561 (?:
1562 \( # (
1563 [^\\\x80-\xff\n\015()] * # normal*
1564 (?: # (
1565 (?: \\ [^\x80-\xff] |
1566 \( # (
1567 [^\\\x80-\xff\n\015()] * # normal*
1568 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1569 \) # )
1570 ) # special
1571 [^\\\x80-\xff\n\015()] * # normal*
1572 )* # )*
1573 \) # )
1574 [\040\t]* )* # If comment found, allow more spaces.
1575 # optional trailing comments
1576 )? # optional route
1577 (?:
1578 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1579 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1580 # Atom
1581 | # or
1582 " # "
1583 [^\\\x80-\xff\n\015"] * # normal
1584 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1585 " # "
1586 # Quoted string
1587 )
1588 [\040\t]* # Nab whitespace.
1589 (?:
1590 \( # (
1591 [^\\\x80-\xff\n\015()] * # normal*
1592 (?: # (
1593 (?: \\ [^\x80-\xff] |
1594 \( # (
1595 [^\\\x80-\xff\n\015()] * # normal*
1596 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1597 \) # )
1598 ) # special
1599 [^\\\x80-\xff\n\015()] * # normal*
1600 )* # )*
1601 \) # )
1602 [\040\t]* )* # If comment found, allow more spaces.
1603 (?:
1604 \.
1605 [\040\t]* # Nab whitespace.
1606 (?:
1607 \( # (
1608 [^\\\x80-\xff\n\015()] * # normal*
1609 (?: # (
1610 (?: \\ [^\x80-\xff] |
1611 \( # (
1612 [^\\\x80-\xff\n\015()] * # normal*
1613 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1614 \) # )
1615 ) # special
1616 [^\\\x80-\xff\n\015()] * # normal*
1617 )* # )*
1618 \) # )
1619 [\040\t]* )* # If comment found, allow more spaces.
1620 (?:
1621 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1622 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1623 # Atom
1624 | # or
1625 " # "
1626 [^\\\x80-\xff\n\015"] * # normal
1627 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015"] * )* # ( special normal* )*
1628 " # "
1629 # Quoted string
1630 )
1631 [\040\t]* # Nab whitespace.
1632 (?:
1633 \( # (
1634 [^\\\x80-\xff\n\015()] * # normal*
1635 (?: # (
1636 (?: \\ [^\x80-\xff] |
1637 \( # (
1638 [^\\\x80-\xff\n\015()] * # normal*
1639 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1640 \) # )
1641 ) # special
1642 [^\\\x80-\xff\n\015()] * # normal*
1643 )* # )*
1644 \) # )
1645 [\040\t]* )* # If comment found, allow more spaces.
1646 # additional words
1647 )*
1648 @
1649 [\040\t]* # Nab whitespace.
1650 (?:
1651 \( # (
1652 [^\\\x80-\xff\n\015()] * # normal*
1653 (?: # (
1654 (?: \\ [^\x80-\xff] |
1655 \( # (
1656 [^\\\x80-\xff\n\015()] * # normal*
1657 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1658 \) # )
1659 ) # special
1660 [^\\\x80-\xff\n\015()] * # normal*
1661 )* # )*
1662 \) # )
1663 [\040\t]* )* # If comment found, allow more spaces.
1664 (?:
1665 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1666 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1667 |
1668 \[ # [
1669 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1670 \] # ]
1671 )
1672 [\040\t]* # Nab whitespace.
1673 (?:
1674 \( # (
1675 [^\\\x80-\xff\n\015()] * # normal*
1676 (?: # (
1677 (?: \\ [^\x80-\xff] |
1678 \( # (
1679 [^\\\x80-\xff\n\015()] * # normal*
1680 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1681 \) # )
1682 ) # special
1683 [^\\\x80-\xff\n\015()] * # normal*
1684 )* # )*
1685 \) # )
1686 [\040\t]* )* # If comment found, allow more spaces.
1687 # optional trailing comments
1688 (?:
1689 \.
1690 [\040\t]* # Nab whitespace.
1691 (?:
1692 \( # (
1693 [^\\\x80-\xff\n\015()] * # normal*
1694 (?: # (
1695 (?: \\ [^\x80-\xff] |
1696 \( # (
1697 [^\\\x80-\xff\n\015()] * # normal*
1698 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1699 \) # )
1700 ) # special
1701 [^\\\x80-\xff\n\015()] * # normal*
1702 )* # )*
1703 \) # )
1704 [\040\t]* )* # If comment found, allow more spaces.
1705 (?:
1706 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
1707 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
1708 |
1709 \[ # [
1710 (?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
1711 \] # ]
1712 )
1713 [\040\t]* # Nab whitespace.
1714 (?:
1715 \( # (
1716 [^\\\x80-\xff\n\015()] * # normal*
1717 (?: # (
1718 (?: \\ [^\x80-\xff] |
1719 \( # (
1720 [^\\\x80-\xff\n\015()] * # normal*
1721 (?: \\ [^\x80-\xff] [^\\\x80-\xff\n\015()] * )* # (special normal*)*
1722 \) # )
1723 ) # special
1724 [^\\\x80-\xff\n\015()] * # normal*
1725 )* # )*
1726 \) # )
1727 [\040\t]* )* # If comment found, allow more spaces.
1728 # optional trailing comments
1729 )*
1730 # address spec
1731 > # >
1732 # name and address
1733 )
1734 /x
1735 Alan Other <user\@dom.ain>
1736 <user\@dom.ain>
1737 user\@dom.ain
1738 \"A. Other\" <user.1234\@dom.ain> (a comment)
1739 A. Other <user.1234\@dom.ain> (a comment)
1740 \"/s=user/ou=host/o=place/prmd=uu.yy/admd= /c=gb/\"\@x400-re.lay
1741 A missing angle <user\@some.where
1742 *** Failers
1743 The quick brown fox
1745 /abc\0def\00pqr\000xyz\0000AB/
1746 abc\0def\00pqr\000xyz\0000AB
1747 abc456 abc\0def\00pqr\000xyz\0000ABCDE
1749 /abc\x0def\x00pqr\x000xyz\x0000AB/
1750 abc\x0def\x00pqr\x000xyz\x0000AB
1751 abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
1753 /^[\000-\037]/
1754 \0A
1755 \01B
1756 \037C
1758 /\0*/
1759 \0\0\0\0
1761 /A\x0{2,3}Z/
1762 The A\x0\x0Z
1763 An A\0\x0\0Z
1764 *** Failers
1765 A\0Z
1766 A\0\x0\0\x0Z
1768 /^\s/
1769 \040abc
1770 \x0cabc
1771 \nabc
1772 \rabc
1773 \tabc
1774 *** Failers
1775 abc
1777 /^a b
1778 c/x
1779 abc
1781 /ab{1,3}bc/
1782 abbbbc
1783 abbbc
1784 abbc
1785 *** Failers
1786 abc
1787 abbbbbc
1789 /([^.]*)\.([^:]*):[T ]+(.*)/
1790 track1.title:TBlah blah blah
1792 /([^.]*)\.([^:]*):[T ]+(.*)/i
1793 track1.title:TBlah blah blah
1795 /([^.]*)\.([^:]*):[t ]+(.*)/i
1796 track1.title:TBlah blah blah
1798 /^[W-c]+$/
1799 WXY_^abc
1800 *** Failers
1801 wxy
1803 /^[W-c]+$/i
1804 WXY_^abc
1805 wxy_^ABC
1807 /^[\x3f-\x5F]+$/i
1808 WXY_^abc
1809 wxy_^ABC
1811 /^abc$/m
1812 abc
1813 qqq\nabc
1814 abc\nzzz
1815 qqq\nabc\nzzz
1817 /^abc$/
1818 abc
1819 *** Failers
1820 qqq\nabc
1821 abc\nzzz
1822 qqq\nabc\nzzz
1824 /\Aabc\Z/m
1825 abc
1826 abc\n
1827 *** Failers
1828 qqq\nabc
1829 abc\nzzz
1830 qqq\nabc\nzzz
1832 /\A(.)*\Z/s
1833 abc\ndef
1835 /\A(.)*\Z/m
1836 *** Failers
1837 abc\ndef
1839 /(?:b)|(?::+)/
1840 b::c
1841 c::b
1843 /[-az]+/
1844 az-
1845 *** Failers
1846 b
1848 /[az-]+/
1849 za-
1850 *** Failers
1851 b
1853 /[a\-z]+/
1854 a-z
1855 *** Failers
1856 b
1858 /[a-z]+/
1859 abcdxyz
1861 /[\d-]+/
1862 12-34
1863 *** Failers
1864 aaa
1866 /[\d-z]+/
1867 12-34z
1868 *** Failers
1869 aaa
1871 /\x5c/
1872 \\
1874 /\x20Z/
1875 the Zoo
1876 *** Failers
1877 Zulu
1879 /ab{3cd/
1880 ab{3cd
1882 /ab{3,cd/
1883 ab{3,cd
1885 /ab{3,4a}cd/
1886 ab{3,4a}cd
1888 /{4,5a}bc/
1889 {4,5a}bc
1891 /^a.b/<lf>
1892 a\rb
1893 *** Failers
1894 a\nb
1896 /abc$/
1897 abc
1898 abc\n
1899 *** Failers
1900 abc\ndef
1902 /(abc)\123/
1903 abc\x53
1905 /(abc)\223/
1906 abc\x93
1908 /(abc)\323/
1909 abc\xd3
1911 /(abc)\100/
1912 abc\x40
1913 abc\100
1915 /(abc)\1000/
1916 abc\x400
1917 abc\x40\x30
1918 abc\1000
1919 abc\100\x30
1920 abc\100\060
1921 abc\100\60
1923 /abc\81/
1924 abc\081
1925 abc\0\x38\x31
1927 /abc\91/
1928 abc\091
1929 abc\0\x39\x31
1931 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
1932 abcdefghijk\12S
1934 /ab\idef/
1935 abidef
1937 /a{0}bc/
1938 bc
1940 /(a|(bc)){0,0}?xyz/
1941 xyz
1943 /abc[\10]de/
1944 abc\010de
1946 /abc[\1]de/
1947 abc\1de
1949 /(abc)[\1]de/
1950 abc\1de
1952 /(?s)a.b/
1953 a\nb
1955 /^([^a])([^\b])([^c]*)([^d]{3,4})/
1956 baNOTccccd
1957 baNOTcccd
1958 baNOTccd
1959 bacccd
1960 *** Failers
1961 anything
1962 b\bc
1963 baccd
1965 /[^a]/
1966 Abc
1968 /[^a]/i
1969 Abc
1971 /[^a]+/
1972 AAAaAbc
1974 /[^a]+/i
1975 AAAaAbc
1977 /[^a]+/
1978 bbb\nccc
1980 /[^k]$/
1981 abc
1982 *** Failers
1983 abk
1985 /[^k]{2,3}$/
1986 abc
1987 kbc
1988 kabc
1989 *** Failers
1990 abk
1991 akb
1992 akk
1994 /^\d{8,}\@.+[^k]$/
1995 12345678\@a.b.c.d
1996 123456789\@x.y.z
1997 *** Failers
1998 12345678\@x.y.uk
1999 1234567\@a.b.c.d
2001 /[^a]/
2002 aaaabcd
2003 aaAabcd
2005 /[^a]/i
2006 aaaabcd
2007 aaAabcd
2009 /[^az]/
2010 aaaabcd
2011 aaAabcd
2013 /[^az]/i
2014 aaaabcd
2015 aaAabcd
2017 /\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/
2018 \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
2020 /P[^*]TAIRE[^*]{1,6}?LL/
2021 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
2023 /P[^*]TAIRE[^*]{1,}?LL/
2024 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
2026 /(\.\d\d[1-9]?)\d+/
2027 1.230003938
2028 1.875000282
2029 1.235
2031 /(\.\d\d((?=0)|\d(?=\d)))/
2032 1.230003938
2033 1.875000282
2034 *** Failers
2035 1.235
2037 /a(?)b/
2038 ab
2040 /\b(foo)\s+(\w+)/i
2041 Food is on the foo table
2043 /foo(.*)bar/
2044 The food is under the bar in the barn.
2046 /foo(.*?)bar/
2047 The food is under the bar in the barn.
2049 /(.*)(\d*)/
2050 I have 2 numbers: 53147
2052 /(.*)(\d+)/
2053 I have 2 numbers: 53147
2055 /(.*?)(\d*)/
2056 I have 2 numbers: 53147
2058 /(.*?)(\d+)/
2059 I have 2 numbers: 53147
2061 /(.*)(\d+)$/
2062 I have 2 numbers: 53147
2064 /(.*?)(\d+)$/
2065 I have 2 numbers: 53147
2067 /(.*)\b(\d+)$/
2068 I have 2 numbers: 53147
2070 /(.*\D)(\d+)$/
2071 I have 2 numbers: 53147
2073 /^\D*(?!123)/
2074 ABC123
2076 /^(\D*)(?=\d)(?!123)/
2077 ABC445
2078 *** Failers
2079 ABC123
2081 /^[W-]46]/
2082 W46]789
2083 -46]789
2084 *** Failers
2085 Wall
2086 Zebra
2087 42
2088 [abcd]
2089 ]abcd[
2091 /^[W-\]46]/
2092 W46]789
2093 Wall
2094 Zebra
2095 Xylophone
2096 42
2097 [abcd]
2098 ]abcd[
2099 \\backslash
2100 *** Failers
2101 -46]789
2102 well
2104 /\d\d\/\d\d\/\d\d\d\d/
2105 01/01/2000
2107 /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
2108 word cat dog elephant mussel cow horse canary baboon snake shark otherword
2109 word cat dog elephant mussel cow horse canary baboon snake shark
2111 /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
2112 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
2114 /^(a){0,0}/
2115 bcd
2116 abc
2117 aab
2119 /^(a){0,1}/
2120 bcd
2121 abc
2122 aab
2124 /^(a){0,2}/
2125 bcd
2126 abc
2127 aab
2129 /^(a){0,3}/
2130 bcd
2131 abc
2132 aab
2133 aaa
2135 /^(a){0,}/
2136 bcd
2137 abc
2138 aab
2139 aaa
2140 aaaaaaaa
2142 /^(a){1,1}/
2143 bcd
2144 abc
2145 aab
2147 /^(a){1,2}/
2148 bcd
2149 abc
2150 aab
2152 /^(a){1,3}/
2153 bcd
2154 abc
2155 aab
2156 aaa
2158 /^(a){1,}/
2159 bcd
2160 abc
2161 aab
2162 aaa
2163 aaaaaaaa
2165 /.*\.gif/
2166 borfle\nbib.gif\nno
2168 /.{0,}\.gif/
2169 borfle\nbib.gif\nno
2171 /.*\.gif/m
2172 borfle\nbib.gif\nno
2174 /.*\.gif/s
2175 borfle\nbib.gif\nno
2177 /.*\.gif/ms
2178 borfle\nbib.gif\nno
2180 /.*$/
2181 borfle\nbib.gif\nno
2183 /.*$/m
2184 borfle\nbib.gif\nno
2186 /.*$/s
2187 borfle\nbib.gif\nno
2189 /.*$/ms
2190 borfle\nbib.gif\nno
2192 /.*$/
2193 borfle\nbib.gif\nno\n
2195 /.*$/m
2196 borfle\nbib.gif\nno\n
2198 /.*$/s
2199 borfle\nbib.gif\nno\n
2201 /.*$/ms
2202 borfle\nbib.gif\nno\n
2204 /(.*X|^B)/
2205 abcde\n1234Xyz
2206 BarFoo
2207 *** Failers
2208 abcde\nBar
2210 /(.*X|^B)/m
2211 abcde\n1234Xyz
2212 BarFoo
2213 abcde\nBar
2215 /(.*X|^B)/s
2216 abcde\n1234Xyz
2217 BarFoo
2218 *** Failers
2219 abcde\nBar
2221 /(.*X|^B)/ms
2222 abcde\n1234Xyz
2223 BarFoo
2224 abcde\nBar
2226 /(?s)(.*X|^B)/
2227 abcde\n1234Xyz
2228 BarFoo
2229 *** Failers
2230 abcde\nBar
2232 /(?s:.*X|^B)/
2233 abcde\n1234Xyz
2234 BarFoo
2235 *** Failers
2236 abcde\nBar
2238 /^.*B/
2239 **** Failers
2240 abc\nB
2242 /(?s)^.*B/
2243 abc\nB
2245 /(?m)^.*B/
2246 abc\nB
2248 /(?ms)^.*B/
2249 abc\nB
2251 /(?ms)^B/
2252 abc\nB
2254 /(?s)B$/
2255 B\n
2257 /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
2258 123456654321
2260 /^\d\d\d\d\d\d\d\d\d\d\d\d/
2261 123456654321
2263 /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
2264 123456654321
2266 /^[abc]{12}/
2267 abcabcabcabc
2269 /^[a-c]{12}/
2270 abcabcabcabc
2272 /^(a|b|c){12}/
2273 abcabcabcabc
2275 /^[abcdefghijklmnopqrstuvwxy0123456789]/
2276 n
2277 *** Failers
2278 z
2280 /abcde{0,0}/
2281 abcd
2282 *** Failers
2283 abce
2285 /ab[cd]{0,0}e/
2286 abe
2287 *** Failers
2288 abcde
2290 /ab(c){0,0}d/
2291 abd
2292 *** Failers
2293 abcd
2295 /a(b*)/
2296 a
2297 ab
2298 abbbb
2299 *** Failers
2300 bbbbb
2302 /ab\d{0}e/
2303 abe
2304 *** Failers
2305 ab1e
2307 /"([^\\"]+|\\.)*"/
2308 the \"quick\" brown fox
2309 \"the \\\"quick\\\" brown fox\"
2311 /.*?/g+
2312 abc
2314 /\b/g+
2315 abc
2317 /\b/+g
2318 abc
2320 //g
2321 abc
2323 /<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
2324 <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>
2326 /a[^a]b/
2327 acb
2328 a\nb
2330 /a.b/
2331 acb
2332 *** Failers
2333 a\nb
2335 /a[^a]b/s
2336 acb
2337 a\nb
2339 /a.b/s
2340 acb
2341 a\nb
2343 /^(b+?|a){1,2}?c/
2344 bac
2345 bbac
2346 bbbac
2347 bbbbac
2348 bbbbbac
2350 /^(b+|a){1,2}?c/
2351 bac
2352 bbac
2353 bbbac
2354 bbbbac
2355 bbbbbac
2357 /(?!\A)x/m
2358 x\nb\n
2359 a\bx\n
2361 /\x0{ab}/
2362 \0{ab}
2364 /(A|B)*?CD/
2365 CD
2367 /(A|B)*CD/
2368 CD
2370 /(?<!bar)foo/
2371 foo
2372 catfood
2373 arfootle
2374 rfoosh
2375 *** Failers
2376 barfoo
2377 towbarfoo
2379 /\w{3}(?<!bar)foo/
2380 catfood
2381 *** Failers
2382 foo
2383 barfoo
2384 towbarfoo
2386 /(?<=(foo)a)bar/
2387 fooabar
2388 *** Failers
2389 bar
2390 foobbar
2392 /\Aabc\z/m
2393 abc
2394 *** Failers
2395 abc\n
2396 qqq\nabc
2397 abc\nzzz
2398 qqq\nabc\nzzz
2400 "(?>.*/)foo"
2401 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
2403 "(?>.*/)foo"
2404 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
2406 /(?>(\.\d\d[1-9]?))\d+/
2407 1.230003938
2408 1.875000282
2409 *** Failers
2410 1.235
2412 /^((?>\w+)|(?>\s+))*$/
2413 now is the time for all good men to come to the aid of the party
2414 *** Failers
2415 this is not a line with only words and spaces!
2417 /(\d+)(\w)/
2418 12345a
2419 12345+
2421 /((?>\d+))(\w)/
2422 12345a
2423 *** Failers
2424 12345+
2426 /(?>a+)b/
2427 aaab
2429 /((?>a+)b)/
2430 aaab
2432 /(?>(a+))b/
2433 aaab
2435 /(?>b)+/
2436 aaabbbccc
2438 /(?>a+|b+|c+)*c/
2439 aaabbbbccccd
2441 /(a+|b+|c+)*c/
2442 aaabbbbccccd
2444 /((?>[^()]+)|\([^()]*\))+/
2445 ((abc(ade)ufh()()x
2447 /\(((?>[^()]+)|\([^()]+\))+\)/
2448 (abc)
2449 (abc(def)xyz)
2450 *** Failers
2451 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2453 /a(?-i)b/i
2454 ab
2455 Ab
2456 *** Failers
2457 aB
2458 AB
2460 /(a (?x)b c)d e/
2461 a bcd e
2462 *** Failers
2463 a b cd e
2464 abcd e
2465 a bcde
2467 /(a b(?x)c d (?-x)e f)/
2468 a bcde f
2469 *** Failers
2470 abcdef
2472 /(a(?i)b)c/
2473 abc
2474 aBc
2475 *** Failers
2476 abC
2477 aBC
2478 Abc
2479 ABc
2480 ABC
2481 AbC
2483 /a(?i:b)c/
2484 abc
2485 aBc
2486 *** Failers
2487 ABC
2488 abC
2489 aBC
2491 /a(?i:b)*c/
2492 aBc
2493 aBBc
2494 *** Failers
2495 aBC
2496 aBBC
2498 /a(?=b(?i)c)\w\wd/
2499 abcd
2500 abCd
2501 *** Failers
2502 aBCd
2503 abcD
2505 /(?s-i:more.*than).*million/i
2506 more than million
2507 more than MILLION
2508 more \n than Million
2509 *** Failers
2510 MORE THAN MILLION
2511 more \n than \n million
2513 /(?:(?s-i)more.*than).*million/i
2514 more than million
2515 more than MILLION
2516 more \n than Million
2517 *** Failers
2518 MORE THAN MILLION
2519 more \n than \n million
2521 /(?>a(?i)b+)+c/
2522 abc
2523 aBbc
2524 aBBc
2525 *** Failers
2526 Abc
2527 abAb
2528 abbC
2530 /(?=a(?i)b)\w\wc/
2531 abc
2532 aBc
2533 *** Failers
2534 Ab
2535 abC
2536 aBC
2538 /(?<=a(?i)b)(\w\w)c/
2539 abxxc
2540 aBxxc
2541 *** Failers
2542 Abxxc
2543 ABxxc
2544 abxxC
2546 /^(?(?=abc)\w{3}:|\d\d)$/
2547 abc:
2548 12
2549 *** Failers
2550 123
2551 xyz
2553 /^(?(?!abc)\d\d|\w{3}:)$/
2554 abc:
2555 12
2556 *** Failers
2557 123
2558 xyz
2560 /(?(?<=foo)bar|cat)/
2561 foobar
2562 cat
2563 fcat
2564 focat
2565 *** Failers
2566 foocat
2568 /(?(?<!foo)cat|bar)/
2569 foobar
2570 cat
2571 fcat
2572 focat
2573 *** Failers
2574 foocat
2576 /(?>a*)*/
2577 a
2578 aa
2579 aaaa
2581 /(abc|)+/
2582 abc
2583 abcabc
2584 abcabcabc
2585 xyz
2587 /([a]*)*/
2588 a
2589 aaaaa
2591 /([ab]*)*/
2592 a
2593 b
2594 ababab
2595 aaaabcde
2596 bbbb
2598 /([^a]*)*/
2599 b
2600 bbbb
2601 aaa
2603 /([^ab]*)*/
2604 cccc
2605 abab
2607 /([a]*?)*/
2608 a
2609 aaaa
2611 /([ab]*?)*/
2612 a
2613 b
2614 abab
2615 baba
2617 /([^a]*?)*/
2618 b
2619 bbbb
2620 aaa
2622 /([^ab]*?)*/
2623 c
2624 cccc
2625 baba
2627 /(?>a*)*/
2628 a
2629 aaabcde
2631 /((?>a*))*/
2632 aaaaa
2633 aabbaa
2635 /((?>a*?))*/
2636 aaaaa
2637 aabbaa
2639 /(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /x
2640 12-sep-98
2641 12-09-98
2642 *** Failers
2643 sep-12-98
2645 /(?i:saturday|sunday)/
2646 saturday
2647 sunday
2648 Saturday
2649 Sunday
2650 SATURDAY
2651 SUNDAY
2652 SunDay
2654 /(a(?i)bc|BB)x/
2655 abcx
2656 aBCx
2657 bbx
2658 BBx
2659 *** Failers
2660 abcX
2661 aBCX
2662 bbX
2663 BBX
2665 /^([ab](?i)[cd]|[ef])/
2666 ac
2667 aC
2668 bD
2669 elephant
2670 Europe
2671 frog
2672 France
2673 *** Failers
2674 Africa
2676 /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
2677 ab
2678 aBd
2679 xy
2680 xY
2681 zebra
2682 Zambesi
2683 *** Failers
2684 aCD
2685 XY
2687 /(?<=foo\n)^bar/m
2688 foo\nbar
2689 *** Failers
2690 bar
2691 baz\nbar
2693 /(?<=(?<!foo)bar)baz/
2694 barbaz
2695 barbarbaz
2696 koobarbaz
2697 *** Failers
2698 baz
2699 foobarbaz
2701 /The following tests are taken from the Perl 5.005 test suite; some of them/
2702 /are compatible with 5.004, but I'd rather not have to sort them out./
2704 /abc/
2705 abc
2706 xabcy
2707 ababc
2708 *** Failers
2709 xbc
2710 axc
2711 abx
2713 /ab*c/
2714 abc
2716 /ab*bc/
2717 abc
2718 abbc
2719 abbbbc
2721 /.{1}/
2722 abbbbc
2724 /.{3,4}/
2725 abbbbc
2727 /ab{0,}bc/
2728 abbbbc
2730 /ab+bc/
2731 abbc
2732 *** Failers
2733 abc
2734 abq
2736 /ab+bc/
2737 abbbbc
2739 /ab{1,}bc/
2740 abbbbc
2742 /ab{1,3}bc/
2743 abbbbc
2745 /ab{3,4}bc/
2746 abbbbc
2748 /ab{4,5}bc/
2749 *** Failers
2750 abq
2751 abbbbc
2753 /ab?bc/
2754 abbc
2755 abc
2757 /ab{0,1}bc/
2758 abc
2760 /ab?bc/
2762 /ab?c/
2763 abc
2765 /ab{0,1}c/
2766 abc
2768 /^abc$/
2769 abc
2770 *** Failers
2771 abbbbc
2772 abcc
2774 /^abc/
2775 abcc
2777 /^abc$/
2779 /abc$/
2780 aabc
2781 *** Failers
2782 aabc
2783 aabcd
2785 /^/
2786 abc
2788 /$/
2789 abc
2791 /a.c/
2792 abc
2793 axc
2795 /a.*c/
2796 axyzc
2798 /a[bc]d/
2799 abd
2800 *** Failers
2801 axyzd
2802 abc
2804 /a[b-d]e/
2805 ace
2807 /a[b-d]/
2808 aac
2810 /a[-b]/
2811 a-
2813 /a[b-]/
2814 a-
2816 /a]/
2817 a]
2819 /a[]]b/
2820 a]b
2822 /a[^bc]d/
2823 aed
2824 *** Failers
2825 abd
2826 abd
2828 /a[^-b]c/
2829 adc
2831 /a[^]b]c/
2832 adc
2833 *** Failers
2834 a-c
2835 a]c
2837 /\ba\b/
2838 a-
2839 -a
2840 -a-
2842 /\by\b/
2843 *** Failers
2844 xy
2845 yz
2846 xyz
2848 /\Ba\B/
2849 *** Failers
2850 a-
2851 -a
2852 -a-
2854 /\By\b/
2855 xy
2857 /\by\B/
2858 yz
2860 /\By\B/
2861 xyz
2863 /\w/
2864 a
2866 /\W/
2867 -
2868 *** Failers
2869 -
2870 a
2872 /a\sb/
2873 a b
2875 /a\Sb/
2876 a-b
2877 *** Failers
2878 a-b
2879 a b
2881 /\d/
2882 1
2884 /\D/
2885 -
2886 *** Failers
2887 -
2888 1
2890 /[\w]/
2891 a
2893 /[\W]/
2894 -
2895 *** Failers
2896 -
2897 a
2899 /a[\s]b/
2900 a b
2902 /a[\S]b/
2903 a-b
2904 *** Failers
2905 a-b
2906 a b
2908 /[\d]/
2909 1
2911 /[\D]/
2912 -
2913 *** Failers
2914 -
2915 1
2917 /ab|cd/
2918 abc
2919 abcd
2921 /()ef/
2922 def
2924 /$b/
2926 /a\(b/
2927 a(b
2929 /a\(*b/
2930 ab
2931 a((b
2933 /a\\b/
2934 a\b
2936 /((a))/
2937 abc
2939 /(a)b(c)/
2940 abc
2942 /a+b+c/
2943 aabbabc
2945 /a{1,}b{1,}c/
2946 aabbabc
2948 /a.+?c/
2949 abcabc
2951 /(a+|b)*/
2952 ab
2954 /(a+|b){0,}/
2955 ab
2957 /(a+|b)+/
2958 ab
2960 /(a+|b){1,}/
2961 ab
2963 /(a+|b)?/
2964 ab
2966 /(a+|b){0,1}/
2967 ab
2969 /[^ab]*/
2970 cde
2972 /abc/
2973 *** Failers
2974 b
2977 /a*/
2980 /([abc])*d/
2981 abbbcd
2983 /([abc])*bcd/
2984 abcd
2986 /a|b|c|d|e/
2987 e
2989 /(a|b|c|d|e)f/
2990 ef
2992 /abcd*efg/
2993 abcdefg
2995 /ab*/
2996 xabyabbbz
2997 xayabbbz
2999 /(ab|cd)e/
3000 abcde
3002 /[abhgefdc]ij/
3003 hij
3005 /^(ab|cd)e/
3007 /(abc|)ef/
3008 abcdef
3010 /(a|b)c*d/
3011 abcd
3013 /(ab|ab*)bc/
3014 abc
3016 /a([bc]*)c*/
3017 abc
3019 /a([bc]*)(c*d)/
3020 abcd
3022 /a([bc]+)(c*d)/
3023 abcd
3025 /a([bc]*)(c+d)/
3026 abcd
3028 /a[bcd]*dcdcde/
3029 adcdcde
3031 /a[bcd]+dcdcde/
3032 *** Failers
3033 abcde
3034 adcdcde
3036 /(ab|a)b*c/
3037 abc
3039 /((a)(b)c)(d)/
3040 abcd
3042 /[a-zA-Z_][a-zA-Z0-9_]*/
3043 alpha
3045 /^a(bc+|b[eh])g|.h$/
3046 abh
3048 /(bc+d$|ef*g.|h?i(j|k))/
3049 effgz
3050 ij
3051 reffgz
3052 *** Failers
3053 effg
3054 bcdd
3056 /((((((((((a))))))))))/
3057 a
3059 /(((((((((a)))))))))/
3060 a
3062 /multiple words of text/
3063 *** Failers
3064 aa
3065 uh-uh
3067 /multiple words/
3068 multiple words, yeah
3070 /(.*)c(.*)/
3071 abcde
3073 /\((.*), (.*)\)/
3074 (a, b)
3076 /[k]/
3078 /abcd/
3079 abcd
3081 /a(bc)d/
3082 abcd
3084 /a[-]?c/
3085 ac
3087 /abc/i
3088 ABC
3089 XABCY
3090 ABABC
3091 *** Failers
3092 aaxabxbaxbbx
3093 XBC
3094 AXC
3095 ABX
3097 /ab*c/i
3098 ABC
3100 /ab*bc/i
3101 ABC
3102 ABBC
3104 /ab*?bc/i
3105 ABBBBC
3107 /ab{0,}?bc/i
3108 ABBBBC
3110 /ab+?bc/i
3111 ABBC
3113 /ab+bc/i
3114 *** Failers
3115 ABC
3116 ABQ
3118 /ab{1,}bc/i
3120 /ab+bc/i
3121 ABBBBC
3123 /ab{1,}?bc/i
3124 ABBBBC
3126 /ab{1,3}?bc/i
3127 ABBBBC
3129 /ab{3,4}?bc/i
3130 ABBBBC
3132 /ab{4,5}?bc/i
3133 *** Failers
3134 ABQ
3135 ABBBBC
3137 /ab??bc/i
3138 ABBC
3139 ABC
3141 /ab{0,1}?bc/i
3142 ABC
3144 /ab??bc/i
3146 /ab??c/i
3147 ABC
3149 /ab{0,1}?c/i
3150 ABC
3152 /^abc$/i
3153 ABC
3154 *** Failers
3155 ABBBBC
3156 ABCC
3158 /^abc/i
3159 ABCC
3161 /^abc$/i
3163 /abc$/i
3164 AABC
3166 /^/i
3167 ABC
3169 /$/i
3170 ABC
3172 /a.c/i
3173 ABC
3174 AXC
3176 /a.*?c/i
3177 AXYZC
3179 /a.*c/i
3180 *** Failers
3181 AABC
3182 AXYZD
3184 /a[bc]d/i
3185 ABD
3187 /a[b-d]e/i
3188 ACE
3189 *** Failers
3190 ABC
3191 ABD
3193 /a[b-d]/i
3194 AAC
3196 /a[-b]/i
3197 A-
3199 /a[b-]/i
3200 A-
3202 /a]/i
3203 A]
3205 /a[]]b/i
3206 A]B
3208 /a[^bc]d/i
3209 AED
3211 /a[^-b]c/i
3212 ADC
3213 *** Failers
3214 ABD
3215 A-C
3217 /a[^]b]c/i
3218 ADC
3220 /ab|cd/i
3221 ABC
3222 ABCD
3224 /()ef/i
3225 DEF
3227 /$b/i
3228 *** Failers
3229 A]C
3230 B
3232 /a\(b/i
3233 A(B
3235 /a\(*b/i
3236 AB
3237 A((B
3239 /a\\b/i
3240 A\B
3242 /((a))/i
3243 ABC
3245 /(a)b(c)/i
3246 ABC
3248 /a+b+c/i
3249 AABBABC
3251 /a{1,}b{1,}c/i
3252 AABBABC
3254 /a.+?c/i
3255 ABCABC
3257 /a.*?c/i
3258 ABCABC
3260 /a.{0,5}?c/i
3261 ABCABC
3263 /(a+|b)*/i
3264 AB
3266 /(a+|b){0,}/i
3267 AB
3269 /(a+|b)+/i
3270 AB
3272 /(a+|b){1,}/i
3273 AB
3275 /(a+|b)?/i
3276 AB
3278 /(a+|b){0,1}/i
3279 AB
3281 /(a+|b){0,1}?/i
3282 AB
3284 /[^ab]*/i
3285 CDE
3287 /abc/i
3289 /a*/i
3292 /([abc])*d/i
3293 ABBBCD
3295 /([abc])*bcd/i
3296 ABCD
3298 /a|b|c|d|e/i
3299 E
3301 /(a|b|c|d|e)f/i
3302 EF
3304 /abcd*efg/i
3305 ABCDEFG
3307 /ab*/i
3308 XABYABBBZ
3309 XAYABBBZ
3311 /(ab|cd)e/i
3312 ABCDE
3314 /[abhgefdc]ij/i
3315 HIJ
3317 /^(ab|cd)e/i
3318 ABCDE
3320 /(abc|)ef/i
3321 ABCDEF
3323 /(a|b)c*d/i
3324 ABCD
3326 /(ab|ab*)bc/i
3327 ABC
3329 /a([bc]*)c*/i
3330 ABC
3332 /a([bc]*)(c*d)/i
3333 ABCD
3335 /a([bc]+)(c*d)/i
3336 ABCD
3338 /a([bc]*)(c+d)/i
3339 ABCD
3341 /a[bcd]*dcdcde/i
3342 ADCDCDE
3344 /a[bcd]+dcdcde/i
3346 /(ab|a)b*c/i
3347 ABC
3349 /((a)(b)c)(d)/i
3350 ABCD
3352 /[a-zA-Z_][a-zA-Z0-9_]*/i
3353 ALPHA
3355 /^a(bc+|b[eh])g|.h$/i
3356 ABH
3358 /(bc+d$|ef*g.|h?i(j|k))/i
3359 EFFGZ
3360 IJ
3361 REFFGZ
3362 *** Failers
3363 ADCDCDE
3364 EFFG
3365 BCDD
3367 /((((((((((a))))))))))/i
3368 A
3370 /(((((((((a)))))))))/i
3371 A
3373 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
3374 A
3376 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
3377 C
3379 /multiple words of text/i
3380 *** Failers
3381 AA
3382 UH-UH
3384 /multiple words/i
3385 MULTIPLE WORDS, YEAH
3387 /(.*)c(.*)/i
3388 ABCDE
3390 /\((.*), (.*)\)/i
3391 (A, B)
3393 /[k]/i
3395 /abcd/i
3396 ABCD
3398 /a(bc)d/i
3399 ABCD
3401 /a[-]?c/i
3402 AC
3404 /a(?!b)./
3405 abad
3407 /a(?=d)./
3408 abad
3410 /a(?=c|d)./
3411 abad
3413 /a(?:b|c|d)(.)/
3414 ace
3416 /a(?:b|c|d)*(.)/
3417 ace
3419 /a(?:b|c|d)+?(.)/
3420 ace
3421 acdbcdbe
3423 /a(?:b|c|d)+(.)/
3424 acdbcdbe
3426 /a(?:b|c|d){2}(.)/
3427 acdbcdbe
3429 /a(?:b|c|d){4,5}(.)/
3430 acdbcdbe
3432 /a(?:b|c|d){4,5}?(.)/
3433 acdbcdbe
3435 /((foo)|(bar))*/
3436 foobar
3438 /a(?:b|c|d){6,7}(.)/
3439 acdbcdbe
3441 /a(?:b|c|d){6,7}?(.)/
3442 acdbcdbe
3444 /a(?:b|c|d){5,6}(.)/
3445 acdbcdbe
3447 /a(?:b|c|d){5,6}?(.)/
3448 acdbcdbe
3450 /a(?:b|c|d){5,7}(.)/
3451 acdbcdbe
3453 /a(?:b|c|d){5,7}?(.)/
3454 acdbcdbe
3456 /a(?:b|(c|e){1,2}?|d)+?(.)/
3457 ace
3459 /^(.+)?B/
3460 AB
3462 /^([^a-z])|(\^)$/
3463 .
3465 /^[<>]&/
3466 <&OUT
3468 /(?:(f)(o)(o)|(b)(a)(r))*/
3469 foobar
3471 /(?<=a)b/
3472 ab
3473 *** Failers
3474 cb
3475 b
3477 /(?<!c)b/
3478 ab
3479 b
3480 b
3482 /(?:..)*a/
3483 aba
3485 /(?:..)*?a/
3486 aba
3488 /^(){3,5}/
3489 abc
3491 /^(a+)*ax/
3492 aax
3494 /^((a|b)+)*ax/
3495 aax
3497 /^((a|bc)+)*ax/
3498 aax
3500 /(a|x)*ab/
3501 cab
3503 /(a)*ab/
3504 cab
3506 /(?:(?i)a)b/
3507 ab
3509 /((?i)a)b/
3510 ab
3512 /(?:(?i)a)b/
3513 Ab
3515 /((?i)a)b/
3516 Ab
3518 /(?:(?i)a)b/
3519 *** Failers
3520 cb
3521 aB
3523 /((?i)a)b/
3525 /(?i:a)b/
3526 ab
3528 /((?i:a))b/
3529 ab
3531 /(?i:a)b/
3532 Ab
3534 /((?i:a))b/
3535 Ab
3537 /(?i:a)b/
3538 *** Failers
3539 aB
3540 aB
3542 /((?i:a))b/
3544 /(?:(?-i)a)b/i
3545 ab
3547 /((?-i)a)b/i
3548 ab
3550 /(?:(?-i)a)b/i
3551 aB
3553 /((?-i)a)b/i
3554 aB
3556 /(?:(?-i)a)b/i
3557 *** Failers
3558 aB
3559 Ab
3561 /((?-i)a)b/i
3563 /(?:(?-i)a)b/i
3564 aB
3566 /((?-i)a)b/i
3567 aB
3569 /(?:(?-i)a)b/i
3570 *** Failers
3571 Ab
3572 AB
3574 /((?-i)a)b/i
3576 /(?-i:a)b/i
3577 ab
3579 /((?-i:a))b/i
3580 ab
3582 /(?-i:a)b/i
3583 aB
3585 /((?-i:a))b/i
3586 aB
3588 /(?-i:a)b/i
3589 *** Failers
3590 AB
3591 Ab
3593 /((?-i:a))b/i
3595 /(?-i:a)b/i
3596 aB
3598 /((?-i:a))b/i
3599 aB
3601 /(?-i:a)b/i
3602 *** Failers
3603 Ab
3604 AB
3606 /((?-i:a))b/i
3608 /((?-i:a.))b/i
3609 *** Failers
3610 AB
3611 a\nB
3613 /((?s-i:a.))b/i
3614 a\nB
3616 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
3617 cabbbb
3619 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
3620 caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
3622 /foo\w*\d{4}baz/
3623 foobar1234baz
3625 /x(~~)*(?:(?:F)?)?/
3626 x~~
3628 /^a(?#xxx){3}c/
3629 aaac
3631 /^a (?#xxx) (?#yyy) {3}c/x
3632 aaac
3634 /(?<![cd])b/
3635 *** Failers
3636 B\nB
3637 dbcb
3639 /(?<![cd])[ab]/
3640 dbaacb
3642 /(?<!(c|d))b/
3644 /(?<!(c|d))[ab]/
3645 dbaacb
3647 /(?<!cd)[ab]/
3648 cdaccb
3650 /^(?:a?b?)*$/
3651 *** Failers
3652 dbcb
3653 a--
3655 /((?s)^a(.))((?m)^b$)/
3656 a\nb\nc\n
3658 /((?m)^b$)/
3659 a\nb\nc\n
3661 /(?m)^b/
3662 a\nb\n
3664 /(?m)^(b)/
3665 a\nb\n
3667 /((?m)^b)/
3668 a\nb\n
3670 /\n((?m)^b)/
3671 a\nb\n
3673 /((?s).)c(?!.)/
3674 a\nb\nc\n
3675 a\nb\nc\n
3677 /((?s)b.)c(?!.)/
3678 a\nb\nc\n
3679 a\nb\nc\n
3681 /^b/
3683 /()^b/
3684 *** Failers
3685 a\nb\nc\n
3686 a\nb\nc\n
3688 /((?m)^b)/
3689 a\nb\nc\n
3691 /(?(?!a)a|b)/
3693 /(?(?!a)b|a)/
3694 a
3696 /(?(?=a)b|a)/
3697 *** Failers
3698 a
3699 a
3701 /(?(?=a)a|b)/
3702 a
3704 /(\w+:)+/
3705 one:
3707 /$(?<=^(a))/
3708 a
3710 /([\w:]+::)?(\w+)$/
3711 abcd
3712 xy:z:::abcd
3714 /^[^bcd]*(c+)/
3715 aexycd
3717 /(a*)b+/
3718 caab
3720 /([\w:]+::)?(\w+)$/
3721 abcd
3722 xy:z:::abcd
3723 *** Failers
3724 abcd:
3725 abcd:
3727 /^[^bcd]*(c+)/
3728 aexycd
3730 /(>a+)ab/
3732 /(?>a+)b/
3733 aaab
3735 /([[:]+)/
3736 a:[b]:
3738 /([[=]+)/
3739 a=[b]=
3741 /([[.]+)/
3742 a.[b].
3744 /((?>a+)b)/
3745 aaab
3747 /(?>(a+))b/
3748 aaab
3750 /((?>[^()]+)|\([^()]*\))+/
3751 ((abc(ade)ufh()()x
3753 /a\Z/
3754 *** Failers
3755 aaab
3756 a\nb\n
3758 /b\Z/
3759 a\nb\n
3761 /b\z/
3763 /b\Z/
3764 a\nb
3766 /b\z/
3767 a\nb
3768 *** Failers
3770 /(?>.*)(?<=(abcd|wxyz))/
3771 alphabetabcd
3772 endingwxyz
3773 *** Failers
3774 a rather long string that doesn't end with one of them
3776 /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
3777 word cat dog elephant mussel cow horse canary baboon snake shark otherword
3778 word cat dog elephant mussel cow horse canary baboon snake shark
3780 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
3781 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
3783 /(?<=\d{3}(?!999))foo/
3784 999foo
3785 123999foo
3786 *** Failers
3787 123abcfoo
3789 /(?<=(?!...999)\d{3})foo/
3790 999foo
3791 123999foo
3792 *** Failers
3793 123abcfoo
3795 /(?<=\d{3}(?!999)...)foo/
3796 123abcfoo
3797 123456foo
3798 *** Failers
3799 123999foo
3801 /(?<=\d{3}...)(?<!999)foo/
3802 123abcfoo
3803 123456foo
3804 *** Failers
3805 123999foo
3807 /((Z)+|A)*/
3808 ZABCDEFG
3810 /(Z()|A)*/
3811 ZABCDEFG
3813 /(Z(())|A)*/
3814 ZABCDEFG
3816 /((?>Z)+|A)*/
3817 ZABCDEFG
3819 /((?>)+|A)*/
3820 ZABCDEFG
3822 /a*/g
3823 abbab
3825 /^[a-\d]/
3826 abcde
3827 -things
3828 0digit
3829 *** Failers
3830 bcdef
3832 /^[\d-a]/
3833 abcde
3834 -things
3835 0digit
3836 *** Failers
3837 bcdef
3839 /[[:space:]]+/
3840 > \x09\x0a\x0c\x0d\x0b<
3842 /[[:blank:]]+/
3843 > \x09\x0a\x0c\x0d\x0b<
3845 /[\s]+/
3846 > \x09\x0a\x0c\x0d\x0b<
3848 /\s+/
3849 > \x09\x0a\x0c\x0d\x0b<
3851 /a
3852 b/x
3853 ab
3855 /(?!\A)x/m
3856 a\nxb\n
3858 /(?!^)x/m
3859 a\nxb\n
3861 /abc\Qabc\Eabc/
3862 abcabcabc
3864 /abc\Q(*+|\Eabc/
3865 abc(*+|abc
3867 / abc\Q abc\Eabc/x
3868 abc abcabc
3869 *** Failers
3870 abcabcabc
3872 /abc#comment
3873 \Q#not comment
3874 literal\E/x
3875 abc#not comment\n literal
3877 /abc#comment
3878 \Q#not comment
3879 literal/x
3880 abc#not comment\n literal
3882 /abc#comment
3883 \Q#not comment
3884 literal\E #more comment
3885 /x
3886 abc#not comment\n literal
3888 /abc#comment
3889 \Q#not comment
3890 literal\E #more comment/x
3891 abc#not comment\n literal
3893 /\Qabc\$xyz\E/
3894 abc\\\$xyz
3896 /\Qabc\E\$\Qxyz\E/
3897 abc\$xyz
3899 /\Gabc/
3900 abc
3901 *** Failers
3902 xyzabc
3904 /\Gabc./g
3905 abc1abc2xyzabc3
3907 /abc./g
3908 abc1abc2xyzabc3
3910 /a(?x: b c )d/
3911 XabcdY
3912 *** Failers
3913 Xa b c d Y
3915 /((?x)x y z | a b c)/
3916 XabcY
3917 AxyzB
3919 /(?i)AB(?-i)C/
3920 XabCY
3921 *** Failers
3922 XabcY
3924 /((?i)AB(?-i)C|D)E/
3925 abCE
3926 DE
3927 *** Failers
3928 abcE
3929 abCe
3930 dE
3931 De
3933 /[z\Qa-d]\E]/
3934 z
3935 a
3936 -
3937 d
3938 ]
3939 *** Failers
3940 b
3942 /[\z\C]/
3943 z
3944 C
3946 /\M/
3947 M
3949 /(a+)*b/
3950 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3952 /(?i)reg(?:ul(?:[a�]|ae)r|ex)/
3953 REGular
3954 regulaer
3955 Regex
3956 regul�r
3958 /����[�-��-�]+/
3959 �����
3960 �����
3961 �����
3962 �����
3964 /(?<=Z)X./
3965 \x84XAZXB
3967 /^(?(2)a|(1)(2))+$/
3968 123a
3970 /(?<=a|bbbb)c/
3971 ac
3972 bbbbc
3974 /abc/>testsavedregex
3975 <testsavedregex
3976 abc
3977 *** Failers
3978 bca
3980 /abc/F>testsavedregex
3981 <testsavedregex
3982 abc
3983 *** Failers
3984 bca
3986 /(a|b)/S>testsavedregex
3987 <testsavedregex
3988 abc
3989 *** Failers
3990 def
3992 /(a|b)/SF>testsavedregex
3993 <testsavedregex
3994 abc
3995 *** Failers
3996 def
3998 /line\nbreak/
3999 this is a line\nbreak
4000 line one\nthis is a line\nbreak in the second line
4002 /line\nbreak/f
4003 this is a line\nbreak
4004 ** Failers
4005 line one\nthis is a line\nbreak in the second line
4007 /line\nbreak/mf
4008 this is a line\nbreak
4009 ** Failers
4010 line one\nthis is a line\nbreak in the second line
4012 /1234/
4013 123\P
4014 a4\P\R
4016 /1234/
4017 123\P
4018 4\P\R
4020 /^/mg
4021 a\nb\nc\n
4022 \
4024 /(?<=C\n)^/mg
4025 A\nC\nC\n
4027 /(?s)A?B/
4028 AB
4029 aB
4031 /(?s)A*B/
4032 AB
4033 aB
4035 /(?m)A?B/
4036 AB
4037 aB
4039 /(?m)A*B/
4040 AB
4041 aB
4043 /Content-Type\x3A[^\r\n]{6,}/
4044 Content-Type:xxxxxyyy
4046 /Content-Type\x3A[^\r\n]{6,}z/
4047 Content-Type:xxxxxyyyz
4049 /Content-Type\x3A[^a]{6,}/
4050 Content-Type:xxxyyy
4052 /Content-Type\x3A[^a]{6,}z/
4053 Content-Type:xxxyyyz
4055 /^abc/m
4056 xyz\nabc
4057 xyz\nabc\<lf>
4058 xyz\r\nabc\<lf>
4059 xyz\rabc\<cr>
4060 xyz\r\nabc\<crlf>
4061 ** Failers
4062 xyz\nabc\<cr>
4063 xyz\r\nabc\<cr>
4064 xyz\nabc\<crlf>
4065 xyz\rabc\<crlf>
4066 xyz\rabc\<lf>
4068 /abc$/m<lf>
4069 xyzabc
4070 xyzabc\n
4071 xyzabc\npqr
4072 xyzabc\r\<cr>
4073 xyzabc\rpqr\<cr>
4074 xyzabc\r\n\<crlf>
4075 xyzabc\r\npqr\<crlf>
4076 ** Failers
4077 xyzabc\r
4078 xyzabc\rpqr
4079 xyzabc\r\n
4080 xyzabc\r\npqr
4082 /^abc/m<cr>
4083 xyz\rabcdef
4084 xyz\nabcdef\<lf>
4085 ** Failers
4086 xyz\nabcdef
4088 /^abc/m<lf>
4089 xyz\nabcdef
4090 xyz\rabcdef\<cr>
4091 ** Failers
4092 xyz\rabcdef
4094 /^abc/m<crlf>
4095 xyz\r\nabcdef
4096 xyz\rabcdef\<cr>
4097 ** Failers
4098 xyz\rabcdef
4100 /.*/<lf>
4101 abc\ndef
4102 abc\rdef
4103 abc\r\ndef
4104 \<cr>abc\ndef
4105 \<cr>abc\rdef
4106 \<cr>abc\r\ndef
4107 \<crlf>abc\ndef
4108 \<crlf>abc\rdef
4109 \<crlf>abc\r\ndef
4111 /\w+(.)(.)?def/s
4112 abc\ndef
4113 abc\rdef
4114 abc\r\ndef
4116 /^\w+=.*(\\\n.*)*/
4117 abc=xyz\\\npqr
4119 /^(a()*)*/
4120 aaaa
4122 /^(?:a(?:(?:))*)*/
4123 aaaa
4125 /^(a()+)+/
4126 aaaa
4128 /^(?:a(?:(?:))+)+/
4129 aaaa
4131 /(a|)*\d/
4132 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4133 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4135 /(?>a|)*\d/
4136 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4137 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4139 /(?:a|)*\d/
4140 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4141 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4143 /^a.b/<lf>
4144 a\rb
4145 a\nb\<cr>
4146 ** Failers
4147 a\nb
4148 a\nb\<any>
4149 a\rb\<cr>
4150 a\rb\<any>
4152 /^abc./mgx<any>
4153 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
4155 /abc.$/mgx<any>
4156 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
4158 /^a\Rb/<bsr_unicode>
4159 a\nb
4160 a\rb
4161 a\r\nb
4162 a\x0bb
4163 a\x0cb
4164 a\x85b
4165 ** Failers
4166 a\n\rb
4168 /^a\R*b/<bsr_unicode>
4169 ab
4170 a\nb
4171 a\rb
4172 a\r\nb
4173 a\x0bb
4174 a\x0cb
4175 a\x85b
4176 a\n\rb
4177 a\n\r\x85\x0cb
4179 /^a\R+b/<bsr_unicode>
4180 a\nb
4181 a\rb
4182 a\r\nb
4183 a\x0bb
4184 a\x0cb
4185 a\x85b
4186 a\n\rb
4187 a\n\r\x85\x0cb
4188 ** Failers
4189 ab
4191 /^a\R{1,3}b/<bsr_unicode>
4192 a\nb
4193 a\n\rb
4194 a\n\r\x85b
4195 a\r\n\r\nb
4196 a\r\n\r\n\r\nb
4197 a\n\r\n\rb
4198 a\n\n\r\nb
4199 ** Failers
4200 a\n\n\n\rb
4201 a\r
4203 /^a[\R]b/<bsr_unicode>
4204 aRb
4205 ** Failers
4206 a\nb
4208 /.+foo/
4209 afoo
4210 ** Failers
4211 \r\nfoo
4212 \nfoo
4214 /.+foo/<crlf>
4215 afoo
4216 \nfoo
4217 ** Failers
4218 \r\nfoo
4220 /.+foo/<any>
4221 afoo
4222 ** Failers
4223 \nfoo
4224 \r\nfoo
4226 /.+foo/s
4227 afoo
4228 \r\nfoo
4229 \nfoo
4231 /^$/mg<any>
4232 abc\r\rxyz
4233 abc\n\rxyz
4234 ** Failers
4235 abc\r\nxyz
4237 /^X/m
4238 XABC
4239 ** Failers
4240 XABC\B
4242 /(?m)^$/<any>g+
4243 abc\r\n\r\n
4245 /(?m)^$|^\r\n/<any>g+
4246 abc\r\n\r\n
4248 /(?m)$/<any>g+
4249 abc\r\n\r\n
4251 /(?|(abc)|(xyz))/
4252 >abc<
4253 >xyz<
4255 /(x)(?|(abc)|(xyz))(x)/
4256 xabcx
4257 xxyzx
4259 /(x)(?|(abc)(pqr)|(xyz))(x)/
4260 xabcpqrx
4261 xxyzx
4263 /(?|(abc)|(xyz))(?1)/
4264 abcabc
4265 xyzabc
4266 ** Failers
4267 xyzxyz
4269 /\H\h\V\v/
4270 X X\x0a
4271 X\x09X\x0b
4272 ** Failers
4273 \xa0 X\x0a
4275 /\H*\h+\V?\v{3,4}/
4276 \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
4277 \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
4278 \x09\x20\xa0\x0a\x0b\x0c
4279 ** Failers
4280 \x09\x20\xa0\x0a\x0b
4282 /\H{3,4}/
4283 XY ABCDE
4284 XY PQR ST
4286 /.\h{3,4}./
4287 XY AB PQRS
4289 /\h*X\h?\H+Y\H?Z/
4290 >XNNNYZ
4291 > X NYQZ
4292 ** Failers
4293 >XYZ
4294 > X NY Z
4296 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
4297 >XY\x0aZ\x0aA\x0bNN\x0c
4298 >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
4300 /.+A/<crlf>
4301 \r\nA
4303 /\nA/<crlf>
4304 \r\nA
4306 /[\r\n]A/<crlf>
4307 \r\nA
4309 /(\r|\n)A/<crlf>
4310 \r\nA
4312 /a\Rb/I<bsr_anycrlf>
4313 a\rb
4314 a\nb
4315 a\r\nb
4316 ** Failers
4317 a\x85b
4318 a\x0bb
4320 /a\Rb/I<bsr_unicode>
4321 a\rb
4322 a\nb
4323 a\r\nb
4324 a\x85b
4325 a\x0bb
4326 ** Failers
4327 a\x85b\<bsr_anycrlf>
4328 a\x0bb\<bsr_anycrlf>
4330 /a\R?b/I<bsr_anycrlf>
4331 a\rb
4332 a\nb
4333 a\r\nb
4334 ** Failers
4335 a\x85b
4336 a\x0bb
4338 /a\R?b/I<bsr_unicode>
4339 a\rb
4340 a\nb
4341 a\r\nb
4342 a\x85b
4343 a\x0bb
4344 ** Failers
4345 a\x85b\<bsr_anycrlf>
4346 a\x0bb\<bsr_anycrlf>
4348 /a\R{2,4}b/I<bsr_anycrlf>
4349 a\r\n\nb
4350 a\n\r\rb
4351 a\r\n\r\n\r\n\r\nb
4352 ** Failers
4353 a\x85\85b
4354 a\x0b\0bb
4356 /a\R{2,4}b/I<bsr_unicode>
4357 a\r\rb
4358 a\n\n\nb
4359 a\r\n\n\r\rb
4360 a\x85\85b
4361 a\x0b\0bb
4362 ** Failers
4363 a\r\r\r\r\rb
4364 a\x85\85b\<bsr_anycrlf>
4365 a\x0b\0bb\<bsr_anycrlf>
4367 /a(?!)|\wbc/
4368 abc
4370 /a[]b/<JS>
4371 ** Failers
4372 ab
4374 /a[]+b/<JS>
4375 ** Failers
4376 ab
4378 /a[]*+b/<JS>
4379 ** Failers
4380 ab
4382 /a[^]b/<JS>
4383 aXb
4384 a\nb
4385 ** Failers
4386 ab
4388 /a[^]+b/<JS>
4389 aXb
4390 a\nX\nXb
4391 ** Failers
4392 ab
4394 /X$/E
4395 X
4396 ** Failers
4397 X\n
4399 /X$/
4400 X
4401 X\n
4403 /xyz/C
4404 xyz
4405 abcxyz
4406 abcxyz\Y
4407 ** Failers
4408 abc
4409 abc\Y
4410 abcxypqr
4411 abcxypqr\Y
4413 /(?C)ab/
4414 ab
4415 \C-ab
4417 /ab/C
4418 ab
4419 \C-ab
4421 /^"((?(?=[a])[^"])|b)*"$/C
4422 "ab"
4423 \C-"ab"