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

Contents of /code/trunk/testdata/testinput7

Parent Directory Parent Directory | Revision Log Revision Log


Revision 175 - (show annotations) (download)
Mon Jun 11 13:38:38 2007 UTC (6 years, 10 months ago) by ph10
File size: 78069 byte(s)
Added the Perl 5.10 (?| "branch reset" feature.

1 /abc/
2 abc
3
4 /ab*c/
5 abc
6 abbbbc
7 ac
8
9 /ab+c/
10 abc
11 abbbbbbc
12 *** Failers
13 ac
14 ab
15
16 /a*/
17 a
18 aaaaaaaaaaaaaaaaa
19 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
20 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa\F
21
22 /(a|abcd|african)/
23 a
24 abcd
25 african
26
27 /^abc/
28 abcdef
29 *** Failers
30 xyzabc
31 xyz\nabc
32
33 /^abc/m
34 abcdef
35 xyz\nabc
36 *** Failers
37 xyzabc
38
39 /\Aabc/
40 abcdef
41 *** Failers
42 xyzabc
43 xyz\nabc
44
45 /\Aabc/m
46 abcdef
47 *** Failers
48 xyzabc
49 xyz\nabc
50
51 /\Gabc/
52 abcdef
53 xyzabc\>3
54 *** Failers
55 xyzabc
56 xyzabc\>2
57
58 /x\dy\Dz/
59 x9yzz
60 x0y+z
61 *** Failers
62 xyz
63 xxy0z
64
65 /x\sy\Sz/
66 x yzz
67 x y+z
68 *** Failers
69 xyz
70 xxyyz
71
72 /x\wy\Wz/
73 xxy+z
74 *** Failers
75 xxy0z
76 x+y+z
77
78 /x.y/
79 x+y
80 x-y
81 *** Failers
82 x\ny
83
84 /x.y/s
85 x+y
86 x-y
87 x\ny
88
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
97
98 /a\d\z/
99 ba0
100 *** Failers
101 ba0\n
102 ba0\ncd
103
104 /a\d\z/m
105 ba0
106 *** Failers
107 ba0\n
108 ba0\ncd
109
110 /a\d\Z/
111 ba0
112 ba0\n
113 *** Failers
114 ba0\ncd
115
116 /a\d\Z/m
117 ba0
118 ba0\n
119 *** Failers
120 ba0\ncd
121
122 /a\d$/
123 ba0
124 ba0\n
125 *** Failers
126 ba0\ncd
127
128 /a\d$/m
129 ba0
130 ba0\n
131 ba0\ncd
132 *** Failers
133
134 /abc/i
135 abc
136 aBc
137 ABC
138
139 /[^a]/
140 abcd
141
142 /ab?\w/
143 abz
144 abbz
145 azz
146
147 /x{0,3}yz/
148 ayzq
149 axyzq
150 axxyz
151 axxxyzq
152 axxxxyzq
153 *** Failers
154 ax
155 axx
156
157 /x{3}yz/
158 axxxyzq
159 axxxxyzq
160 *** Failers
161 ax
162 axx
163 ayzq
164 axyzq
165 axxyz
166
167 /x{2,3}yz/
168 axxyz
169 axxxyzq
170 axxxxyzq
171 *** Failers
172 ax
173 axx
174 ayzq
175 axyzq
176
177 /[^a]+/
178 bac
179 bcdefax
180 *** Failers
181 aaaaa
182
183 /[^a]*/
184 bac
185 bcdefax
186 *** Failers
187 aaaaa
188
189 /[^a]{3,5}/
190 xyz
191 awxyza
192 abcdefa
193 abcdefghijk
194 *** Failers
195 axya
196 axa
197 aaaaa
198
199 /\d*/
200 1234b567
201 xyz
202
203 /\D*/
204 a1234b567
205 xyz
206
207 /\d+/
208 ab1234c56
209 *** Failers
210 xyz
211
212 /\D+/
213 ab123c56
214 *** Failers
215 789
216
217 /\d?A/
218 045ABC
219 ABC
220 *** Failers
221 XYZ
222
223 /\D?A/
224 ABC
225 BAC
226 9ABC
227 *** Failers
228
229 /a+/
230 aaaa
231
232 /^.*xyz/
233 xyz
234 ggggggggxyz
235
236 /^.+xyz/
237 abcdxyz
238 axyz
239 *** Failers
240 xyz
241
242 /^.?xyz/
243 xyz
244 cxyz
245
246 /^\d{2,3}X/
247 12X
248 123X
249 *** Failers
250 X
251 1X
252 1234X
253
254 /^[abcd]\d/
255 a45
256 b93
257 c99z
258 d04
259 *** Failers
260 e45
261 abcd
262 abcd1234
263 1234
264
265 /^[abcd]*\d/
266 a45
267 b93
268 c99z
269 d04
270 abcd1234
271 1234
272 *** Failers
273 e45
274 abcd
275
276 /^[abcd]+\d/
277 a45
278 b93
279 c99z
280 d04
281 abcd1234
282 *** Failers
283 1234
284 e45
285 abcd
286
287 /^a+X/
288 aX
289 aaX
290
291 /^[abcd]?\d/
292 a45
293 b93
294 c99z
295 d04
296 1234
297 *** Failers
298 abcd1234
299 e45
300
301 /^[abcd]{2,3}\d/
302 ab45
303 bcd93
304 *** Failers
305 1234
306 a36
307 abcd1234
308 ee45
309
310 /^(abc)*\d/
311 abc45
312 abcabcabc45
313 42xyz
314 *** Failers
315
316 /^(abc)+\d/
317 abc45
318 abcabcabc45
319 *** Failers
320 42xyz
321
322 /^(abc)?\d/
323 abc45
324 42xyz
325 *** Failers
326 abcabcabc45
327
328 /^(abc){2,3}\d/
329 abcabc45
330 abcabcabc45
331 *** Failers
332 abcabcabcabc45
333 abc45
334 42xyz
335
336 /1(abc|xyz)2(?1)3/
337 1abc2abc3456
338 1abc2xyz3456
339
340 /^(a*\w|ab)=(a*\w|ab)/
341 ab=ab
342
343 /^(a*\w|ab)=(?1)/
344 ab=ab
345
346 /^([^()]|\((?1)*\))*$/
347 abc
348 a(b)c
349 a(b(c))d
350 *** Failers)
351 a(b(c)d
352
353 /^>abc>([^()]|\((?1)*\))*<xyz<$/
354 >abc>123<xyz<
355 >abc>1(2)3<xyz<
356 >abc>(1(2)3)<xyz<
357
358 /^(?>a*)\d/
359 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa9876
360 *** Failers
361 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
362
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
372
373 /^(?(?=abc)\w{3}:|\d\d)$/
374 abc:
375 12
376 *** Failers
377 123
378 xyz
379
380 /^(?(?!abc)\d\d|\w{3}:)$/
381 abc:
382 12
383 *** Failers
384 123
385 xyz
386
387 /^(?=abc)\w{5}:$/
388 abcde:
389 *** Failers
390 abc..
391 123
392 vwxyz
393
394 /^(?!abc)\d\d$/
395 12
396 *** Failers
397 abcde:
398 abc..
399 123
400 vwxyz
401
402 /(?<=abc|xy)123/
403 abc12345
404 wxy123z
405 *** Failers
406 123abc
407
408 /(?<!abc|xy)123/
409 123abc
410 mno123456
411 *** Failers
412 abc12345
413 wxy123z
414
415 /abc(?C1)xyz/
416 abcxyz
417 123abcxyz999
418
419 /(ab|cd){3,4}/C
420 ababab
421 abcdabcd
422 abcdcdcdcdcd
423
424 /^abc/
425 abcdef
426 *** Failers
427 abcdef\B
428
429 /^(a*|xyz)/
430 bcd
431 aaabcd
432 xyz
433 xyz\N
434 *** Failers
435 bcd\N
436
437 /xyz$/
438 xyz
439 xyz\n
440 *** Failers
441 xyz\Z
442 xyz\n\Z
443
444 /xyz$/m
445 xyz
446 xyz\n
447 abcxyz\npqr
448 abcxyz\npqr\Z
449 xyz\n\Z
450 *** Failers
451 xyz\Z
452
453 /\Gabc/
454 abcdef
455 defabcxyz\>3
456 *** Failers
457 defabcxyz
458
459 /^abcdef/
460 ab\P
461 abcde\P
462 abcdef\P
463 *** Failers
464 abx\P
465
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
479
480 /^abcdef/
481 abc\P
482 def\R
483
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
493
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
500
501 /(a|b)/SF>testsavedregex
502 <testsavedregex
503 abc
504 ** Failers
505 def
506
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?
512
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?
518
519 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
520 abcd\t\n\r\f\a\e9;\$\\?caxyz
521
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
560
561 /^(abc){1,2}zz/
562 abczz
563 abcabczz
564 *** Failers
565 zz
566 abcabcabczz
567 >>abczz
568
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
581
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
594
595 /^(b+|a){1,2}?bc/
596 bbc
597
598 /^(b*|ba){1,2}?bc/
599 babc
600 bbabc
601 bababc
602 *** Failers
603 bababbc
604 babababc
605
606 /^(ba|b*){1,2}?bc/
607 babc
608 bbabc
609 bababc
610 *** Failers
611 bababbc
612 babababc
613
614 /^\ca\cA\c[\c{\c:/
615 \x01\x01\e;z
616
617 /^[ab\]cde]/
618 athing
619 bthing
620 ]thing
621 cthing
622 dthing
623 ething
624 *** Failers
625 fthing
626 [thing
627 \\thing
628
629 /^[]cde]/
630 ]thing
631 cthing
632 dthing
633 ething
634 *** Failers
635 athing
636 fthing
637
638 /^[^ab\]cde]/
639 fthing
640 [thing
641 \\thing
642 *** Failers
643 athing
644 bthing
645 ]thing
646 cthing
647 dthing
648 ething
649
650 /^[^]cde]/
651 athing
652 fthing
653 *** Failers
654 ]thing
655 cthing
656 dthing
657 ething
658
659 /^\/
660
661
662 /^/
663
664
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
680
681 /^.*nter/
682 enter
683 inter
684 uponter
685
686 /^xxx[0-9]+$/
687 xxx0
688 xxx1234
689 *** Failers
690 xxx
691
692 /^.+[0-9][0-9][0-9]$/
693 x123
694 xx123
695 123456
696 *** Failers
697 123
698 x1234
699
700 /^.+?[0-9][0-9][0-9]$/
701 x123
702 xx123
703 123456
704 *** Failers
705 123
706 x1234
707
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
715
716 /:/
717 Well, we need a colon: somewhere
718 *** Fail if we don't
719
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
734
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
742
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(
748
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.
758
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
769
770 /^(?=ab(de))(abd)(e)/
771 abde
772
773 /^(?!(ab)de|x)(abd)(f)/
774 abdf
775
776 /^(?=(ab(cd)))(ab)/
777 abcd
778
779 /^[\da-f](\.[\da-f])*$/i
780 a.b.c.d
781 A.B.C.D
782 a.b.c.1.2.3.C
783
784 /^\".*\"\s*(;.*)?$/
785 \"1234\"
786 \"abcd\" ;
787 \"\" ; rhubarb
788 *** Failers
789 \"1234\" : things
790
791 /^$/
792 \
793 *** Failers
794
795 / ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/x
796 ab c
797 *** Failers
798 abc
799 ab cde
800
801 /(?x) ^ a (?# begins with a) b\sc (?# then b c) $ (?# then end)/
802 ab c
803 *** Failers
804 abc
805 ab cde
806
807 /^ a\ b[c ]d $/x
808 a bcd
809 a b d
810 *** Failers
811 abcd
812 ab d
813
814 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
815 abcdefhijklm
816
817 /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
818 abcdefhijklm
819
820 /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
821 a+ Z0+\x08\n\x1d\x12
822
823 /^[.^$|()*+?{,}]+/
824 .^\$(*+)|{?,?}
825
826 /^a*\w/
827 z
828 az
829 aaaz
830 a
831 aa
832 aaaa
833 a+
834 aa+
835
836 /^a*?\w/
837 z
838 az
839 aaaz
840 a
841 aa
842 aaaa
843 a+
844 aa+
845
846 /^a+\w/
847 az
848 aaaz
849 aa
850 aaaa
851 aa+
852
853 /^a+?\w/
854 az
855 aaaz
856 aa
857 aaaa
858 aa+
859
860 /^\d{8}\w{2,}/
861 1234567890
862 12345678ab
863 12345678__
864 *** Failers
865 1234567
866
867 /^[aeiou\d]{4,5}$/
868 uoie
869 1234
870 12345
871 aaaaa
872 *** Failers
873 123456
874
875 /^[aeiou\d]{4,5}?/
876 uoie
877 1234
878 12345
879 aaaaa
880 123456
881
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
884
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
890
891 /^12.34/s
892 12\n34
893 12\r34
894
895 /\w+(?=\t)/
896 the quick brown\t fox
897
898 /foo(?!bar)(.*)/
899 foobar is foolish see?
900
901 /(?:(?!foo)...|^.{0,2})bar(.*)/
902 foobar crowbar etc
903 barrel
904 2barrel
905 A barrel
906
907 /^(\D*)(?=\d)(?!123)/
908 abc456
909 *** Failers
910 abc123
911
912 /^1234(?# test newlines
913 inside)/
914 1234
915
916 /^1234 #comment in extended re
917 /x
918 1234
919
920 /#rhubarb
921 abcd/x
922 abcd
923
924 /^abcd#rhubarb/x
925 abcd
926
927 /(?!^)abc/
928 the abc
929 *** Failers
930 abc
931
932 /(?=^)abc/
933 abc
934 *** Failers
935 the abc
936
937 /^[ab]{1,3}(ab*|b)/
938 aabbbbb
939
940 /^[ab]{1,3}?(ab*|b)/
941 aabbbbb
942
943 /^[ab]{1,3}?(ab*?|b)/
944 aabbbbb
945
946 /^[ab]{1,3}(ab*?|b)/
947 aabbbbb
948
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...
1018
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 )*
1052
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
1152
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
1744
1745 /abc\0def\00pqr\000xyz\0000AB/
1746 abc\0def\00pqr\000xyz\0000AB
1747 abc456 abc\0def\00pqr\000xyz\0000ABCDE
1748
1749 /abc\x0def\x00pqr\x000xyz\x0000AB/
1750 abc\x0def\x00pqr\x000xyz\x0000AB
1751 abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
1752
1753 /^[\000-\037]/
1754 \0A
1755 \01B
1756 \037C
1757
1758 /\0*/
1759 \0\0\0\0
1760
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
1767
1768 /^\s/
1769 \040abc
1770 \x0cabc
1771 \nabc
1772 \rabc
1773 \tabc
1774 *** Failers
1775 abc
1776
1777 /^a b
1778 c/x
1779 abc
1780
1781 /ab{1,3}bc/
1782 abbbbc
1783 abbbc
1784 abbc
1785 *** Failers
1786 abc
1787 abbbbbc
1788
1789 /([^.]*)\.([^:]*):[T ]+(.*)/
1790 track1.title:TBlah blah blah
1791
1792 /([^.]*)\.([^:]*):[T ]+(.*)/i
1793 track1.title:TBlah blah blah
1794
1795 /([^.]*)\.([^:]*):[t ]+(.*)/i
1796 track1.title:TBlah blah blah
1797
1798 /^[W-c]+$/
1799 WXY_^abc
1800 *** Failers
1801 wxy
1802
1803 /^[W-c]+$/i
1804 WXY_^abc
1805 wxy_^ABC
1806
1807 /^[\x3f-\x5F]+$/i
1808 WXY_^abc
1809 wxy_^ABC
1810
1811 /^abc$/m
1812 abc
1813 qqq\nabc
1814 abc\nzzz
1815 qqq\nabc\nzzz
1816
1817 /^abc$/
1818 abc
1819 *** Failers
1820 qqq\nabc
1821 abc\nzzz
1822 qqq\nabc\nzzz
1823
1824 /\Aabc\Z/m
1825 abc
1826 abc\n
1827 *** Failers
1828 qqq\nabc
1829 abc\nzzz
1830 qqq\nabc\nzzz
1831
1832 /\A(.)*\Z/s
1833 abc\ndef
1834
1835 /\A(.)*\Z/m
1836 *** Failers
1837 abc\ndef
1838
1839 /(?:b)|(?::+)/
1840 b::c
1841 c::b
1842
1843 /[-az]+/
1844 az-
1845 *** Failers
1846 b
1847
1848 /[az-]+/
1849 za-
1850 *** Failers
1851 b
1852
1853 /[a\-z]+/
1854 a-z
1855 *** Failers
1856 b
1857
1858 /[a-z]+/
1859 abcdxyz
1860
1861 /[\d-]+/
1862 12-34
1863 *** Failers
1864 aaa
1865
1866 /[\d-z]+/
1867 12-34z
1868 *** Failers
1869 aaa
1870
1871 /\x5c/
1872 \\
1873
1874 /\x20Z/
1875 the Zoo
1876 *** Failers
1877 Zulu
1878
1879 /ab{3cd/
1880 ab{3cd
1881
1882 /ab{3,cd/
1883 ab{3,cd
1884
1885 /ab{3,4a}cd/
1886 ab{3,4a}cd
1887
1888 /{4,5a}bc/
1889 {4,5a}bc
1890
1891 /^a.b/<lf>
1892 a\rb
1893 *** Failers
1894 a\nb
1895
1896 /abc$/
1897 abc
1898 abc\n
1899 *** Failers
1900 abc\ndef
1901
1902 /(abc)\123/
1903 abc\x53
1904
1905 /(abc)\223/
1906 abc\x93
1907
1908 /(abc)\323/
1909 abc\xd3
1910
1911 /(abc)\100/
1912 abc\x40
1913 abc\100
1914
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
1922
1923 /abc\81/
1924 abc\081
1925 abc\0\x38\x31
1926
1927 /abc\91/
1928 abc\091
1929 abc\0\x39\x31
1930
1931 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
1932 abcdefghijk\12S
1933
1934 /ab\hdef/
1935 abhdef
1936
1937 /a{0}bc/
1938 bc
1939
1940 /(a|(bc)){0,0}?xyz/
1941 xyz
1942
1943 /abc[\10]de/
1944 abc\010de
1945
1946 /abc[\1]de/
1947 abc\1de
1948
1949 /(abc)[\1]de/
1950 abc\1de
1951
1952 /(?s)a.b/
1953 a\nb
1954
1955 /^([^a])([^\b])([^c]*)([^d]{3,4})/
1956 baNOTccccd
1957 baNOTcccd
1958 baNOTccd
1959 bacccd
1960 *** Failers
1961 anything
1962 b\bc
1963 baccd
1964
1965 /[^a]/
1966 Abc
1967
1968 /[^a]/i
1969 Abc
1970
1971 /[^a]+/
1972 AAAaAbc
1973
1974 /[^a]+/i
1975 AAAaAbc
1976
1977 /[^a]+/
1978 bbb\nccc
1979
1980 /[^k]$/
1981 abc
1982 *** Failers
1983 abk
1984
1985 /[^k]{2,3}$/
1986 abc
1987 kbc
1988 kabc
1989 *** Failers
1990 abk
1991 akb
1992 akk
1993
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
2000
2001 /[^a]/
2002 aaaabcd
2003 aaAabcd
2004
2005 /[^a]/i
2006 aaaabcd
2007 aaAabcd
2008
2009 /[^az]/
2010 aaaabcd
2011 aaAabcd
2012
2013 /[^az]/i
2014 aaaabcd
2015 aaAabcd
2016
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
2019
2020 /P[^*]TAIRE[^*]{1,6}?LL/
2021 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
2022
2023 /P[^*]TAIRE[^*]{1,}?LL/
2024 xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
2025
2026 /(\.\d\d[1-9]?)\d+/
2027 1.230003938
2028 1.875000282
2029 1.235
2030
2031 /(\.\d\d((?=0)|\d(?=\d)))/
2032 1.230003938
2033 1.875000282
2034 *** Failers
2035 1.235
2036
2037 /a(?)b/
2038 ab
2039
2040 /\b(foo)\s+(\w+)/i
2041 Food is on the foo table
2042
2043 /foo(.*)bar/
2044 The food is under the bar in the barn.
2045
2046 /foo(.*?)bar/
2047 The food is under the bar in the barn.
2048
2049 /(.*)(\d*)/
2050 I have 2 numbers: 53147
2051
2052 /(.*)(\d+)/
2053 I have 2 numbers: 53147
2054
2055 /(.*?)(\d*)/
2056 I have 2 numbers: 53147
2057
2058 /(.*?)(\d+)/
2059 I have 2 numbers: 53147
2060
2061 /(.*)(\d+)$/
2062 I have 2 numbers: 53147
2063
2064 /(.*?)(\d+)$/
2065 I have 2 numbers: 53147
2066
2067 /(.*)\b(\d+)$/
2068 I have 2 numbers: 53147
2069
2070 /(.*\D)(\d+)$/
2071 I have 2 numbers: 53147
2072
2073 /^\D*(?!123)/
2074 ABC123
2075
2076 /^(\D*)(?=\d)(?!123)/
2077 ABC445
2078 *** Failers
2079 ABC123
2080
2081 /^[W-]46]/
2082 W46]789
2083 -46]789
2084 *** Failers
2085 Wall
2086 Zebra
2087 42
2088 [abcd]
2089 ]abcd[
2090
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
2103
2104 /\d\d\/\d\d\/\d\d\d\d/
2105 01/01/2000
2106
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
2110
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
2113
2114 /^(a){0,0}/
2115 bcd
2116 abc
2117 aab
2118
2119 /^(a){0,1}/
2120 bcd
2121 abc
2122 aab
2123
2124 /^(a){0,2}/
2125 bcd
2126 abc
2127 aab
2128
2129 /^(a){0,3}/
2130 bcd
2131 abc
2132 aab
2133 aaa
2134
2135 /^(a){0,}/
2136 bcd
2137 abc
2138 aab
2139 aaa
2140 aaaaaaaa
2141
2142 /^(a){1,1}/
2143 bcd
2144 abc
2145 aab
2146
2147 /^(a){1,2}/
2148 bcd
2149 abc
2150 aab
2151
2152 /^(a){1,3}/
2153 bcd
2154 abc
2155 aab
2156 aaa
2157
2158 /^(a){1,}/
2159 bcd
2160 abc
2161 aab
2162 aaa
2163 aaaaaaaa
2164
2165 /.*\.gif/
2166 borfle\nbib.gif\nno
2167
2168 /.{0,}\.gif/
2169 borfle\nbib.gif\nno
2170
2171 /.*\.gif/m
2172 borfle\nbib.gif\nno
2173
2174 /.*\.gif/s
2175 borfle\nbib.gif\nno
2176
2177 /.*\.gif/ms
2178 borfle\nbib.gif\nno
2179
2180 /.*$/
2181 borfle\nbib.gif\nno
2182
2183 /.*$/m
2184 borfle\nbib.gif\nno
2185
2186 /.*$/s
2187 borfle\nbib.gif\nno
2188
2189 /.*$/ms
2190 borfle\nbib.gif\nno
2191
2192 /.*$/
2193 borfle\nbib.gif\nno\n
2194
2195 /.*$/m
2196 borfle\nbib.gif\nno\n
2197
2198 /.*$/s
2199 borfle\nbib.gif\nno\n
2200
2201 /.*$/ms
2202 borfle\nbib.gif\nno\n
2203
2204 /(.*X|^B)/
2205 abcde\n1234Xyz
2206 BarFoo
2207 *** Failers
2208 abcde\nBar
2209
2210 /(.*X|^B)/m
2211 abcde\n1234Xyz
2212 BarFoo
2213 abcde\nBar
2214
2215 /(.*X|^B)/s
2216 abcde\n1234Xyz
2217 BarFoo
2218 *** Failers
2219 abcde\nBar
2220
2221 /(.*X|^B)/ms
2222 abcde\n1234Xyz
2223 BarFoo
2224 abcde\nBar
2225
2226 /(?s)(.*X|^B)/
2227 abcde\n1234Xyz
2228 BarFoo
2229 *** Failers
2230 abcde\nBar
2231
2232 /(?s:.*X|^B)/
2233 abcde\n1234Xyz
2234 BarFoo
2235 *** Failers
2236 abcde\nBar
2237
2238 /^.*B/
2239 **** Failers
2240 abc\nB
2241
2242 /(?s)^.*B/
2243 abc\nB
2244
2245 /(?m)^.*B/
2246 abc\nB
2247
2248 /(?ms)^.*B/
2249 abc\nB
2250
2251 /(?ms)^B/
2252 abc\nB
2253
2254 /(?s)B$/
2255 B\n
2256
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
2259
2260 /^\d\d\d\d\d\d\d\d\d\d\d\d/
2261 123456654321
2262
2263 /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
2264 123456654321
2265
2266 /^[abc]{12}/
2267 abcabcabcabc
2268
2269 /^[a-c]{12}/
2270 abcabcabcabc
2271
2272 /^(a|b|c){12}/
2273 abcabcabcabc
2274
2275 /^[abcdefghijklmnopqrstuvwxy0123456789]/
2276 n
2277 *** Failers
2278 z
2279
2280 /abcde{0,0}/
2281 abcd
2282 *** Failers
2283 abce
2284
2285 /ab[cd]{0,0}e/
2286 abe
2287 *** Failers
2288 abcde
2289
2290 /ab(c){0,0}d/
2291 abd
2292 *** Failers
2293 abcd
2294
2295 /a(b*)/
2296 a
2297 ab
2298 abbbb
2299 *** Failers
2300 bbbbb
2301
2302 /ab\d{0}e/
2303 abe
2304 *** Failers
2305 ab1e
2306
2307 /"([^\\"]+|\\.)*"/
2308 the \"quick\" brown fox
2309 \"the \\\"quick\\\" brown fox\"
2310
2311 /.*?/g+
2312 abc
2313
2314 /\b/g+
2315 abc
2316
2317 /\b/+g
2318 abc
2319
2320 //g
2321 abc
2322
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>
2325
2326 /a[^a]b/
2327 acb
2328 a\nb
2329
2330 /a.b/
2331 acb
2332 *** Failers
2333 a\nb
2334
2335 /a[^a]b/s
2336 acb
2337 a\nb
2338
2339 /a.b/s
2340 acb
2341 a\nb
2342
2343 /^(b+?|a){1,2}?c/
2344 bac
2345 bbac
2346 bbbac
2347 bbbbac
2348 bbbbbac
2349
2350 /^(b+|a){1,2}?c/
2351 bac
2352 bbac
2353 bbbac
2354 bbbbac
2355 bbbbbac
2356
2357 /(?!\A)x/m
2358 x\nb\n
2359 a\bx\n
2360
2361 /\x0{ab}/
2362 \0{ab}
2363
2364 /(A|B)*?CD/
2365 CD
2366
2367 /(A|B)*CD/
2368 CD
2369
2370 /(?<!bar)foo/
2371 foo
2372 catfood
2373 arfootle
2374 rfoosh
2375 *** Failers
2376 barfoo
2377 towbarfoo
2378
2379 /\w{3}(?<!bar)foo/
2380 catfood
2381 *** Failers
2382 foo
2383 barfoo
2384 towbarfoo
2385
2386 /(?<=(foo)a)bar/
2387 fooabar
2388 *** Failers
2389 bar
2390 foobbar
2391
2392 /\Aabc\z/m
2393 abc
2394 *** Failers
2395 abc\n
2396 qqq\nabc
2397 abc\nzzz
2398 qqq\nabc\nzzz
2399
2400 "(?>.*/)foo"
2401 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
2402
2403 "(?>.*/)foo"
2404 /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
2405
2406 /(?>(\.\d\d[1-9]?))\d+/
2407 1.230003938
2408 1.875000282
2409 *** Failers
2410 1.235
2411
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!
2416
2417 /(\d+)(\w)/
2418 12345a
2419 12345+
2420
2421 /((?>\d+))(\w)/
2422 12345a
2423 *** Failers
2424 12345+
2425
2426 /(?>a+)b/
2427 aaab
2428
2429 /((?>a+)b)/
2430 aaab
2431
2432 /(?>(a+))b/
2433 aaab
2434
2435 /(?>b)+/
2436 aaabbbccc
2437
2438 /(?>a+|b+|c+)*c/
2439 aaabbbbccccd
2440
2441 /(a+|b+|c+)*c/
2442 aaabbbbccccd
2443
2444 /((?>[^()]+)|\([^()]*\))+/
2445 ((abc(ade)ufh()()x
2446
2447 /\(((?>[^()]+)|\([^()]+\))+\)/
2448 (abc)
2449 (abc(def)xyz)
2450 *** Failers
2451 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2452
2453 /a(?-i)b/i
2454 ab
2455 Ab
2456 *** Failers
2457 aB
2458 AB
2459
2460 /(a (?x)b c)d e/
2461 a bcd e
2462 *** Failers
2463 a b cd e
2464 abcd e
2465 a bcde
2466
2467 /(a b(?x)c d (?-x)e f)/
2468 a bcde f
2469 *** Failers
2470 abcdef
2471
2472 /(a(?i)b)c/
2473 abc
2474 aBc
2475 *** Failers
2476 abC
2477 aBC
2478 Abc
2479 ABc
2480 ABC
2481 AbC
2482
2483 /a(?i:b)c/
2484 abc
2485 aBc
2486 *** Failers
2487 ABC
2488 abC
2489 aBC
2490
2491 /a(?i:b)*c/
2492 aBc
2493 aBBc
2494 *** Failers
2495 aBC
2496 aBBC
2497
2498 /a(?=b(?i)c)\w\wd/
2499 abcd
2500 abCd
2501 *** Failers
2502 aBCd
2503 abcD
2504
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
2512
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
2520
2521 /(?>a(?i)b+)+c/
2522 abc
2523 aBbc
2524 aBBc
2525 *** Failers
2526 Abc
2527 abAb
2528 abbC
2529
2530 /(?=a(?i)b)\w\wc/
2531 abc
2532 aBc
2533 *** Failers
2534 Ab
2535 abC
2536 aBC
2537
2538 /(?<=a(?i)b)(\w\w)c/
2539 abxxc
2540 aBxxc
2541 *** Failers
2542 Abxxc
2543 ABxxc
2544 abxxC
2545
2546 /^(?(?=abc)\w{3}:|\d\d)$/
2547 abc:
2548 12
2549 *** Failers
2550 123
2551 xyz
2552
2553 /^(?(?!abc)\d\d|\w{3}:)$/
2554 abc:
2555 12
2556 *** Failers
2557 123
2558 xyz
2559
2560 /(?(?<=foo)bar|cat)/
2561 foobar
2562 cat
2563 fcat
2564 focat
2565 *** Failers
2566 foocat
2567
2568 /(?(?<!foo)cat|bar)/
2569 foobar
2570 cat
2571 fcat
2572 focat
2573 *** Failers
2574 foocat
2575
2576 /(?>a*)*/
2577 a
2578 aa
2579 aaaa
2580
2581 /(abc|)+/
2582 abc
2583 abcabc
2584 abcabcabc
2585 xyz
2586
2587 /([a]*)*/
2588 a
2589 aaaaa
2590
2591 /([ab]*)*/
2592 a
2593 b
2594 ababab
2595 aaaabcde
2596 bbbb
2597
2598 /([^a]*)*/
2599 b
2600 bbbb
2601 aaa
2602
2603 /([^ab]*)*/
2604 cccc
2605 abab
2606
2607 /([a]*?)*/
2608 a
2609 aaaa
2610
2611 /([ab]*?)*/
2612 a
2613 b
2614 abab
2615 baba
2616
2617 /([^a]*?)*/
2618 b
2619 bbbb
2620 aaa
2621
2622 /([^ab]*?)*/
2623 c
2624 cccc
2625 baba
2626
2627 /(?>a*)*/
2628 a
2629 aaabcde
2630
2631 /((?>a*))*/
2632 aaaaa
2633 aabbaa
2634
2635 /((?>a*?))*/
2636 aaaaa
2637 aabbaa
2638
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
2644
2645 /(?i:saturday|sunday)/
2646 saturday
2647 sunday
2648 Saturday
2649 Sunday
2650 SATURDAY
2651 SUNDAY
2652 SunDay
2653
2654 /(a(?i)bc|BB)x/
2655 abcx
2656 aBCx
2657 bbx
2658 BBx
2659 *** Failers
2660 abcX
2661 aBCX
2662 bbX
2663 BBX
2664
2665 /^([ab](?i)[cd]|[ef])/
2666 ac
2667 aC
2668 bD
2669 elephant
2670 Europe
2671 frog
2672 France
2673 *** Failers
2674 Africa
2675
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
2686
2687 /(?<=foo\n)^bar/m
2688 foo\nbar
2689 *** Failers
2690 bar
2691 baz\nbar
2692
2693 /(?<=(?<!foo)bar)baz/
2694 barbaz
2695 barbarbaz
2696 koobarbaz
2697 *** Failers
2698 baz
2699 foobarbaz
2700
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./
2703
2704 /abc/
2705 abc
2706 xabcy
2707 ababc
2708 *** Failers
2709 xbc
2710 axc
2711 abx
2712
2713 /ab*c/
2714 abc
2715
2716 /ab*bc/
2717 abc
2718 abbc
2719 abbbbc
2720
2721 /.{1}/
2722 abbbbc
2723
2724 /.{3,4}/
2725 abbbbc
2726
2727 /ab{0,}bc/
2728 abbbbc
2729
2730 /ab+bc/
2731 abbc
2732 *** Failers
2733 abc
2734 abq
2735
2736 /ab{1,}bc/
2737
2738 /ab+bc/
2739 abbbbc
2740
2741 /ab{1,}bc/
2742 abbbbc
2743
2744 /ab{1,3}bc/
2745 abbbbc
2746
2747 /ab{3,4}bc/
2748 abbbbc
2749
2750 /ab{4,5}bc/
2751 *** Failers
2752 abq
2753 abbbbc
2754
2755 /ab?bc/
2756 abbc
2757 abc
2758
2759 /ab{0,1}bc/
2760 abc
2761
2762 /ab?bc/
2763
2764 /ab?c/
2765 abc
2766
2767 /ab{0,1}c/
2768 abc
2769
2770 /^abc$/
2771 abc
2772 *** Failers
2773 abbbbc
2774 abcc
2775
2776 /^abc/
2777 abcc
2778
2779 /^abc$/
2780
2781 /abc$/
2782 aabc
2783 *** Failers
2784 aabc
2785 aabcd
2786
2787 /^/
2788 abc
2789
2790 /$/
2791 abc
2792
2793 /a.c/
2794 abc
2795 axc
2796
2797 /a.*c/
2798 axyzc
2799
2800 /a[bc]d/
2801 abd
2802 *** Failers
2803 axyzd
2804 abc
2805
2806 /a[b-d]e/
2807 ace
2808
2809 /a[b-d]/
2810 aac
2811
2812 /a[-b]/
2813 a-
2814
2815 /a[b-]/
2816 a-
2817
2818 /a]/
2819 a]
2820
2821 /a[]]b/
2822 a]b
2823
2824 /a[^bc]d/
2825 aed
2826 *** Failers
2827 abd
2828 abd
2829
2830 /a[^-b]c/
2831 adc
2832
2833 /a[^]b]c/
2834 adc
2835 *** Failers
2836 a-c
2837 a]c
2838
2839 /\ba\b/
2840 a-
2841 -a
2842 -a-
2843
2844 /\by\b/
2845 *** Failers
2846 xy
2847 yz
2848 xyz
2849
2850 /\Ba\B/
2851 *** Failers
2852 a-
2853 -a
2854 -a-
2855
2856 /\By\b/
2857 xy
2858
2859 /\by\B/
2860 yz
2861
2862 /\By\B/
2863 xyz
2864
2865 /\w/
2866 a
2867
2868 /\W/
2869 -
2870 *** Failers
2871 -
2872 a
2873
2874 /a\sb/
2875 a b
2876
2877 /a\Sb/
2878 a-b
2879 *** Failers
2880 a-b
2881 a b
2882
2883 /\d/
2884 1
2885
2886 /\D/
2887 -
2888 *** Failers
2889 -
2890 1
2891
2892 /[\w]/
2893 a
2894
2895 /[\W]/
2896 -
2897 *** Failers
2898 -
2899 a
2900
2901 /a[\s]b/
2902 a b
2903
2904 /a[\S]b/
2905 a-b
2906 *** Failers
2907 a-b
2908 a b
2909
2910 /[\d]/
2911 1
2912
2913 /[\D]/
2914 -
2915 *** Failers
2916 -
2917 1
2918
2919 /ab|cd/
2920 abc
2921 abcd
2922
2923 /()ef/
2924 def
2925
2926 /$b/
2927
2928 /a\(b/
2929 a(b
2930
2931 /a\(*b/
2932 ab
2933 a((b
2934
2935 /a\\b/
2936 a\b
2937
2938 /((a))/
2939 abc
2940
2941 /(a)b(c)/
2942 abc
2943
2944 /a+b+c/
2945 aabbabc
2946
2947 /a{1,}b{1,}c/
2948 aabbabc
2949
2950 /a.+?c/
2951 abcabc
2952
2953 /(a+|b)*/
2954 ab
2955
2956 /(a+|b){0,}/
2957 ab
2958
2959 /(a+|b)+/
2960 ab
2961
2962 /(a+|b){1,}/
2963 ab
2964
2965 /(a+|b)?/
2966 ab
2967
2968 /(a+|b){0,1}/
2969 ab
2970
2971 /[^ab]*/
2972 cde
2973
2974 /abc/
2975 *** Failers
2976 b
2977
2978
2979 /a*/
2980
2981
2982 /([abc])*d/
2983 abbbcd
2984
2985 /([abc])*bcd/
2986 abcd
2987
2988 /a|b|c|d|e/
2989 e
2990
2991 /(a|b|c|d|e)f/
2992 ef
2993
2994 /abcd*efg/
2995 abcdefg
2996
2997 /ab*/
2998 xabyabbbz
2999 xayabbbz
3000
3001 /(ab|cd)e/
3002 abcde
3003
3004 /[abhgefdc]ij/
3005 hij
3006
3007 /^(ab|cd)e/
3008
3009 /(abc|)ef/
3010 abcdef
3011
3012 /(a|b)c*d/
3013 abcd
3014
3015 /(ab|ab*)bc/
3016 abc
3017
3018 /a([bc]*)c*/
3019 abc
3020
3021 /a([bc]*)(c*d)/
3022 abcd
3023
3024 /a([bc]+)(c*d)/
3025 abcd
3026
3027 /a([bc]*)(c+d)/
3028 abcd
3029
3030 /a[bcd]*dcdcde/
3031 adcdcde
3032
3033 /a[bcd]+dcdcde/
3034 *** Failers
3035 abcde
3036 adcdcde
3037
3038 /(ab|a)b*c/
3039 abc
3040
3041 /((a)(b)c)(d)/
3042 abcd
3043
3044 /[a-zA-Z_][a-zA-Z0-9_]*/
3045 alpha
3046
3047 /^a(bc+|b[eh])g|.h$/
3048 abh
3049
3050 /(bc+d$|ef*g.|h?i(j|k))/
3051 effgz
3052 ij
3053 reffgz
3054 *** Failers
3055 effg
3056 bcdd
3057
3058 /((((((((((a))))))))))/
3059 a
3060
3061 /(((((((((a)))))))))/
3062 a
3063
3064 /multiple words of text/
3065 *** Failers
3066 aa
3067 uh-uh
3068
3069 /multiple words/
3070 multiple words, yeah
3071
3072 /(.*)c(.*)/
3073 abcde
3074
3075 /\((.*), (.*)\)/
3076 (a, b)
3077
3078 /[k]/
3079
3080 /abcd/
3081 abcd
3082
3083 /a(bc)d/
3084 abcd
3085
3086 /a[-]?c/
3087 ac
3088
3089 /abc/i
3090 ABC
3091 XABCY
3092 ABABC
3093 *** Failers
3094 aaxabxbaxbbx
3095 XBC
3096 AXC
3097 ABX
3098
3099 /ab*c/i
3100 ABC
3101
3102 /ab*bc/i
3103 ABC
3104 ABBC
3105
3106 /ab*?bc/i
3107 ABBBBC
3108
3109 /ab{0,}?bc/i
3110 ABBBBC
3111
3112 /ab+?bc/i
3113 ABBC
3114
3115 /ab+bc/i
3116 *** Failers
3117 ABC
3118 ABQ
3119
3120 /ab{1,}bc/i
3121
3122 /ab+bc/i
3123 ABBBBC
3124
3125 /ab{1,}?bc/i
3126 ABBBBC
3127
3128 /ab{1,3}?bc/i
3129 ABBBBC
3130
3131 /ab{3,4}?bc/i
3132 ABBBBC
3133
3134 /ab{4,5}?bc/i
3135 *** Failers
3136 ABQ
3137 ABBBBC
3138
3139 /ab??bc/i
3140 ABBC
3141 ABC
3142
3143 /ab{0,1}?bc/i
3144 ABC
3145
3146 /ab??bc/i
3147
3148 /ab??c/i
3149 ABC
3150
3151 /ab{0,1}?c/i
3152 ABC
3153
3154 /^abc$/i
3155 ABC
3156 *** Failers
3157 ABBBBC
3158 ABCC
3159
3160 /^abc/i
3161 ABCC
3162
3163 /^abc$/i
3164
3165 /abc$/i
3166 AABC
3167
3168 /^/i
3169 ABC
3170
3171 /$/i
3172 ABC
3173
3174 /a.c/i
3175 ABC
3176 AXC
3177
3178 /a.*?c/i
3179 AXYZC
3180
3181 /a.*c/i
3182 *** Failers
3183 AABC
3184 AXYZD
3185
3186 /a[bc]d/i
3187 ABD
3188
3189 /a[b-d]e/i
3190 ACE
3191 *** Failers
3192 ABC
3193 ABD
3194
3195 /a[b-d]/i
3196 AAC
3197
3198 /a[-b]/i
3199 A-
3200
3201 /a[b-]/i
3202 A-
3203
3204 /a]/i
3205 A]
3206
3207 /a[]]b/i
3208 A]B
3209
3210 /a[^bc]d/i
3211 AED
3212
3213 /a[^-b]c/i
3214 ADC
3215 *** Failers
3216 ABD
3217 A-C
3218
3219 /a[^]b]c/i
3220 ADC
3221
3222 /ab|cd/i
3223 ABC
3224 ABCD
3225
3226 /()ef/i
3227 DEF
3228
3229 /$b/i
3230 *** Failers
3231 A]C
3232 B
3233
3234 /a\(b/i
3235 A(B
3236
3237 /a\(*b/i
3238 AB
3239 A((B
3240
3241 /a\\b/i
3242 A\B
3243
3244 /((a))/i
3245 ABC
3246
3247 /(a)b(c)/i
3248 ABC
3249
3250 /a+b+c/i
3251 AABBABC
3252
3253 /a{1,}b{1,}c/i
3254 AABBABC
3255
3256 /a.+?c/i
3257 ABCABC
3258
3259 /a.*?c/i
3260 ABCABC
3261
3262 /a.{0,5}?c/i
3263 ABCABC
3264
3265 /(a+|b)*/i
3266 AB
3267
3268 /(a+|b){0,}/i
3269 AB
3270
3271 /(a+|b)+/i
3272 AB
3273
3274 /(a+|b){1,}/i
3275 AB
3276
3277 /(a+|b)?/i
3278 AB
3279
3280 /(a+|b){0,1}/i
3281 AB
3282
3283 /(a+|b){0,1}?/i
3284 AB
3285
3286 /[^ab]*/i
3287 CDE
3288
3289 /abc/i
3290
3291 /a*/i
3292
3293
3294 /([abc])*d/i
3295 ABBBCD
3296
3297 /([abc])*bcd/i
3298 ABCD
3299
3300 /a|b|c|d|e/i
3301 E
3302
3303 /(a|b|c|d|e)f/i
3304 EF
3305
3306 /abcd*efg/i
3307 ABCDEFG
3308
3309 /ab*/i
3310 XABYABBBZ
3311 XAYABBBZ
3312
3313 /(ab|cd)e/i
3314 ABCDE
3315
3316 /[abhgefdc]ij/i
3317 HIJ
3318
3319 /^(ab|cd)e/i
3320 ABCDE
3321
3322 /(abc|)ef/i
3323 ABCDEF
3324
3325 /(a|b)c*d/i
3326 ABCD
3327
3328 /(ab|ab*)bc/i
3329 ABC
3330
3331 /a([bc]*)c*/i
3332 ABC
3333
3334 /a([bc]*)(c*d)/i
3335 ABCD
3336
3337 /a([bc]+)(c*d)/i
3338 ABCD
3339
3340 /a([bc]*)(c+d)/i
3341 ABCD
3342
3343 /a[bcd]*dcdcde/i
3344 ADCDCDE
3345
3346 /a[bcd]+dcdcde/i
3347
3348 /(ab|a)b*c/i
3349 ABC
3350
3351 /((a)(b)c)(d)/i
3352 ABCD
3353
3354 /[a-zA-Z_][a-zA-Z0-9_]*/i
3355 ALPHA
3356
3357 /^a(bc+|b[eh])g|.h$/i
3358 ABH
3359
3360 /(bc+d$|ef*g.|h?i(j|k))/i
3361 EFFGZ
3362 IJ
3363 REFFGZ
3364 *** Failers
3365 ADCDCDE
3366 EFFG
3367 BCDD
3368
3369 /((((((((((a))))))))))/i
3370 A
3371
3372 /(((((((((a)))))))))/i
3373 A
3374
3375 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
3376 A
3377
3378 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
3379 C
3380
3381 /multiple words of text/i
3382 *** Failers
3383 AA
3384 UH-UH
3385
3386 /multiple words/i
3387 MULTIPLE WORDS, YEAH
3388
3389 /(.*)c(.*)/i
3390 ABCDE
3391
3392 /\((.*), (.*)\)/i
3393 (A, B)
3394
3395 /[k]/i
3396
3397 /abcd/i
3398 ABCD
3399
3400 /a(bc)d/i
3401 ABCD
3402
3403 /a[-]?c/i
3404 AC
3405
3406 /a(?!b)./
3407 abad
3408
3409 /a(?=d)./
3410 abad
3411
3412 /a(?=c|d)./
3413 abad
3414
3415 /a(?:b|c|d)(.)/
3416 ace
3417
3418 /a(?:b|c|d)*(.)/
3419 ace
3420
3421 /a(?:b|c|d)+?(.)/
3422 ace
3423 acdbcdbe
3424
3425 /a(?:b|c|d)+(.)/
3426 acdbcdbe
3427
3428 /a(?:b|c|d){2}(.)/
3429 acdbcdbe
3430
3431 /a(?:b|c|d){4,5}(.)/
3432 acdbcdbe
3433
3434 /a(?:b|c|d){4,5}?(.)/
3435 acdbcdbe
3436
3437 /((foo)|(bar))*/
3438 foobar
3439
3440 /a(?:b|c|d){6,7}(.)/
3441 acdbcdbe
3442
3443 /a(?:b|c|d){6,7}?(.)/
3444 acdbcdbe
3445
3446 /a(?:b|c|d){5,6}(.)/
3447 acdbcdbe
3448
3449 /a(?:b|c|d){5,6}?(.)/
3450 acdbcdbe
3451
3452 /a(?:b|c|d){5,7}(.)/
3453 acdbcdbe
3454
3455 /a(?:b|c|d){5,7}?(.)/
3456 acdbcdbe
3457
3458 /a(?:b|(c|e){1,2}?|d)+?(.)/
3459 ace
3460
3461 /^(.+)?B/
3462 AB
3463
3464 /^([^a-z])|(\^)$/
3465 .
3466
3467 /^[<>]&/
3468 <&OUT
3469
3470 /(?:(f)(o)(o)|(b)(a)(r))*/
3471 foobar
3472
3473 /(?<=a)b/
3474 ab
3475 *** Failers
3476 cb
3477 b
3478
3479 /(?<!c)b/
3480 ab
3481 b
3482 b
3483
3484 /(?:..)*a/
3485 aba
3486
3487 /(?:..)*?a/
3488 aba
3489
3490 /^(){3,5}/
3491 abc
3492
3493 /^(a+)*ax/
3494 aax
3495
3496 /^((a|b)+)*ax/
3497 aax
3498
3499 /^((a|bc)+)*ax/
3500 aax
3501
3502 /(a|x)*ab/
3503 cab
3504
3505 /(a)*ab/
3506 cab
3507
3508 /(?:(?i)a)b/
3509 ab
3510
3511 /((?i)a)b/
3512 ab
3513
3514 /(?:(?i)a)b/
3515 Ab
3516
3517 /((?i)a)b/
3518 Ab
3519
3520 /(?:(?i)a)b/
3521 *** Failers
3522 cb
3523 aB
3524
3525 /((?i)a)b/
3526
3527 /(?i:a)b/
3528 ab
3529
3530 /((?i:a))b/
3531 ab
3532
3533 /(?i:a)b/
3534 Ab
3535
3536 /((?i:a))b/
3537 Ab
3538
3539 /(?i:a)b/
3540 *** Failers
3541 aB
3542 aB
3543
3544 /((?i:a))b/
3545
3546 /(?:(?-i)a)b/i
3547 ab
3548
3549 /((?-i)a)b/i
3550 ab
3551
3552 /(?:(?-i)a)b/i
3553 aB
3554
3555 /((?-i)a)b/i
3556 aB
3557
3558 /(?:(?-i)a)b/i
3559 *** Failers
3560 aB
3561 Ab
3562
3563 /((?-i)a)b/i
3564
3565 /(?:(?-i)a)b/i
3566 aB
3567
3568 /((?-i)a)b/i
3569 aB
3570
3571 /(?:(?-i)a)b/i
3572 *** Failers
3573 Ab
3574 AB
3575
3576 /((?-i)a)b/i
3577
3578 /(?-i:a)b/i
3579 ab
3580
3581 /((?-i:a))b/i
3582 ab
3583
3584 /(?-i:a)b/i
3585 aB
3586
3587 /((?-i:a))b/i
3588 aB
3589
3590 /(?-i:a)b/i
3591 *** Failers
3592 AB
3593 Ab
3594
3595 /((?-i:a))b/i
3596
3597 /(?-i:a)b/i
3598 aB
3599
3600 /((?-i:a))b/i
3601 aB
3602
3603 /(?-i:a)b/i
3604 *** Failers
3605 Ab
3606 AB
3607
3608 /((?-i:a))b/i
3609
3610 /((?-i:a.))b/i
3611 *** Failers
3612 AB
3613 a\nB
3614
3615 /((?s-i:a.))b/i
3616 a\nB
3617
3618 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
3619 cabbbb
3620
3621 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
3622 caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
3623
3624 /foo\w*\d{4}baz/
3625 foobar1234baz
3626
3627 /x(~~)*(?:(?:F)?)?/
3628 x~~
3629
3630 /^a(?#xxx){3}c/
3631 aaac
3632
3633 /^a (?#xxx) (?#yyy) {3}c/x
3634 aaac
3635
3636 /(?<![cd])b/
3637 *** Failers
3638 B\nB
3639 dbcb
3640
3641 /(?<![cd])[ab]/
3642 dbaacb
3643
3644 /(?<!(c|d))b/
3645
3646 /(?<!(c|d))[ab]/
3647 dbaacb
3648
3649 /(?<!cd)[ab]/
3650 cdaccb
3651
3652 /^(?:a?b?)*$/
3653 *** Failers
3654 dbcb
3655 a--
3656
3657 /((?s)^a(.))((?m)^b$)/
3658 a\nb\nc\n
3659
3660 /((?m)^b$)/
3661 a\nb\nc\n
3662
3663 /(?m)^b/
3664 a\nb\n
3665
3666 /(?m)^(b)/
3667 a\nb\n
3668
3669 /((?m)^b)/
3670 a\nb\n
3671
3672 /\n((?m)^b)/
3673 a\nb\n
3674
3675 /((?s).)c(?!.)/
3676 a\nb\nc\n
3677 a\nb\nc\n
3678
3679 /((?s)b.)c(?!.)/
3680 a\nb\nc\n
3681 a\nb\nc\n
3682
3683 /^b/
3684
3685 /()^b/
3686 *** Failers
3687 a\nb\nc\n
3688 a\nb\nc\n
3689
3690 /((?m)^b)/
3691 a\nb\nc\n
3692
3693 /(?(?!a)a|b)/
3694
3695 /(?(?!a)b|a)/
3696 a
3697
3698 /(?(?=a)b|a)/
3699 *** Failers
3700 a
3701 a
3702
3703 /(?(?=a)a|b)/
3704 a
3705
3706 /(\w+:)+/
3707 one:
3708
3709 /$(?<=^(a))/
3710 a
3711
3712 /([\w:]+::)?(\w+)$/
3713 abcd
3714 xy:z:::abcd
3715
3716 /^[^bcd]*(c+)/
3717 aexycd
3718
3719 /(a*)b+/
3720 caab
3721
3722 /([\w:]+::)?(\w+)$/
3723 abcd
3724 xy:z:::abcd
3725 *** Failers
3726 abcd:
3727 abcd:
3728
3729 /^[^bcd]*(c+)/
3730 aexycd
3731
3732 /(>a+)ab/
3733
3734 /(?>a+)b/
3735 aaab
3736
3737 /([[:]+)/
3738 a:[b]:
3739
3740 /([[=]+)/
3741 a=[b]=
3742
3743 /([[.]+)/
3744 a.[b].
3745
3746 /((?>a+)b)/
3747 aaab
3748
3749 /(?>(a+))b/
3750 aaab
3751
3752 /((?>[^()]+)|\([^()]*\))+/
3753 ((abc(ade)ufh()()x
3754
3755 /a\Z/
3756 *** Failers
3757 aaab
3758 a\nb\n
3759
3760 /b\Z/
3761 a\nb\n
3762
3763 /b\z/
3764
3765 /b\Z/
3766 a\nb
3767
3768 /b\z/
3769 a\nb
3770 *** Failers
3771
3772 /(?>.*)(?<=(abcd|wxyz))/
3773 alphabetabcd
3774 endingwxyz
3775 *** Failers
3776 a rather long string that doesn't end with one of them
3777
3778 /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
3779 word cat dog elephant mussel cow horse canary baboon snake shark otherword
3780 word cat dog elephant mussel cow horse canary baboon snake shark
3781
3782 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
3783 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
3784
3785 /(?<=\d{3}(?!999))foo/
3786 999foo
3787 123999foo
3788 *** Failers
3789 123abcfoo
3790
3791 /(?<=(?!...999)\d{3})foo/
3792 999foo
3793 123999foo
3794 *** Failers
3795 123abcfoo
3796
3797 /(?<=\d{3}(?!999)...)foo/
3798 123abcfoo
3799 123456foo
3800 *** Failers
3801 123999foo
3802
3803 /(?<=\d{3}...)(?<!999)foo/
3804 123abcfoo
3805 123456foo
3806 *** Failers
3807 123999foo
3808
3809 /((Z)+|A)*/
3810 ZABCDEFG
3811
3812 /(Z()|A)*/
3813 ZABCDEFG
3814
3815 /(Z(())|A)*/
3816 ZABCDEFG
3817
3818 /((?>Z)+|A)*/
3819 ZABCDEFG
3820
3821 /((?>)+|A)*/
3822 ZABCDEFG
3823
3824 /a*/g
3825 abbab
3826
3827 /^[a-\d]/
3828 abcde
3829 -things
3830 0digit
3831 *** Failers
3832 bcdef
3833
3834 /^[\d-a]/
3835 abcde
3836 -things
3837 0digit
3838 *** Failers
3839 bcdef
3840
3841 /[[:space:]]+/
3842 > \x09\x0a\x0c\x0d\x0b<
3843
3844 /[[:blank:]]+/
3845 > \x09\x0a\x0c\x0d\x0b<
3846
3847 /[\s]+/
3848 > \x09\x0a\x0c\x0d\x0b<
3849
3850 /\s+/
3851 > \x09\x0a\x0c\x0d\x0b<
3852
3853 /a b/x
3854 ab
3855
3856 /(?!\A)x/m
3857 a\nxb\n
3858
3859 /(?!^)x/m
3860 a\nxb\n
3861
3862 /abc\Qabc\Eabc/
3863 abcabcabc
3864
3865 /abc\Q(*+|\Eabc/
3866 abc(*+|abc
3867
3868 / abc\Q abc\Eabc/x
3869 abc abcabc
3870 *** Failers
3871 abcabcabc
3872
3873 /abc#comment
3874 \Q#not comment
3875 literal\E/x
3876 abc#not comment\n literal
3877
3878 /abc#comment
3879 \Q#not comment
3880 literal/x
3881 abc#not comment\n literal
3882
3883 /abc#comment
3884 \Q#not comment
3885 literal\E #more comment
3886 /x
3887 abc#not comment\n literal
3888
3889 /abc#comment
3890 \Q#not comment
3891 literal\E #more comment/x
3892 abc#not comment\n literal
3893
3894 /\Qabc\$xyz\E/
3895 abc\\\$xyz
3896
3897 /\Qabc\E\$\Qxyz\E/
3898 abc\$xyz
3899
3900 /\Gabc/
3901 abc
3902 *** Failers
3903 xyzabc
3904
3905 /\Gabc./g
3906 abc1abc2xyzabc3
3907
3908 /abc./g
3909 abc1abc2xyzabc3
3910
3911 /a(?x: b c )d/
3912 XabcdY
3913 *** Failers
3914 Xa b c d Y
3915
3916 /((?x)x y z | a b c)/
3917 XabcY
3918 AxyzB
3919
3920 /(?i)AB(?-i)C/
3921 XabCY
3922 *** Failers
3923 XabcY
3924
3925 /((?i)AB(?-i)C|D)E/
3926 abCE
3927 DE
3928 *** Failers
3929 abcE
3930 abCe
3931 dE
3932 De
3933
3934 /[z\Qa-d]\E]/
3935 z
3936 a
3937 -
3938 d
3939 ]
3940 *** Failers
3941 b
3942
3943 /[\z\C]/
3944 z
3945 C
3946
3947 /\M/
3948 M
3949
3950 /(a+)*b/
3951 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3952
3953 /(?i)reg(?:ul(?:[a]|ae)r|ex)/
3954 REGular
3955 regulaer
3956 Regex
3957 regulr
3958
3959 /[--]+/
3960
3961
3962
3963
3964
3965 /(?<=Z)X./
3966 \x84XAZXB
3967
3968 /^(?(2)a|(1)(2))+$/
3969 123a
3970
3971 /(?<=a|bbbb)c/
3972 ac
3973 bbbbc
3974
3975 /abc/>testsavedregex
3976 <testsavedregex
3977 abc
3978 *** Failers
3979 bca
3980
3981 /abc/F>testsavedregex
3982 <testsavedregex
3983 abc
3984 *** Failers
3985 bca
3986
3987 /(a|b)/S>testsavedregex
3988 <testsavedregex
3989 abc
3990 *** Failers
3991 def
3992
3993 /(a|b)/SF>testsavedregex
3994 <testsavedregex
3995 abc
3996 *** Failers
3997 def
3998
3999 /line\nbreak/
4000 this is a line\nbreak
4001 line one\nthis is a line\nbreak in the second line
4002
4003 /line\nbreak/f
4004 this is a line\nbreak
4005 ** Failers
4006 line one\nthis is a line\nbreak in the second line
4007
4008 /line\nbreak/mf
4009 this is a line\nbreak
4010 ** Failers
4011 line one\nthis is a line\nbreak in the second line
4012
4013 /1234/
4014 123\P
4015 a4\P\R
4016
4017 /1234/
4018 123\P
4019 4\P\R
4020
4021 /^/mg
4022 a\nb\nc\n
4023 \
4024
4025 /(?<=C\n)^/mg
4026 A\nC\nC\n
4027
4028 /(?s)A?B/
4029 AB
4030 aB
4031
4032 /(?s)A*B/
4033 AB
4034 aB
4035
4036 /(?m)A?B/
4037 AB
4038 aB
4039
4040 /(?m)A*B/
4041 AB
4042 aB
4043
4044 /Content-Type\x3A[^\r\n]{6,}/
4045 Content-Type:xxxxxyyy
4046
4047 /Content-Type\x3A[^\r\n]{6,}z/
4048 Content-Type:xxxxxyyyz
4049
4050 /Content-Type\x3A[^a]{6,}/
4051 Content-Type:xxxyyy
4052
4053 /Content-Type\x3A[^a]{6,}z/
4054 Content-Type:xxxyyyz
4055
4056 /^abc/m
4057 xyz\nabc
4058 xyz\nabc\<lf>
4059 xyz\r\nabc\<lf>
4060 xyz\rabc\<cr>
4061 xyz\r\nabc\<crlf>
4062 ** Failers
4063 xyz\nabc\<cr>
4064 xyz\r\nabc\<cr>
4065 xyz\nabc\<crlf>
4066 xyz\rabc\<crlf>
4067 xyz\rabc\<lf>
4068
4069 /abc$/m<lf>
4070 xyzabc
4071 xyzabc\n
4072 xyzabc\npqr
4073 xyzabc\r\<cr>
4074 xyzabc\rpqr\<cr>
4075 xyzabc\r\n\<crlf>
4076 xyzabc\r\npqr\<crlf>
4077 ** Failers
4078 xyzabc\r
4079 xyzabc\rpqr
4080 xyzabc\r\n
4081 xyzabc\r\npqr
4082
4083 /^abc/m<cr>
4084 xyz\rabcdef
4085 xyz\nabcdef\<lf>
4086 ** Failers
4087 xyz\nabcdef
4088
4089 /^abc/m<lf>
4090 xyz\nabcdef
4091 xyz\rabcdef\<cr>
4092 ** Failers
4093 xyz\rabcdef
4094
4095 /^abc/m<crlf>
4096 xyz\r\nabcdef
4097 xyz\rabcdef\<cr>
4098 ** Failers
4099 xyz\rabcdef
4100
4101 /.*/<lf>
4102 abc\ndef
4103 abc\rdef
4104 abc\r\ndef
4105 \<cr>abc\ndef
4106 \<cr>abc\rdef
4107 \<cr>abc\r\ndef
4108 \<crlf>abc\ndef
4109 \<crlf>abc\rdef
4110 \<crlf>abc\r\ndef
4111
4112 /\w+(.)(.)?def/s
4113 abc\ndef
4114 abc\rdef
4115 abc\r\ndef
4116
4117 /^\w+=.*(\\\n.*)*/
4118 abc=xyz\\\npqr
4119
4120 /^(a()*)*/
4121 aaaa
4122
4123 /^(?:a(?:(?:))*)*/
4124 aaaa
4125
4126 /^(a()+)+/
4127 aaaa
4128
4129 /^(?:a(?:(?:))+)+/
4130 aaaa
4131
4132 /(a|)*\d/
4133 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4134 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4135
4136 /(?>a|)*\d/
4137 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4138 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4139
4140 /(?:a|)*\d/
4141 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4142 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4143
4144 /^a.b/<lf>
4145 a\rb
4146 a\nb\<cr>
4147 ** Failers
4148 a\nb
4149 a\nb\<any>
4150 a\rb\<cr>
4151 a\rb\<any>
4152
4153 /^abc./mgx<any>
4154 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 \x{2028}abc8 \x{2029}abc9 JUNK
4155
4156 /abc.$/mgx<any>
4157 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7\x{2028} abc8\x{2029} abc9
4158
4159 /^a\Rb/
4160 a\nb
4161 a\rb
4162 a\r\nb
4163 a\x0bb
4164 a\x0cb
4165 a\x85b
4166 ** Failers
4167 a\n\rb
4168
4169 /^a\R*b/
4170 ab
4171 a\nb
4172 a\rb
4173 a\r\nb
4174 a\x0bb
4175 a\x0cb
4176 a\x85b
4177 a\n\rb
4178 a\n\r\x85\x0cb
4179
4180 /^a\R+b/
4181 a\nb
4182 a\rb
4183 a\r\nb
4184 a\x0bb
4185 a\x0cb
4186 a\x85b
4187 a\n\rb
4188 a\n\r\x85\x0cb
4189 ** Failers
4190 ab
4191
4192 /^a\R{1,3}b/
4193 a\nb
4194 a\n\rb
4195 a\n\r\x85b
4196 a\r\n\r\nb
4197 a\r\n\r\n\r\nb
4198 a\n\r\n\rb
4199 a\n\n\r\nb
4200 ** Failers
4201 a\n\n\n\rb
4202 a\r
4203
4204 /^a[\R]b/
4205 aRb
4206 ** Failers
4207 a\nb
4208
4209 /.+foo/
4210 afoo
4211 ** Failers
4212 \r\nfoo
4213 \nfoo
4214
4215 /.+foo/<crlf>
4216 afoo
4217 \nfoo
4218 ** Failers
4219 \r\nfoo
4220
4221 /.+foo/<any>
4222 afoo
4223 ** Failers
4224 \nfoo
4225 \r\nfoo
4226
4227 /.+foo/s
4228 afoo
4229 \r\nfoo
4230 \nfoo
4231
4232 /^$/mg<any>
4233 abc\r\rxyz
4234 abc\n\rxyz
4235 ** Failers
4236 abc\r\nxyz
4237
4238 /^X/m
4239 XABC
4240 ** Failers
4241 XABC\B
4242
4243 /(?m)^$/<any>g+
4244 abc\r\n\r\n
4245
4246 /(?m)^$|^\r\n/<any>g+
4247 abc\r\n\r\n
4248
4249 /(?m)$/<any>g+
4250 abc\r\n\r\n
4251
4252 /(?|(abc)|(xyz))/
4253 >abc<
4254 >xyz<
4255
4256 /(x)(?|(abc)|(xyz))(x)/
4257 xabcx
4258 xxyzx
4259
4260 /(x)(?|(abc)(pqr)|(xyz))(x)/
4261 xabcpqrx
4262 xxyzx
4263
4264 /(?|(abc)|(xyz))(?1)/
4265 abcabc
4266 xyzabc
4267 ** Failers
4268 xyzxyz
4269
4270 / End of testinput7 /

Properties

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

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12