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

Contents of /code/trunk/testdata/testinput7

Parent Directory Parent Directory | Revision Log Revision Log


Revision 442 - (hide annotations) (download)
Fri Sep 11 10:21:02 2009 UTC (4 years, 10 months ago) by ph10
File size: 80656 byte(s)
Added PCRE_NOTEMPTY_ATSTART to fix /g bug when \K is present.

1 nigel 77 /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 nigel 87 foob\P\>2
487 nigel 77 foobar...\R\P\>4
488     xyzfo\P
489 nigel 87 foobar\>2
490 nigel 77 *** 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 nigel 93 c/x
1779 nigel 77 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 nigel 93 /^a.b/<lf>
1892 nigel 77 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 nigel 91 /(abc)\100/
1912 nigel 77 abc\x40
1913     abc\100
1914    
1915 nigel 91 /(abc)\1000/
1916 nigel 77 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 ph10 178 /ab\idef/
1935     abidef
1936 nigel 77
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+bc/
2737     abbbbc
2738    
2739     /ab{1,}bc/
2740     abbbbc
2741    
2742     /ab{1,3}bc/
2743     abbbbc
2744    
2745     /ab{3,4}bc/
2746     abbbbc
2747    
2748     /ab{4,5}bc/
2749     *** Failers
2750     abq
2751     abbbbc
2752    
2753     /ab?bc/
2754     abbc
2755     abc
2756    
2757     /ab{0,1}bc/
2758     abc
2759    
2760     /ab?bc/
2761    
2762     /ab?c/
2763     abc
2764    
2765     /ab{0,1}c/
2766     abc
2767    
2768     /^abc$/
2769     abc
2770     *** Failers
2771     abbbbc
2772     abcc
2773    
2774     /^abc/
2775     abcc
2776    
2777     /^abc$/
2778    
2779     /abc$/
2780     aabc
2781     *** Failers
2782     aabc
2783     aabcd
2784    
2785     /^/
2786     abc
2787    
2788     /$/
2789     abc
2790    
2791     /a.c/
2792     abc
2793     axc
2794    
2795     /a.*c/
2796     axyzc
2797    
2798     /a[bc]d/
2799     abd
2800     *** Failers
2801     axyzd
2802     abc
2803    
2804     /a[b-d]e/
2805     ace
2806    
2807     /a[b-d]/
2808     aac
2809    
2810     /a[-b]/
2811     a-
2812    
2813     /a[b-]/
2814     a-
2815    
2816     /a]/
2817     a]
2818    
2819     /a[]]b/
2820     a]b
2821    
2822     /a[^bc]d/
2823     aed
2824     *** Failers
2825     abd
2826     abd
2827    
2828     /a[^-b]c/
2829     adc
2830    
2831     /a[^]b]c/
2832     adc
2833     *** Failers
2834     a-c
2835     a]c
2836    
2837     /\ba\b/
2838     a-
2839     -a
2840     -a-
2841    
2842     /\by\b/
2843     *** Failers
2844     xy
2845     yz
2846     xyz
2847    
2848     /\Ba\B/
2849     *** Failers
2850     a-
2851     -a
2852     -a-
2853    
2854     /\By\b/
2855     xy
2856    
2857     /\by\B/
2858     yz
2859    
2860     /\By\B/
2861     xyz
2862    
2863     /\w/
2864     a
2865    
2866     /\W/
2867     -
2868     *** Failers
2869     -
2870     a
2871    
2872     /a\sb/
2873     a b
2874    
2875     /a\Sb/
2876     a-b
2877     *** Failers
2878     a-b
2879     a b
2880    
2881     /\d/
2882     1
2883    
2884     /\D/
2885     -
2886     *** Failers
2887     -
2888     1
2889    
2890     /[\w]/
2891     a
2892    
2893     /[\W]/
2894     -
2895     *** Failers
2896     -
2897     a
2898    
2899     /a[\s]b/
2900     a b
2901    
2902     /a[\S]b/
2903     a-b
2904     *** Failers
2905     a-b
2906     a b
2907    
2908     /[\d]/
2909     1
2910    
2911     /[\D]/
2912     -
2913     *** Failers
2914     -
2915     1
2916    
2917     /ab|cd/
2918     abc
2919     abcd
2920    
2921     /()ef/
2922     def
2923    
2924     /$b/
2925    
2926     /a\(b/
2927     a(b
2928    
2929     /a\(*b/
2930     ab
2931     a((b
2932    
2933     /a\\b/
2934     a\b
2935    
2936     /((a))/
2937     abc
2938    
2939     /(a)b(c)/
2940     abc
2941    
2942     /a+b+c/
2943     aabbabc
2944    
2945     /a{1,}b{1,}c/
2946     aabbabc
2947    
2948     /a.+?c/
2949     abcabc
2950    
2951     /(a+|b)*/
2952     ab
2953    
2954     /(a+|b){0,}/
2955     ab
2956    
2957     /(a+|b)+/
2958     ab
2959    
2960     /(a+|b){1,}/
2961     ab
2962    
2963     /(a+|b)?/
2964     ab
2965    
2966     /(a+|b){0,1}/
2967     ab
2968    
2969     /[^ab]*/
2970     cde
2971    
2972     /abc/
2973     *** Failers
2974     b
2975    
2976    
2977     /a*/
2978    
2979    
2980     /([abc])*d/
2981     abbbcd
2982    
2983     /([abc])*bcd/
2984     abcd
2985    
2986     /a|b|c|d|e/
2987     e
2988    
2989     /(a|b|c|d|e)f/
2990     ef
2991    
2992     /abcd*efg/
2993     abcdefg
2994    
2995     /ab*/
2996     xabyabbbz
2997     xayabbbz
2998    
2999     /(ab|cd)e/
3000     abcde
3001    
3002     /[abhgefdc]ij/
3003     hij
3004    
3005     /^(ab|cd)e/
3006    
3007     /(abc|)ef/
3008     abcdef
3009    
3010     /(a|b)c*d/
3011     abcd
3012    
3013     /(ab|ab*)bc/
3014     abc
3015    
3016     /a([bc]*)c*/
3017     abc
3018    
3019     /a([bc]*)(c*d)/
3020     abcd
3021    
3022     /a([bc]+)(c*d)/
3023     abcd
3024    
3025     /a([bc]*)(c+d)/
3026     abcd
3027    
3028     /a[bcd]*dcdcde/
3029     adcdcde
3030    
3031     /a[bcd]+dcdcde/
3032     *** Failers
3033     abcde
3034     adcdcde
3035    
3036     /(ab|a)b*c/
3037     abc
3038    
3039     /((a)(b)c)(d)/
3040     abcd
3041    
3042     /[a-zA-Z_][a-zA-Z0-9_]*/
3043     alpha
3044    
3045     /^a(bc+|b[eh])g|.h$/
3046     abh
3047    
3048     /(bc+d$|ef*g.|h?i(j|k))/
3049     effgz
3050     ij
3051     reffgz
3052     *** Failers
3053     effg
3054     bcdd
3055    
3056     /((((((((((a))))))))))/
3057     a
3058    
3059     /(((((((((a)))))))))/
3060     a
3061    
3062     /multiple words of text/
3063     *** Failers
3064     aa
3065     uh-uh
3066    
3067     /multiple words/
3068     multiple words, yeah
3069    
3070     /(.*)c(.*)/
3071     abcde
3072    
3073     /\((.*), (.*)\)/
3074     (a, b)
3075    
3076     /[k]/
3077    
3078     /abcd/
3079     abcd
3080    
3081     /a(bc)d/
3082     abcd
3083    
3084     /a[-]?c/
3085     ac
3086    
3087     /abc/i
3088     ABC
3089     XABCY
3090     ABABC
3091     *** Failers
3092     aaxabxbaxbbx
3093     XBC
3094     AXC
3095     ABX
3096    
3097     /ab*c/i
3098     ABC
3099    
3100     /ab*bc/i
3101     ABC
3102     ABBC
3103    
3104     /ab*?bc/i
3105     ABBBBC
3106    
3107     /ab{0,}?bc/i
3108     ABBBBC
3109    
3110     /ab+?bc/i
3111     ABBC
3112    
3113     /ab+bc/i
3114     *** Failers
3115     ABC
3116     ABQ
3117    
3118     /ab{1,}bc/i
3119    
3120     /ab+bc/i
3121     ABBBBC
3122    
3123     /ab{1,}?bc/i
3124     ABBBBC
3125    
3126     /ab{1,3}?bc/i
3127     ABBBBC
3128    
3129     /ab{3,4}?bc/i
3130     ABBBBC
3131    
3132     /ab{4,5}?bc/i
3133     *** Failers
3134     ABQ
3135     ABBBBC
3136    
3137     /ab??bc/i
3138     ABBC
3139     ABC
3140    
3141     /ab{0,1}?bc/i
3142     ABC
3143    
3144     /ab??bc/i
3145    
3146     /ab??c/i
3147     ABC
3148    
3149     /ab{0,1}?c/i
3150     ABC
3151    
3152     /^abc$/i
3153     ABC
3154     *** Failers
3155     ABBBBC
3156     ABCC
3157    
3158     /^abc/i
3159     ABCC
3160    
3161     /^abc$/i
3162    
3163     /abc$/i
3164     AABC
3165    
3166     /^/i
3167     ABC
3168    
3169     /$/i
3170     ABC
3171    
3172     /a.c/i
3173     ABC
3174     AXC
3175    
3176     /a.*?c/i
3177     AXYZC
3178    
3179     /a.*c/i
3180     *** Failers
3181     AABC
3182     AXYZD
3183    
3184     /a[bc]d/i
3185     ABD
3186    
3187     /a[b-d]e/i
3188     ACE
3189     *** Failers
3190     ABC
3191     ABD
3192    
3193     /a[b-d]/i
3194     AAC
3195    
3196     /a[-b]/i
3197     A-
3198    
3199     /a[b-]/i
3200     A-
3201    
3202     /a]/i
3203     A]
3204    
3205     /a[]]b/i
3206     A]B
3207    
3208     /a[^bc]d/i
3209     AED
3210    
3211     /a[^-b]c/i
3212     ADC
3213     *** Failers
3214     ABD
3215     A-C
3216    
3217     /a[^]b]c/i
3218     ADC
3219    
3220     /ab|cd/i
3221     ABC
3222     ABCD
3223    
3224     /()ef/i
3225     DEF
3226    
3227     /$b/i
3228     *** Failers
3229     A]C
3230     B
3231    
3232     /a\(b/i
3233     A(B
3234    
3235     /a\(*b/i
3236     AB
3237     A((B
3238    
3239     /a\\b/i
3240     A\B
3241    
3242     /((a))/i
3243     ABC
3244    
3245     /(a)b(c)/i
3246     ABC
3247    
3248     /a+b+c/i
3249     AABBABC
3250    
3251     /a{1,}b{1,}c/i
3252     AABBABC
3253    
3254     /a.+?c/i
3255     ABCABC
3256    
3257     /a.*?c/i
3258     ABCABC
3259    
3260     /a.{0,5}?c/i
3261     ABCABC
3262    
3263     /(a+|b)*/i
3264     AB
3265    
3266     /(a+|b){0,}/i
3267     AB
3268    
3269     /(a+|b)+/i
3270     AB
3271    
3272     /(a+|b){1,}/i
3273     AB
3274    
3275     /(a+|b)?/i
3276     AB
3277    
3278     /(a+|b){0,1}/i
3279     AB
3280    
3281     /(a+|b){0,1}?/i
3282     AB
3283    
3284     /[^ab]*/i
3285     CDE
3286    
3287     /abc/i
3288    
3289     /a*/i
3290    
3291    
3292     /([abc])*d/i
3293     ABBBCD
3294    
3295     /([abc])*bcd/i
3296     ABCD
3297    
3298     /a|b|c|d|e/i
3299     E
3300    
3301     /(a|b|c|d|e)f/i
3302     EF
3303    
3304     /abcd*efg/i
3305     ABCDEFG
3306    
3307     /ab*/i
3308     XABYABBBZ
3309     XAYABBBZ
3310    
3311     /(ab|cd)e/i
3312     ABCDE
3313    
3314     /[abhgefdc]ij/i
3315     HIJ
3316    
3317     /^(ab|cd)e/i
3318     ABCDE
3319    
3320     /(abc|)ef/i
3321     ABCDEF
3322    
3323     /(a|b)c*d/i
3324     ABCD
3325    
3326     /(ab|ab*)bc/i
3327     ABC
3328    
3329     /a([bc]*)c*/i
3330     ABC
3331    
3332     /a([bc]*)(c*d)/i
3333     ABCD
3334    
3335     /a([bc]+)(c*d)/i
3336     ABCD
3337    
3338     /a([bc]*)(c+d)/i
3339     ABCD
3340    
3341     /a[bcd]*dcdcde/i
3342     ADCDCDE
3343    
3344     /a[bcd]+dcdcde/i
3345    
3346     /(ab|a)b*c/i
3347     ABC
3348    
3349     /((a)(b)c)(d)/i
3350     ABCD
3351    
3352     /[a-zA-Z_][a-zA-Z0-9_]*/i
3353     ALPHA
3354    
3355     /^a(bc+|b[eh])g|.h$/i
3356     ABH
3357    
3358     /(bc+d$|ef*g.|h?i(j|k))/i
3359     EFFGZ
3360     IJ
3361     REFFGZ
3362     *** Failers
3363     ADCDCDE
3364     EFFG
3365     BCDD
3366    
3367     /((((((((((a))))))))))/i
3368     A
3369    
3370     /(((((((((a)))))))))/i
3371     A
3372    
3373     /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
3374     A
3375    
3376     /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
3377     C
3378    
3379     /multiple words of text/i
3380     *** Failers
3381     AA
3382     UH-UH
3383    
3384     /multiple words/i
3385     MULTIPLE WORDS, YEAH
3386    
3387     /(.*)c(.*)/i
3388     ABCDE
3389    
3390     /\((.*), (.*)\)/i
3391     (A, B)
3392    
3393     /[k]/i
3394    
3395     /abcd/i
3396     ABCD
3397    
3398     /a(bc)d/i
3399     ABCD
3400    
3401     /a[-]?c/i
3402     AC
3403    
3404     /a(?!b)./
3405     abad
3406    
3407     /a(?=d)./
3408     abad
3409    
3410     /a(?=c|d)./
3411     abad
3412    
3413     /a(?:b|c|d)(.)/
3414     ace
3415    
3416     /a(?:b|c|d)*(.)/
3417     ace
3418    
3419     /a(?:b|c|d)+?(.)/
3420     ace
3421     acdbcdbe
3422    
3423     /a(?:b|c|d)+(.)/
3424     acdbcdbe
3425    
3426     /a(?:b|c|d){2}(.)/
3427     acdbcdbe
3428    
3429     /a(?:b|c|d){4,5}(.)/
3430     acdbcdbe
3431    
3432     /a(?:b|c|d){4,5}?(.)/
3433     acdbcdbe
3434    
3435     /((foo)|(bar))*/
3436     foobar
3437    
3438     /a(?:b|c|d){6,7}(.)/
3439     acdbcdbe
3440    
3441     /a(?:b|c|d){6,7}?(.)/
3442     acdbcdbe
3443    
3444     /a(?:b|c|d){5,6}(.)/
3445     acdbcdbe
3446    
3447     /a(?:b|c|d){5,6}?(.)/
3448     acdbcdbe
3449    
3450     /a(?:b|c|d){5,7}(.)/
3451     acdbcdbe
3452    
3453     /a(?:b|c|d){5,7}?(.)/
3454     acdbcdbe
3455    
3456     /a(?:b|(c|e){1,2}?|d)+?(.)/
3457     ace
3458    
3459     /^(.+)?B/
3460     AB
3461    
3462     /^([^a-z])|(\^)$/
3463     .
3464    
3465     /^[<>]&/
3466     <&OUT
3467    
3468     /(?:(f)(o)(o)|(b)(a)(r))*/
3469     foobar
3470    
3471     /(?<=a)b/
3472     ab
3473     *** Failers
3474     cb
3475     b
3476    
3477     /(?<!c)b/
3478     ab
3479     b
3480     b
3481    
3482     /(?:..)*a/
3483     aba
3484    
3485     /(?:..)*?a/
3486     aba
3487    
3488     /^(){3,5}/
3489     abc
3490    
3491     /^(a+)*ax/
3492     aax
3493    
3494     /^((a|b)+)*ax/
3495     aax
3496    
3497     /^((a|bc)+)*ax/
3498     aax
3499    
3500     /(a|x)*ab/
3501     cab
3502    
3503     /(a)*ab/
3504     cab
3505    
3506     /(?:(?i)a)b/
3507     ab
3508    
3509     /((?i)a)b/
3510     ab
3511    
3512     /(?:(?i)a)b/
3513     Ab
3514    
3515     /((?i)a)b/
3516     Ab
3517    
3518     /(?:(?i)a)b/
3519     *** Failers
3520     cb
3521     aB
3522    
3523     /((?i)a)b/
3524    
3525     /(?i:a)b/
3526     ab
3527    
3528     /((?i:a))b/
3529     ab
3530    
3531     /(?i:a)b/
3532     Ab
3533    
3534     /((?i:a))b/
3535     Ab
3536    
3537     /(?i:a)b/
3538     *** Failers
3539     aB
3540     aB
3541    
3542     /((?i:a))b/
3543    
3544     /(?:(?-i)a)b/i
3545     ab
3546    
3547     /((?-i)a)b/i
3548     ab
3549    
3550     /(?:(?-i)a)b/i
3551     aB
3552    
3553     /((?-i)a)b/i
3554     aB
3555    
3556     /(?:(?-i)a)b/i
3557     *** Failers
3558     aB
3559     Ab
3560    
3561     /((?-i)a)b/i
3562    
3563     /(?:(?-i)a)b/i
3564     aB
3565    
3566     /((?-i)a)b/i
3567     aB
3568    
3569     /(?:(?-i)a)b/i
3570     *** Failers
3571     Ab
3572     AB
3573    
3574     /((?-i)a)b/i
3575    
3576     /(?-i:a)b/i
3577     ab
3578    
3579     /((?-i:a))b/i
3580     ab
3581    
3582     /(?-i:a)b/i
3583     aB
3584    
3585     /((?-i:a))b/i
3586     aB
3587    
3588     /(?-i:a)b/i
3589     *** Failers
3590     AB
3591     Ab
3592    
3593     /((?-i:a))b/i
3594    
3595     /(?-i:a)b/i
3596     aB
3597    
3598     /((?-i:a))b/i
3599     aB
3600    
3601     /(?-i:a)b/i
3602     *** Failers
3603     Ab
3604     AB
3605    
3606     /((?-i:a))b/i
3607    
3608     /((?-i:a.))b/i
3609     *** Failers
3610     AB
3611     a\nB
3612    
3613     /((?s-i:a.))b/i
3614     a\nB
3615    
3616     /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
3617     cabbbb
3618    
3619     /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
3620     caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
3621    
3622     /foo\w*\d{4}baz/
3623     foobar1234baz
3624    
3625     /x(~~)*(?:(?:F)?)?/
3626     x~~
3627    
3628     /^a(?#xxx){3}c/
3629     aaac
3630    
3631     /^a (?#xxx) (?#yyy) {3}c/x
3632     aaac
3633    
3634     /(?<![cd])b/
3635     *** Failers
3636     B\nB
3637     dbcb
3638    
3639     /(?<![cd])[ab]/
3640     dbaacb
3641    
3642     /(?<!(c|d))b/
3643    
3644     /(?<!(c|d))[ab]/
3645     dbaacb
3646    
3647     /(?<!cd)[ab]/
3648     cdaccb
3649    
3650     /^(?:a?b?)*$/
3651     *** Failers
3652     dbcb
3653     a--
3654    
3655     /((?s)^a(.))((?m)^b$)/
3656     a\nb\nc\n
3657    
3658     /((?m)^b$)/
3659     a\nb\nc\n
3660    
3661     /(?m)^b/
3662     a\nb\n
3663    
3664     /(?m)^(b)/
3665     a\nb\n
3666    
3667     /((?m)^b)/
3668     a\nb\n
3669    
3670     /\n((?m)^b)/
3671     a\nb\n
3672    
3673     /((?s).)c(?!.)/
3674     a\nb\nc\n
3675     a\nb\nc\n
3676    
3677     /((?s)b.)c(?!.)/
3678     a\nb\nc\n
3679     a\nb\nc\n
3680    
3681     /^b/
3682    
3683     /()^b/
3684     *** Failers
3685     a\nb\nc\n
3686     a\nb\nc\n
3687    
3688     /((?m)^b)/
3689     a\nb\nc\n
3690    
3691     /(?(?!a)a|b)/
3692    
3693     /(?(?!a)b|a)/
3694     a
3695    
3696     /(?(?=a)b|a)/
3697     *** Failers
3698     a
3699     a
3700    
3701     /(?(?=a)a|b)/
3702     a
3703    
3704     /(\w+:)+/
3705     one:
3706    
3707     /$(?<=^(a))/
3708     a
3709    
3710     /([\w:]+::)?(\w+)$/
3711     abcd
3712     xy:z:::abcd
3713    
3714     /^[^bcd]*(c+)/
3715     aexycd
3716    
3717     /(a*)b+/
3718     caab
3719    
3720     /([\w:]+::)?(\w+)$/
3721     abcd
3722     xy:z:::abcd
3723     *** Failers
3724     abcd:
3725     abcd:
3726    
3727     /^[^bcd]*(c+)/
3728     aexycd
3729    
3730     /(>a+)ab/
3731    
3732     /(?>a+)b/
3733     aaab
3734    
3735     /([[:]+)/
3736     a:[b]:
3737    
3738     /([[=]+)/
3739     a=[b]=
3740    
3741     /([[.]+)/
3742     a.[b].
3743    
3744     /((?>a+)b)/
3745     aaab
3746    
3747     /(?>(a+))b/
3748     aaab
3749    
3750     /((?>[^()]+)|\([^()]*\))+/
3751     ((abc(ade)ufh()()x
3752    
3753     /a\Z/
3754     *** Failers
3755     aaab
3756     a\nb\n
3757    
3758     /b\Z/
3759     a\nb\n
3760    
3761     /b\z/
3762    
3763     /b\Z/
3764     a\nb
3765    
3766     /b\z/
3767     a\nb
3768     *** Failers
3769    
3770     /(?>.*)(?<=(abcd|wxyz))/
3771     alphabetabcd
3772     endingwxyz
3773     *** Failers
3774     a rather long string that doesn't end with one of them
3775    
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
3779    
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
3782    
3783     /(?<=\d{3}(?!999))foo/
3784     999foo
3785     123999foo
3786     *** Failers
3787     123abcfoo
3788    
3789     /(?<=(?!...999)\d{3})foo/
3790     999foo
3791     123999foo
3792     *** Failers
3793     123abcfoo
3794    
3795     /(?<=\d{3}(?!999)...)foo/
3796     123abcfoo
3797     123456foo
3798     *** Failers
3799     123999foo
3800    
3801     /(?<=\d{3}...)(?<!999)foo/
3802     123abcfoo
3803     123456foo
3804     *** Failers
3805     123999foo
3806    
3807     /((Z)+|A)*/
3808     ZABCDEFG
3809    
3810     /(Z()|A)*/
3811     ZABCDEFG
3812    
3813     /(Z(())|A)*/
3814     ZABCDEFG
3815    
3816     /((?>Z)+|A)*/
3817     ZABCDEFG
3818    
3819     /((?>)+|A)*/
3820     ZABCDEFG
3821    
3822     /a*/g
3823     abbab
3824    
3825     /^[a-\d]/
3826     abcde
3827     -things
3828     0digit
3829     *** Failers
3830     bcdef
3831    
3832     /^[\d-a]/
3833     abcde
3834     -things
3835     0digit
3836     *** Failers
3837     bcdef
3838    
3839     /[[:space:]]+/
3840     > \x09\x0a\x0c\x0d\x0b<
3841    
3842     /[[:blank:]]+/
3843     > \x09\x0a\x0c\x0d\x0b<
3844    
3845     /[\s]+/
3846     > \x09\x0a\x0c\x0d\x0b<
3847    
3848     /\s+/
3849     > \x09\x0a\x0c\x0d\x0b<
3850    
3851     /a b/x
3852     ab
3853    
3854     /(?!\A)x/m
3855     a\nxb\n
3856    
3857     /(?!^)x/m
3858     a\nxb\n
3859    
3860     /abc\Qabc\Eabc/
3861     abcabcabc
3862    
3863     /abc\Q(*+|\Eabc/
3864     abc(*+|abc
3865    
3866     / abc\Q abc\Eabc/x
3867     abc abcabc
3868     *** Failers
3869     abcabcabc
3870    
3871     /abc#comment
3872     \Q#not comment
3873     literal\E/x
3874     abc#not comment\n literal
3875    
3876     /abc#comment
3877     \Q#not comment
3878     literal/x
3879     abc#not comment\n literal
3880    
3881     /abc#comment
3882     \Q#not comment
3883     literal\E #more comment
3884     /x
3885     abc#not comment\n literal
3886    
3887     /abc#comment
3888     \Q#not comment
3889     literal\E #more comment/x
3890     abc#not comment\n literal
3891    
3892     /\Qabc\$xyz\E/
3893     abc\\\$xyz
3894    
3895     /\Qabc\E\$\Qxyz\E/
3896     abc\$xyz
3897    
3898     /\Gabc/
3899     abc
3900     *** Failers
3901     xyzabc
3902    
3903     /\Gabc./g
3904     abc1abc2xyzabc3
3905    
3906     /abc./g
3907     abc1abc2xyzabc3
3908    
3909     /a(?x: b c )d/
3910     XabcdY
3911     *** Failers
3912     Xa b c d Y
3913    
3914     /((?x)x y z | a b c)/
3915     XabcY
3916     AxyzB
3917    
3918     /(?i)AB(?-i)C/
3919     XabCY
3920     *** Failers
3921     XabcY
3922    
3923     /((?i)AB(?-i)C|D)E/
3924     abCE
3925     DE
3926     *** Failers
3927     abcE
3928     abCe
3929     dE
3930     De
3931    
3932     /[z\Qa-d]\E]/
3933     z
3934     a
3935     -
3936     d
3937     ]
3938     *** Failers
3939     b
3940    
3941     /[\z\C]/
3942     z
3943     C
3944    
3945     /\M/
3946     M
3947    
3948     /(a+)*b/
3949     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3950    
3951     /(?i)reg(?:ul(?:[a]|ae)r|ex)/
3952     REGular
3953     regulaer
3954     Regex
3955     regulr
3956    
3957     /[--]+/
3958    
3959    
3960    
3961    
3962    
3963     /(?<=Z)X./
3964     \x84XAZXB
3965    
3966     /^(?(2)a|(1)(2))+$/
3967     123a
3968    
3969     /(?<=a|bbbb)c/
3970     ac
3971     bbbbc
3972    
3973     /abc/>testsavedregex
3974     <testsavedregex
3975     abc
3976     *** Failers
3977     bca
3978    
3979     /abc/F>testsavedregex
3980     <testsavedregex
3981     abc
3982     *** Failers
3983     bca
3984    
3985     /(a|b)/S>testsavedregex
3986     <testsavedregex
3987     abc
3988     *** Failers
3989     def
3990    
3991     /(a|b)/SF>testsavedregex
3992     <testsavedregex
3993     abc
3994     *** Failers
3995     def
3996    
3997     /line\nbreak/
3998     this is a line\nbreak
3999     line one\nthis is a line\nbreak in the second line
4000    
4001     /line\nbreak/f
4002     this is a line\nbreak
4003     ** Failers
4004     line one\nthis is a line\nbreak in the second line
4005    
4006     /line\nbreak/mf
4007     this is a line\nbreak
4008     ** Failers
4009     line one\nthis is a line\nbreak in the second line
4010    
4011 nigel 87 /1234/
4012     123\P
4013     a4\P\R
4014    
4015     /1234/
4016     123\P
4017     4\P\R
4018    
4019 nigel 91 /^/mg
4020     a\nb\nc\n
4021     \
4022    
4023     /(?<=C\n)^/mg
4024     A\nC\nC\n
4025    
4026     /(?s)A?B/
4027     AB
4028     aB
4029    
4030     /(?s)A*B/
4031     AB
4032     aB
4033    
4034     /(?m)A?B/
4035     AB
4036     aB
4037    
4038     /(?m)A*B/
4039     AB
4040     aB
4041    
4042     /Content-Type\x3A[^\r\n]{6,}/
4043     Content-Type:xxxxxyyy
4044    
4045     /Content-Type\x3A[^\r\n]{6,}z/
4046     Content-Type:xxxxxyyyz
4047    
4048     /Content-Type\x3A[^a]{6,}/
4049     Content-Type:xxxyyy
4050    
4051     /Content-Type\x3A[^a]{6,}z/
4052     Content-Type:xxxyyyz
4053    
4054     /^abc/m
4055     xyz\nabc
4056     xyz\nabc\<lf>
4057     xyz\r\nabc\<lf>
4058     xyz\rabc\<cr>
4059     xyz\r\nabc\<crlf>
4060     ** Failers
4061     xyz\nabc\<cr>
4062     xyz\r\nabc\<cr>
4063     xyz\nabc\<crlf>
4064     xyz\rabc\<crlf>
4065     xyz\rabc\<lf>
4066    
4067 nigel 93 /abc$/m<lf>
4068 nigel 91 xyzabc
4069     xyzabc\n
4070     xyzabc\npqr
4071     xyzabc\r\<cr>
4072     xyzabc\rpqr\<cr>
4073     xyzabc\r\n\<crlf>
4074     xyzabc\r\npqr\<crlf>
4075     ** Failers
4076     xyzabc\r
4077     xyzabc\rpqr
4078     xyzabc\r\n
4079     xyzabc\r\npqr
4080    
4081     /^abc/m<cr>
4082     xyz\rabcdef
4083     xyz\nabcdef\<lf>
4084     ** Failers
4085     xyz\nabcdef
4086    
4087     /^abc/m<lf>
4088     xyz\nabcdef
4089     xyz\rabcdef\<cr>
4090     ** Failers
4091     xyz\rabcdef
4092    
4093     /^abc/m<crlf>
4094     xyz\r\nabcdef
4095     xyz\rabcdef\<cr>
4096     ** Failers
4097     xyz\rabcdef
4098    
4099 nigel 93 /.*/<lf>
4100 nigel 91 abc\ndef
4101     abc\rdef
4102     abc\r\ndef
4103     \<cr>abc\ndef
4104     \<cr>abc\rdef
4105     \<cr>abc\r\ndef
4106     \<crlf>abc\ndef
4107     \<crlf>abc\rdef
4108     \<crlf>abc\r\ndef
4109    
4110     /\w+(.)(.)?def/s
4111     abc\ndef
4112     abc\rdef
4113     abc\r\ndef
4114    
4115 nigel 93 /^\w+=.*(\\\n.*)*/
4116     abc=xyz\\\npqr
4117    
4118     /^(a()*)*/
4119     aaaa
4120    
4121     /^(?:a(?:(?:))*)*/
4122     aaaa
4123    
4124     /^(a()+)+/
4125     aaaa
4126    
4127     /^(?:a(?:(?:))+)+/
4128     aaaa
4129    
4130     /(a|)*\d/
4131     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4132     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4133    
4134     /(?>a|)*\d/
4135     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4136     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4137    
4138     /(?:a|)*\d/
4139     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4140     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
4141    
4142     /^a.b/<lf>
4143     a\rb
4144     a\nb\<cr>
4145     ** Failers
4146     a\nb
4147     a\nb\<any>
4148     a\rb\<cr>
4149     a\rb\<any>
4150    
4151     /^abc./mgx<any>
4152 ph10 355 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
4153 nigel 93
4154     /abc.$/mgx<any>
4155 ph10 355 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
4156 nigel 93
4157 ph10 247 /^a\Rb/<bsr_unicode>
4158 nigel 93 a\nb
4159     a\rb
4160     a\r\nb
4161     a\x0bb
4162     a\x0cb
4163     a\x85b
4164     ** Failers
4165     a\n\rb
4166    
4167 ph10 247 /^a\R*b/<bsr_unicode>
4168 nigel 93 ab
4169     a\nb
4170     a\rb
4171     a\r\nb
4172     a\x0bb
4173     a\x0cb
4174     a\x85b
4175     a\n\rb
4176     a\n\r\x85\x0cb
4177    
4178 ph10 247 /^a\R+b/<bsr_unicode>
4179 nigel 93 a\nb
4180     a\rb
4181     a\r\nb
4182     a\x0bb
4183     a\x0cb
4184     a\x85b
4185     a\n\rb
4186     a\n\r\x85\x0cb
4187     ** Failers
4188     ab
4189    
4190 ph10 247 /^a\R{1,3}b/<bsr_unicode>
4191 nigel 93 a\nb
4192     a\n\rb
4193     a\n\r\x85b
4194     a\r\n\r\nb
4195     a\r\n\r\n\r\nb
4196     a\n\r\n\rb
4197     a\n\n\r\nb
4198     ** Failers
4199     a\n\n\n\rb
4200     a\r
4201    
4202 ph10 247 /^a[\R]b/<bsr_unicode>
4203 nigel 93 aRb
4204     ** Failers
4205     a\nb
4206    
4207     /.+foo/
4208     afoo
4209     ** Failers
4210     \r\nfoo
4211     \nfoo
4212    
4213     /.+foo/<crlf>
4214     afoo
4215     \nfoo
4216     ** Failers
4217     \r\nfoo
4218    
4219     /.+foo/<any>
4220     afoo
4221     ** Failers
4222     \nfoo
4223     \r\nfoo
4224    
4225     /.+foo/s
4226     afoo
4227     \r\nfoo
4228     \nfoo
4229    
4230 ph10 131 /^$/mg<any>
4231     abc\r\rxyz
4232     abc\n\rxyz
4233     ** Failers
4234     abc\r\nxyz
4235    
4236     /^X/m
4237     XABC
4238     ** Failers
4239     XABC\B
4240    
4241 ph10 141 /(?m)^$/<any>g+
4242     abc\r\n\r\n
4243    
4244 ph10 143 /(?m)^$|^\r\n/<any>g+
4245     abc\r\n\r\n
4246    
4247     /(?m)$/<any>g+
4248     abc\r\n\r\n
4249    
4250 ph10 175 /(?|(abc)|(xyz))/
4251     >abc<
4252     >xyz<
4253    
4254     /(x)(?|(abc)|(xyz))(x)/
4255     xabcx
4256     xxyzx
4257    
4258     /(x)(?|(abc)(pqr)|(xyz))(x)/
4259     xabcpqrx
4260     xxyzx
4261    
4262     /(?|(abc)|(xyz))(?1)/
4263     abcabc
4264     xyzabc
4265     ** Failers
4266     xyzxyz
4267    
4268 ph10 178 /\H\h\V\v/
4269     X X\x0a
4270     X\x09X\x0b
4271     ** Failers
4272     \xa0 X\x0a
4273    
4274     /\H*\h+\V?\v{3,4}/
4275     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a
4276     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a
4277     \x09\x20\xa0\x0a\x0b\x0c
4278     ** Failers
4279     \x09\x20\xa0\x0a\x0b
4280    
4281     /\H{3,4}/
4282     XY ABCDE
4283     XY PQR ST
4284    
4285     /.\h{3,4}./
4286     XY AB PQRS
4287    
4288     /\h*X\h?\H+Y\H?Z/
4289     >XNNNYZ
4290     > X NYQZ
4291     ** Failers
4292     >XYZ
4293     > X NY Z
4294    
4295     /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/
4296     >XY\x0aZ\x0aA\x0bNN\x0c
4297     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c
4298    
4299 ph10 226 /.+A/<crlf>
4300     \r\nA
4301    
4302     /\nA/<crlf>
4303     \r\nA
4304    
4305     /[\r\n]A/<crlf>
4306     \r\nA
4307    
4308     /(\r|\n)A/<crlf>
4309     \r\nA
4310    
4311 ph10 231 /a\Rb/I<bsr_anycrlf>
4312     a\rb
4313     a\nb
4314     a\r\nb
4315     ** Failers
4316     a\x85b
4317     a\x0bb
4318    
4319     /a\Rb/I<bsr_unicode>
4320     a\rb
4321     a\nb
4322     a\r\nb
4323     a\x85b
4324     a\x0bb
4325     ** Failers
4326     a\x85b\<bsr_anycrlf>
4327     a\x0bb\<bsr_anycrlf>
4328    
4329     /a\R?b/I<bsr_anycrlf>
4330     a\rb
4331     a\nb
4332     a\r\nb
4333     ** Failers
4334     a\x85b
4335     a\x0bb
4336    
4337     /a\R?b/I<bsr_unicode>
4338     a\rb
4339     a\nb
4340     a\r\nb
4341     a\x85b
4342     a\x0bb
4343     ** Failers
4344     a\x85b\<bsr_anycrlf>
4345     a\x0bb\<bsr_anycrlf>
4346    
4347     /a\R{2,4}b/I<bsr_anycrlf>
4348     a\r\n\nb
4349     a\n\r\rb
4350     a\r\n\r\n\r\n\r\nb
4351     ** Failers
4352     a\x85\85b
4353     a\x0b\0bb
4354    
4355     /a\R{2,4}b/I<bsr_unicode>
4356     a\r\rb
4357     a\n\n\nb
4358     a\r\n\n\r\rb
4359     a\x85\85b
4360     a\x0b\0bb
4361     ** Failers
4362     a\r\r\r\r\rb
4363     a\x85\85b\<bsr_anycrlf>
4364     a\x0b\0bb\<bsr_anycrlf>
4365 ph10 341
4366     /a(?!)|\wbc/
4367     abc
4368 ph10 231
4369 ph10 341 /a[]b/<JS>
4370     ** Failers
4371     ab
4372    
4373     /a[]+b/<JS>
4374     ** Failers
4375     ab
4376    
4377     /a[]*+b/<JS>
4378     ** Failers
4379     ab
4380    
4381     /a[^]b/<JS>
4382     aXb
4383     a\nb
4384     ** Failers
4385     ab
4386    
4387     /a[^]+b/<JS>
4388     aXb
4389     a\nX\nXb
4390     ** Failers
4391     ab
4392    
4393 ph10 383 /X$/E
4394     X
4395     ** Failers
4396     X\n
4397    
4398     /X$/
4399     X
4400     X\n
4401    
4402 ph10 389 /xyz/C
4403     xyz
4404     abcxyz
4405     abcxyz\Y
4406     ** Failers
4407     abc
4408     abc\Y
4409     abcxypqr
4410     abcxypqr\Y
4411 ph10 397
4412     /(?C)ab/
4413     ab
4414     \C-ab
4415    
4416     /ab/C
4417     ab
4418     \C-ab
4419 ph10 389
4420 ph10 398 /^"((?(?=[a])[^"])|b)*"$/C
4421     "ab"
4422     \C-"ab"
4423    
4424 ph10 426 /\d+X|9+Y/
4425     ++++123999\P
4426     ++++123999Y\P
4427    
4428     /Z(*F)/
4429     Z\P
4430     ZA\P
4431    
4432     /Z(?!)/
4433     Z\P
4434     ZA\P
4435    
4436 ph10 427 /dog(sbody)?/
4437     dogs\P
4438     dogs\P\P
4439    
4440 ph10 428 /dog(sbody)??/
4441     dogs\P
4442     dogs\P\P
4443    
4444 ph10 427 /dog|dogsbody/
4445     dogs\P
4446     dogs\P\P
4447    
4448 ph10 428 /dogsbody|dog/
4449     dogs\P
4450     dogs\P\P
4451    
4452     /Z(*F)Q|ZXY/
4453     Z\P
4454     ZA\P
4455     X\P
4456    
4457     /\bthe cat\b/
4458     the cat\P
4459     the cat\P\P
4460    
4461     /dog(sbody)?/
4462     dogs\D\P
4463     body\D\R
4464    
4465     /dog(sbody)?/
4466     dogs\D\P\P
4467     body\D\R
4468    
4469     /abc/
4470     abc\P
4471     abc\P\P
4472    
4473 ph10 435 /abc\K123/
4474     xyzabc123pqr
4475    
4476     /(?<=abc)123/
4477     xyzabc123pqr
4478     xyzabc12\P
4479     xyzabc12\P\P
4480    
4481     /\babc\b/
4482     +++abc+++
4483     +++ab\P
4484     +++ab\P\P
4485    
4486 ph10 442 /(?=C)/g+
4487     ABCDECBA
4488    
4489 nigel 77 / End of testinput7 /

Properties

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

webmaster@exim.org
ViewVC Help
Powered by ViewVC 1.1.12