upload http
[bottlenecks.git] / rubbos / app / httpd-2.0.64 / srclib / pcre / testdata / testoutput3
1 PCRE version 3.9 02-Jan-2002
2
3 /(?<!bar)foo/
4     foo
5  0: foo
6     catfood
7  0: foo
8     arfootle
9  0: foo
10     rfoosh
11  0: foo
12     *** Failers
13 No match
14     barfoo
15 No match
16     towbarfoo
17 No match
18
19 /\w{3}(?<!bar)foo/
20     catfood
21  0: catfoo
22     *** Failers
23 No match
24     foo
25 No match
26     barfoo
27 No match
28     towbarfoo
29 No match
30
31 /(?<=(foo)a)bar/
32     fooabar
33  0: bar
34  1: foo
35     *** Failers
36 No match
37     bar
38 No match
39     foobbar
40 No match
41       
42 /\Aabc\z/m
43     abc
44  0: abc
45     *** Failers
46 No match
47     abc\n   
48 No match
49     qqq\nabc
50 No match
51     abc\nzzz
52 No match
53     qqq\nabc\nzzz
54 No match
55
56 "(?>.*/)foo"
57     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
58 No match
59
60 "(?>.*/)foo"
61     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
62  0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
63
64 /(?>(\.\d\d[1-9]?))\d+/
65     1.230003938
66  0: .230003938
67  1: .23
68     1.875000282
69  0: .875000282
70  1: .875
71     *** Failers 
72 No match
73     1.235 
74 No match
75
76 /^((?>\w+)|(?>\s+))*$/
77     now is the time for all good men to come to the aid of the party
78  0: now is the time for all good men to come to the aid of the party
79  1: party
80     *** Failers
81 No match
82     this is not a line with only words and spaces!
83 No match
84     
85 /(\d+)(\w)/
86     12345a
87  0: 12345a
88  1: 12345
89  2: a
90     12345+ 
91  0: 12345
92  1: 1234
93  2: 5
94
95 /((?>\d+))(\w)/
96     12345a
97  0: 12345a
98  1: 12345
99  2: a
100     *** Failers
101 No match
102     12345+ 
103 No match
104
105 /(?>a+)b/
106     aaab
107  0: aaab
108
109 /((?>a+)b)/
110     aaab
111  0: aaab
112  1: aaab
113
114 /(?>(a+))b/
115     aaab
116  0: aaab
117  1: aaa
118
119 /(?>b)+/
120     aaabbbccc
121  0: bbb
122
123 /(?>a+|b+|c+)*c/
124     aaabbbbccccd
125  0: aaabbbbc
126
127 /((?>[^()]+)|\([^()]*\))+/
128     ((abc(ade)ufh()()x
129  0: abc(ade)ufh()()x
130  1: x
131     
132 /\(((?>[^()]+)|\([^()]+\))+\)/ 
133     (abc)
134  0: (abc)
135  1: abc
136     (abc(def)xyz)
137  0: (abc(def)xyz)
138  1: xyz
139     *** Failers
140 No match
141     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
142 No match
143
144 /a(?-i)b/i
145     ab
146  0: ab
147     *** Failers 
148 No match
149     Ab
150 No match
151     aB
152 No match
153     AB
154 No match
155         
156 /(a (?x)b c)d e/
157     a bcd e
158  0: a bcd e
159  1: a bc
160     *** Failers
161 No match
162     a b cd e
163 No match
164     abcd e   
165 No match
166     a bcde 
167 No match
168  
169 /(a b(?x)c d (?-x)e f)/
170     a bcde f
171  0: a bcde f
172  1: a bcde f
173     *** Failers
174 No match
175     abcdef  
176 No match
177
178 /(a(?i)b)c/
179     abc
180  0: abc
181  1: ab
182     aBc
183  0: aBc
184  1: aB
185     *** Failers
186 No match
187     abC
188 No match
189     aBC  
190 No match
191     Abc
192 No match
193     ABc
194 No match
195     ABC
196 No match
197     AbC
198 No match
199     
200 /a(?i:b)c/
201     abc
202  0: abc
203     aBc
204  0: aBc
205     *** Failers 
206 No match
207     ABC
208 No match
209     abC
210 No match
211     aBC
212 No match
213     
214 /a(?i:b)*c/
215     aBc
216  0: aBc
217     aBBc
218  0: aBBc
219     *** Failers 
220 No match
221     aBC
222 No match
223     aBBC
224 No match
225     
226 /a(?=b(?i)c)\w\wd/
227     abcd
228  0: abcd
229     abCd
230  0: abCd
231     *** Failers
232 No match
233     aBCd
234 No match
235     abcD     
236 No match
237     
238 /(?s-i:more.*than).*million/i
239     more than million
240  0: more than million
241     more than MILLION
242  0: more than MILLION
243     more \n than Million 
244  0: more \x0a than Million
245     *** Failers
246 No match
247     MORE THAN MILLION    
248 No match
249     more \n than \n million 
250 No match
251
252 /(?:(?s-i)more.*than).*million/i
253     more than million
254  0: more than million
255     more than MILLION
256  0: more than MILLION
257     more \n than Million 
258  0: more \x0a than Million
259     *** Failers
260 No match
261     MORE THAN MILLION    
262 No match
263     more \n than \n million 
264 No match
265     
266 /(?>a(?i)b+)+c/ 
267     abc
268  0: abc
269     aBbc
270  0: aBbc
271     aBBc 
272  0: aBBc
273     *** Failers
274 No match
275     Abc
276 No match
277     abAb    
278 No match
279     abbC 
280 No match
281     
282 /(?=a(?i)b)\w\wc/
283     abc
284  0: abc
285     aBc
286  0: aBc
287     *** Failers
288 No match
289     Ab 
290 No match
291     abC
292 No match
293     aBC     
294 No match
295     
296 /(?<=a(?i)b)(\w\w)c/
297     abxxc
298  0: xxc
299  1: xx
300     aBxxc
301  0: xxc
302  1: xx
303     *** Failers
304 No match
305     Abxxc
306 No match
307     ABxxc
308 No match
309     abxxC      
310 No match
311
312 /(?:(a)|b)(?(1)A|B)/
313     aA
314  0: aA
315  1: a
316     bB
317  0: bB
318     *** Failers
319 No match
320     aB
321 No match
322     bA    
323 No match
324
325 /^(a)?(?(1)a|b)+$/
326     aa
327  0: aa
328  1: a
329     b
330  0: b
331     bb  
332  0: bb
333     *** Failers
334 No match
335     ab   
336 No match
337
338 /^(?(?=abc)\w{3}:|\d\d)$/
339     abc:
340  0: abc:
341     12
342  0: 12
343     *** Failers
344 No match
345     123
346 No match
347     xyz    
348 No match
349
350 /^(?(?!abc)\d\d|\w{3}:)$/
351     abc:
352  0: abc:
353     12
354  0: 12
355     *** Failers
356 No match
357     123
358 No match
359     xyz    
360 No match
361     
362 /(?(?<=foo)bar|cat)/
363     foobar
364  0: bar
365     cat
366  0: cat
367     fcat
368  0: cat
369     focat   
370  0: cat
371     *** Failers
372 No match
373     foocat  
374 No match
375
376 /(?(?<!foo)cat|bar)/
377     foobar
378  0: bar
379     cat
380  0: cat
381     fcat
382  0: cat
383     focat   
384  0: cat
385     *** Failers
386 No match
387     foocat  
388 No match
389
390 /( \( )? [^()]+ (?(1) \) |) /x
391     abcd
392  0: abcd
393     (abcd)
394  0: (abcd)
395  1: (
396     the quick (abcd) fox
397  0: the quick 
398     (abcd   
399  0: abcd
400
401 /( \( )? [^()]+ (?(1) \) ) /x
402     abcd
403  0: abcd
404     (abcd)
405  0: (abcd)
406  1: (
407     the quick (abcd) fox
408  0: the quick 
409     (abcd   
410  0: abcd
411
412 /^(?(2)a|(1)(2))+$/
413     12
414  0: 12
415  1: 1
416  2: 2
417     12a
418  0: 12a
419  1: 1
420  2: 2
421     12aa
422  0: 12aa
423  1: 1
424  2: 2
425     *** Failers
426 No match
427     1234    
428 No match
429
430 /((?i)blah)\s+\1/
431     blah blah
432  0: blah blah
433  1: blah
434     BLAH BLAH
435  0: BLAH BLAH
436  1: BLAH
437     Blah Blah
438  0: Blah Blah
439  1: Blah
440     blaH blaH
441  0: blaH blaH
442  1: blaH
443     *** Failers
444 No match
445     blah BLAH
446 No match
447     Blah blah      
448 No match
449     blaH blah 
450 No match
451
452 /((?i)blah)\s+(?i:\1)/
453     blah blah
454  0: blah blah
455  1: blah
456     BLAH BLAH
457  0: BLAH BLAH
458  1: BLAH
459     Blah Blah
460  0: Blah Blah
461  1: Blah
462     blaH blaH
463  0: blaH blaH
464  1: blaH
465     blah BLAH
466  0: blah BLAH
467  1: blah
468     Blah blah      
469  0: Blah blah
470  1: Blah
471     blaH blah 
472  0: blaH blah
473  1: blaH
474
475 /(?>a*)*/
476     a
477  0: a
478     aa
479  0: aa
480     aaaa
481  0: aaaa
482     
483 /(abc|)+/
484     abc
485  0: abc
486  1: 
487     abcabc
488  0: abcabc
489  1: 
490     abcabcabc
491  0: abcabcabc
492  1: 
493     xyz      
494  0: 
495  1: 
496
497 /([a]*)*/
498     a
499  0: a
500  1: 
501     aaaaa 
502  0: aaaaa
503  1: 
504  
505 /([ab]*)*/
506     a
507  0: a
508  1: 
509     b
510  0: b
511  1: 
512     ababab
513  0: ababab
514  1: 
515     aaaabcde
516  0: aaaab
517  1: 
518     bbbb    
519  0: bbbb
520  1: 
521  
522 /([^a]*)*/
523     b
524  0: b
525  1: 
526     bbbb
527  0: bbbb
528  1: 
529     aaa   
530  0: 
531  1: 
532  
533 /([^ab]*)*/
534     cccc
535  0: cccc
536  1: 
537     abab  
538  0: 
539  1: 
540  
541 /([a]*?)*/
542     a
543  0: 
544  1: 
545     aaaa 
546  0: 
547  1: 
548  
549 /([ab]*?)*/
550     a
551  0: 
552  1: 
553     b
554  0: 
555  1: 
556     abab
557  0: 
558  1: 
559     baba   
560  0: 
561  1: 
562  
563 /([^a]*?)*/
564     b
565  0: 
566  1: 
567     bbbb
568  0: 
569  1: 
570     aaa   
571  0: 
572  1: 
573  
574 /([^ab]*?)*/
575     c
576  0: 
577  1: 
578     cccc
579  0: 
580  1: 
581     baba   
582  0: 
583  1: 
584  
585 /(?>a*)*/
586     a
587  0: a
588     aaabcde 
589  0: aaa
590  
591 /((?>a*))*/
592     aaaaa
593  0: aaaaa
594  1: 
595     aabbaa 
596  0: aa
597  1: 
598  
599 /((?>a*?))*/
600     aaaaa
601  0: 
602  1: 
603     aabbaa 
604  0: 
605  1: 
606
607 /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
608     12-sep-98
609  0: 12-sep-98
610     12-09-98
611  0: 12-09-98
612     *** Failers
613 No match
614     sep-12-98
615 No match
616         
617 /(?<=(foo))bar\1/
618     foobarfoo
619  0: barfoo
620  1: foo
621     foobarfootling 
622  0: barfoo
623  1: foo
624     *** Failers
625 No match
626     foobar
627 No match
628     barfoo   
629 No match
630
631 /(?i:saturday|sunday)/
632     saturday
633  0: saturday
634     sunday
635  0: sunday
636     Saturday
637  0: Saturday
638     Sunday
639  0: Sunday
640     SATURDAY
641  0: SATURDAY
642     SUNDAY
643  0: SUNDAY
644     SunDay
645  0: SunDay
646     
647 /(a(?i)bc|BB)x/
648     abcx
649  0: abcx
650  1: abc
651     aBCx
652  0: aBCx
653  1: aBC
654     bbx
655  0: bbx
656  1: bb
657     BBx
658  0: BBx
659  1: BB
660     *** Failers
661 No match
662     abcX
663 No match
664     aBCX
665 No match
666     bbX
667 No match
668     BBX               
669 No match
670
671 /^([ab](?i)[cd]|[ef])/
672     ac
673  0: ac
674  1: ac
675     aC
676  0: aC
677  1: aC
678     bD
679  0: bD
680  1: bD
681     elephant
682  0: e
683  1: e
684     Europe 
685  0: E
686  1: E
687     frog
688  0: f
689  1: f
690     France
691  0: F
692  1: F
693     *** Failers
694 No match
695     Africa     
696 No match
697
698 /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
699     ab
700  0: ab
701  1: ab
702     aBd
703  0: aBd
704  1: aBd
705     xy
706  0: xy
707  1: xy
708     xY
709  0: xY
710  1: xY
711     zebra
712  0: z
713  1: z
714     Zambesi
715  0: Z
716  1: Z
717     *** Failers
718 No match
719     aCD  
720 No match
721     XY  
722 No match
723
724 /(?<=foo\n)^bar/m
725     foo\nbar
726  0: bar
727     *** Failers
728 No match
729     bar
730 No match
731     baz\nbar   
732 No match
733
734 /(?<=(?<!foo)bar)baz/
735     barbaz
736  0: baz
737     barbarbaz 
738  0: baz
739     koobarbaz 
740  0: baz
741     *** Failers
742 No match
743     baz
744 No match
745     foobarbaz 
746 No match
747
748 /The case of aaaaaa is missed out below because I think Perl 5.005_02 gets/
749 /it wrong; it sets $1 to aaa rather than aa. Compare the following test,/
750 No match
751 /where it does set $1 to aa when matching aaaaaa./
752 No match
753
754 /^(a\1?){4}$/
755     a
756 No match
757     aa
758 No match
759     aaa
760 No match
761     aaaa
762  0: aaaa
763  1: a
764     aaaaa
765  0: aaaaa
766  1: a
767     aaaaaaa
768  0: aaaaaaa
769  1: a
770     aaaaaaaa
771 No match
772     aaaaaaaaa
773 No match
774     aaaaaaaaaa
775  0: aaaaaaaaaa
776  1: aaaa
777     aaaaaaaaaaa
778 No match
779     aaaaaaaaaaaa
780 No match
781     aaaaaaaaaaaaa
782 No match
783     aaaaaaaaaaaaaa
784 No match
785     aaaaaaaaaaaaaaa
786 No match
787     aaaaaaaaaaaaaaaa               
788 No match
789
790 /^(a\1?)(a\1?)(a\2?)(a\3?)$/
791     a
792 No match
793     aa
794 No match
795     aaa
796 No match
797     aaaa
798  0: aaaa
799  1: a
800  2: a
801  3: a
802  4: a
803     aaaaa
804  0: aaaaa
805  1: a
806  2: aa
807  3: a
808  4: a
809     aaaaaa
810  0: aaaaaa
811  1: a
812  2: aa
813  3: a
814  4: aa
815     aaaaaaa
816  0: aaaaaaa
817  1: a
818  2: aa
819  3: aaa
820  4: a
821     aaaaaaaa
822 No match
823     aaaaaaaaa
824 No match
825     aaaaaaaaaa
826  0: aaaaaaaaaa
827  1: a
828  2: aa
829  3: aaa
830  4: aaaa
831     aaaaaaaaaaa
832 No match
833     aaaaaaaaaaaa
834 No match
835     aaaaaaaaaaaaa
836 No match
837     aaaaaaaaaaaaaa
838 No match
839     aaaaaaaaaaaaaaa
840 No match
841     aaaaaaaaaaaaaaaa               
842 No match
843
844 /The following tests are taken from the Perl 5.005 test suite; some of them/
845 /are compatible with 5.004, but I'd rather not have to sort them out./
846 No match
847
848 /abc/
849     abc
850  0: abc
851     xabcy
852  0: abc
853     ababc
854  0: abc
855     *** Failers
856 No match
857     xbc
858 No match
859     axc
860 No match
861     abx
862 No match
863
864 /ab*c/
865     abc
866  0: abc
867
868 /ab*bc/
869     abc
870  0: abc
871     abbc
872  0: abbc
873     abbbbc
874  0: abbbbc
875
876 /.{1}/
877     abbbbc
878  0: a
879
880 /.{3,4}/
881     abbbbc
882  0: abbb
883
884 /ab{0,}bc/
885     abbbbc
886  0: abbbbc
887
888 /ab+bc/
889     abbc
890  0: abbc
891     *** Failers
892 No match
893     abc
894 No match
895     abq
896 No match
897
898 /ab{1,}bc/
899
900 /ab+bc/
901     abbbbc
902  0: abbbbc
903
904 /ab{1,}bc/
905     abbbbc
906  0: abbbbc
907
908 /ab{1,3}bc/
909     abbbbc
910  0: abbbbc
911
912 /ab{3,4}bc/
913     abbbbc
914  0: abbbbc
915
916 /ab{4,5}bc/
917     *** Failers
918 No match
919     abq
920 No match
921     abbbbc
922 No match
923
924 /ab?bc/
925     abbc
926  0: abbc
927     abc
928  0: abc
929
930 /ab{0,1}bc/
931     abc
932  0: abc
933
934 /ab?bc/
935
936 /ab?c/
937     abc
938  0: abc
939
940 /ab{0,1}c/
941     abc
942  0: abc
943
944 /^abc$/
945     abc
946  0: abc
947     *** Failers
948 No match
949     abbbbc
950 No match
951     abcc
952 No match
953
954 /^abc/
955     abcc
956  0: abc
957
958 /^abc$/
959
960 /abc$/
961     aabc
962  0: abc
963     *** Failers
964 No match
965     aabc
966  0: abc
967     aabcd
968 No match
969
970 /^/
971     abc
972  0: 
973
974 /$/
975     abc
976  0: 
977
978 /a.c/
979     abc
980  0: abc
981     axc
982  0: axc
983
984 /a.*c/
985     axyzc
986  0: axyzc
987
988 /a[bc]d/
989     abd
990  0: abd
991     *** Failers
992 No match
993     axyzd
994 No match
995     abc
996 No match
997
998 /a[b-d]e/
999     ace
1000  0: ace
1001
1002 /a[b-d]/
1003     aac
1004  0: ac
1005
1006 /a[-b]/
1007     a-
1008  0: a-
1009
1010 /a[b-]/
1011     a-
1012  0: a-
1013
1014 /a]/
1015     a]
1016  0: a]
1017
1018 /a[]]b/
1019     a]b
1020  0: a]b
1021
1022 /a[^bc]d/
1023     aed
1024  0: aed
1025     *** Failers
1026 No match
1027     abd
1028 No match
1029     abd
1030 No match
1031
1032 /a[^-b]c/
1033     adc
1034  0: adc
1035
1036 /a[^]b]c/
1037     adc
1038  0: adc
1039     *** Failers
1040 No match
1041     a-c
1042  0: a-c
1043     a]c
1044 No match
1045
1046 /\ba\b/
1047     a-
1048  0: a
1049     -a
1050  0: a
1051     -a-
1052  0: a
1053
1054 /\by\b/
1055     *** Failers
1056 No match
1057     xy
1058 No match
1059     yz
1060 No match
1061     xyz
1062 No match
1063
1064 /\Ba\B/
1065     *** Failers
1066  0: a
1067     a-
1068 No match
1069     -a
1070 No match
1071     -a-
1072 No match
1073
1074 /\By\b/
1075     xy
1076  0: y
1077
1078 /\by\B/
1079     yz
1080  0: y
1081
1082 /\By\B/
1083     xyz
1084  0: y
1085
1086 /\w/
1087     a
1088  0: a
1089
1090 /\W/
1091     -
1092  0: -
1093     *** Failers
1094  0: *
1095     -
1096  0: -
1097     a
1098 No match
1099
1100 /a\sb/
1101     a b
1102  0: a b
1103
1104 /a\Sb/
1105     a-b
1106  0: a-b
1107     *** Failers
1108 No match
1109     a-b
1110  0: a-b
1111     a b
1112 No match
1113
1114 /\d/
1115     1
1116  0: 1
1117
1118 /\D/
1119     -
1120  0: -
1121     *** Failers
1122  0: *
1123     -
1124  0: -
1125     1
1126 No match
1127
1128 /[\w]/
1129     a
1130  0: a
1131
1132 /[\W]/
1133     -
1134  0: -
1135     *** Failers
1136  0: *
1137     -
1138  0: -
1139     a
1140 No match
1141
1142 /a[\s]b/
1143     a b
1144  0: a b
1145
1146 /a[\S]b/
1147     a-b
1148  0: a-b
1149     *** Failers
1150 No match
1151     a-b
1152  0: a-b
1153     a b
1154 No match
1155
1156 /[\d]/
1157     1
1158  0: 1
1159
1160 /[\D]/
1161     -
1162  0: -
1163     *** Failers
1164  0: *
1165     -
1166  0: -
1167     1
1168 No match
1169
1170 /ab|cd/
1171     abc
1172  0: ab
1173     abcd
1174  0: ab
1175
1176 /()ef/
1177     def
1178  0: ef
1179  1: 
1180
1181 /$b/
1182
1183 /a\(b/
1184     a(b
1185  0: a(b
1186
1187 /a\(*b/
1188     ab
1189  0: ab
1190     a((b
1191  0: a((b
1192
1193 /a\\b/
1194     a\b
1195 No match
1196
1197 /((a))/
1198     abc
1199  0: a
1200  1: a
1201  2: a
1202
1203 /(a)b(c)/
1204     abc
1205  0: abc
1206  1: a
1207  2: c
1208
1209 /a+b+c/
1210     aabbabc
1211  0: abc
1212
1213 /a{1,}b{1,}c/
1214     aabbabc
1215  0: abc
1216
1217 /a.+?c/
1218     abcabc
1219  0: abc
1220
1221 /(a+|b)*/
1222     ab
1223  0: ab
1224  1: b
1225
1226 /(a+|b){0,}/
1227     ab
1228  0: ab
1229  1: b
1230
1231 /(a+|b)+/
1232     ab
1233  0: ab
1234  1: b
1235
1236 /(a+|b){1,}/
1237     ab
1238  0: ab
1239  1: b
1240
1241 /(a+|b)?/
1242     ab
1243  0: a
1244  1: a
1245
1246 /(a+|b){0,1}/
1247     ab
1248  0: a
1249  1: a
1250
1251 /[^ab]*/
1252     cde
1253  0: cde
1254
1255 /abc/
1256     *** Failers
1257 No match
1258     b
1259 No match
1260     
1261
1262 /a*/
1263     
1264
1265 /([abc])*d/
1266     abbbcd
1267  0: abbbcd
1268  1: c
1269
1270 /([abc])*bcd/
1271     abcd
1272  0: abcd
1273  1: a
1274
1275 /a|b|c|d|e/
1276     e
1277  0: e
1278
1279 /(a|b|c|d|e)f/
1280     ef
1281  0: ef
1282  1: e
1283
1284 /abcd*efg/
1285     abcdefg
1286  0: abcdefg
1287
1288 /ab*/
1289     xabyabbbz
1290  0: ab
1291     xayabbbz
1292  0: a
1293
1294 /(ab|cd)e/
1295     abcde
1296  0: cde
1297  1: cd
1298
1299 /[abhgefdc]ij/
1300     hij
1301  0: hij
1302
1303 /^(ab|cd)e/
1304
1305 /(abc|)ef/
1306     abcdef
1307  0: ef
1308  1: 
1309
1310 /(a|b)c*d/
1311     abcd
1312  0: bcd
1313  1: b
1314
1315 /(ab|ab*)bc/
1316     abc
1317  0: abc
1318  1: a
1319
1320 /a([bc]*)c*/
1321     abc
1322  0: abc
1323  1: bc
1324
1325 /a([bc]*)(c*d)/
1326     abcd
1327  0: abcd
1328  1: bc
1329  2: d
1330
1331 /a([bc]+)(c*d)/
1332     abcd
1333  0: abcd
1334  1: bc
1335  2: d
1336
1337 /a([bc]*)(c+d)/
1338     abcd
1339  0: abcd
1340  1: b
1341  2: cd
1342
1343 /a[bcd]*dcdcde/
1344     adcdcde
1345  0: adcdcde
1346
1347 /a[bcd]+dcdcde/
1348     *** Failers
1349 No match
1350     abcde
1351 No match
1352     adcdcde
1353 No match
1354
1355 /(ab|a)b*c/
1356     abc
1357  0: abc
1358  1: ab
1359
1360 /((a)(b)c)(d)/
1361     abcd
1362  0: abcd
1363  1: abc
1364  2: a
1365  3: b
1366  4: d
1367
1368 /[a-zA-Z_][a-zA-Z0-9_]*/
1369     alpha
1370  0: alpha
1371
1372 /^a(bc+|b[eh])g|.h$/
1373     abh
1374  0: bh
1375
1376 /(bc+d$|ef*g.|h?i(j|k))/
1377     effgz
1378  0: effgz
1379  1: effgz
1380     ij
1381  0: ij
1382  1: ij
1383  2: j
1384     reffgz
1385  0: effgz
1386  1: effgz
1387     *** Failers
1388 No match
1389     effg
1390 No match
1391     bcdd
1392 No match
1393
1394 /((((((((((a))))))))))/
1395     a
1396  0: a
1397  1: a
1398  2: a
1399  3: a
1400  4: a
1401  5: a
1402  6: a
1403  7: a
1404  8: a
1405  9: a
1406 10: a
1407
1408 /((((((((((a))))))))))\10/
1409     aa
1410  0: aa
1411  1: a
1412  2: a
1413  3: a
1414  4: a
1415  5: a
1416  6: a
1417  7: a
1418  8: a
1419  9: a
1420 10: a
1421
1422 /(((((((((a)))))))))/
1423     a
1424  0: a
1425  1: a
1426  2: a
1427  3: a
1428  4: a
1429  5: a
1430  6: a
1431  7: a
1432  8: a
1433  9: a
1434
1435 /multiple words of text/
1436     *** Failers
1437 No match
1438     aa
1439 No match
1440     uh-uh
1441 No match
1442
1443 /multiple words/
1444     multiple words, yeah
1445  0: multiple words
1446
1447 /(.*)c(.*)/
1448     abcde
1449  0: abcde
1450  1: ab
1451  2: de
1452
1453 /\((.*), (.*)\)/
1454     (a, b)
1455  0: (a, b)
1456  1: a
1457  2: b
1458
1459 /[k]/
1460
1461 /abcd/
1462     abcd
1463  0: abcd
1464
1465 /a(bc)d/
1466     abcd
1467  0: abcd
1468  1: bc
1469
1470 /a[-]?c/
1471     ac
1472  0: ac
1473
1474 /(abc)\1/
1475     abcabc
1476  0: abcabc
1477  1: abc
1478
1479 /([a-c]*)\1/
1480     abcabc
1481  0: abcabc
1482  1: abc
1483
1484 /(a)|\1/
1485     a
1486  0: a
1487  1: a
1488     *** Failers
1489  0: a
1490  1: a
1491     ab
1492  0: a
1493  1: a
1494     x
1495 No match
1496
1497 /(([a-c])b*?\2)*/
1498     ababbbcbc
1499  0: ababb
1500  1: bb
1501  2: b
1502
1503 /(([a-c])b*?\2){3}/
1504     ababbbcbc
1505  0: ababbbcbc
1506  1: cbc
1507  2: c
1508
1509 /((\3|b)\2(a)x)+/
1510     aaaxabaxbaaxbbax
1511  0: bbax
1512  1: bbax
1513  2: b
1514  3: a
1515
1516 /((\3|b)\2(a)){2,}/
1517     bbaababbabaaaaabbaaaabba
1518  0: bbaaaabba
1519  1: bba
1520  2: b
1521  3: a
1522
1523 /abc/i
1524     ABC
1525  0: ABC
1526     XABCY
1527  0: ABC
1528     ABABC
1529  0: ABC
1530     *** Failers
1531 No match
1532     aaxabxbaxbbx
1533 No match
1534     XBC
1535 No match
1536     AXC
1537 No match
1538     ABX
1539 No match
1540
1541 /ab*c/i
1542     ABC
1543  0: ABC
1544
1545 /ab*bc/i
1546     ABC
1547  0: ABC
1548     ABBC
1549  0: ABBC
1550
1551 /ab*?bc/i
1552     ABBBBC
1553  0: ABBBBC
1554
1555 /ab{0,}?bc/i
1556     ABBBBC
1557  0: ABBBBC
1558
1559 /ab+?bc/i
1560     ABBC
1561  0: ABBC
1562
1563 /ab+bc/i
1564     *** Failers
1565 No match
1566     ABC
1567 No match
1568     ABQ
1569 No match
1570
1571 /ab{1,}bc/i
1572
1573 /ab+bc/i
1574     ABBBBC
1575  0: ABBBBC
1576
1577 /ab{1,}?bc/i
1578     ABBBBC
1579  0: ABBBBC
1580
1581 /ab{1,3}?bc/i
1582     ABBBBC
1583  0: ABBBBC
1584
1585 /ab{3,4}?bc/i
1586     ABBBBC
1587  0: ABBBBC
1588
1589 /ab{4,5}?bc/i
1590     *** Failers
1591 No match
1592     ABQ
1593 No match
1594     ABBBBC
1595 No match
1596
1597 /ab??bc/i
1598     ABBC
1599  0: ABBC
1600     ABC
1601  0: ABC
1602
1603 /ab{0,1}?bc/i
1604     ABC
1605  0: ABC
1606
1607 /ab??bc/i
1608
1609 /ab??c/i
1610     ABC
1611  0: ABC
1612
1613 /ab{0,1}?c/i
1614     ABC
1615  0: ABC
1616
1617 /^abc$/i
1618     ABC
1619  0: ABC
1620     *** Failers
1621 No match
1622     ABBBBC
1623 No match
1624     ABCC
1625 No match
1626
1627 /^abc/i
1628     ABCC
1629  0: ABC
1630
1631 /^abc$/i
1632
1633 /abc$/i
1634     AABC
1635  0: ABC
1636
1637 /^/i
1638     ABC
1639  0: 
1640
1641 /$/i
1642     ABC
1643  0: 
1644
1645 /a.c/i
1646     ABC
1647  0: ABC
1648     AXC
1649  0: AXC
1650
1651 /a.*?c/i
1652     AXYZC
1653  0: AXYZC
1654
1655 /a.*c/i
1656     *** Failers
1657 No match
1658     AABC
1659  0: AABC
1660     AXYZD
1661 No match
1662
1663 /a[bc]d/i
1664     ABD
1665  0: ABD
1666
1667 /a[b-d]e/i
1668     ACE
1669  0: ACE
1670     *** Failers
1671 No match
1672     ABC
1673 No match
1674     ABD
1675 No match
1676
1677 /a[b-d]/i
1678     AAC
1679  0: AC
1680
1681 /a[-b]/i
1682     A-
1683  0: A-
1684
1685 /a[b-]/i
1686     A-
1687  0: A-
1688
1689 /a]/i
1690     A]
1691  0: A]
1692
1693 /a[]]b/i
1694     A]B
1695  0: A]B
1696
1697 /a[^bc]d/i
1698     AED
1699  0: AED
1700
1701 /a[^-b]c/i
1702     ADC
1703  0: ADC
1704     *** Failers
1705 No match
1706     ABD
1707 No match
1708     A-C
1709 No match
1710
1711 /a[^]b]c/i
1712     ADC
1713  0: ADC
1714
1715 /ab|cd/i
1716     ABC
1717  0: AB
1718     ABCD
1719  0: AB
1720
1721 /()ef/i
1722     DEF
1723  0: EF
1724  1: 
1725
1726 /$b/i
1727     *** Failers
1728 No match
1729     A]C
1730 No match
1731     B
1732 No match
1733
1734 /a\(b/i
1735     A(B
1736  0: A(B
1737
1738 /a\(*b/i
1739     AB
1740  0: AB
1741     A((B
1742  0: A((B
1743
1744 /a\\b/i
1745     A\B
1746 No match
1747
1748 /((a))/i
1749     ABC
1750  0: A
1751  1: A
1752  2: A
1753
1754 /(a)b(c)/i
1755     ABC
1756  0: ABC
1757  1: A
1758  2: C
1759
1760 /a+b+c/i
1761     AABBABC
1762  0: ABC
1763
1764 /a{1,}b{1,}c/i
1765     AABBABC
1766  0: ABC
1767
1768 /a.+?c/i
1769     ABCABC
1770  0: ABC
1771
1772 /a.*?c/i
1773     ABCABC
1774  0: ABC
1775
1776 /a.{0,5}?c/i
1777     ABCABC
1778  0: ABC
1779
1780 /(a+|b)*/i
1781     AB
1782  0: AB
1783  1: B
1784
1785 /(a+|b){0,}/i
1786     AB
1787  0: AB
1788  1: B
1789
1790 /(a+|b)+/i
1791     AB
1792  0: AB
1793  1: B
1794
1795 /(a+|b){1,}/i
1796     AB
1797  0: AB
1798  1: B
1799
1800 /(a+|b)?/i
1801     AB
1802  0: A
1803  1: A
1804
1805 /(a+|b){0,1}/i
1806     AB
1807  0: A
1808  1: A
1809
1810 /(a+|b){0,1}?/i
1811     AB
1812  0: 
1813
1814 /[^ab]*/i
1815     CDE
1816  0: CDE
1817
1818 /abc/i
1819
1820 /a*/i
1821     
1822
1823 /([abc])*d/i
1824     ABBBCD
1825  0: ABBBCD
1826  1: C
1827
1828 /([abc])*bcd/i
1829     ABCD
1830  0: ABCD
1831  1: A
1832
1833 /a|b|c|d|e/i
1834     E
1835  0: E
1836
1837 /(a|b|c|d|e)f/i
1838     EF
1839  0: EF
1840  1: E
1841
1842 /abcd*efg/i
1843     ABCDEFG
1844  0: ABCDEFG
1845
1846 /ab*/i
1847     XABYABBBZ
1848  0: AB
1849     XAYABBBZ
1850  0: A
1851
1852 /(ab|cd)e/i
1853     ABCDE
1854  0: CDE
1855  1: CD
1856
1857 /[abhgefdc]ij/i
1858     HIJ
1859  0: HIJ
1860
1861 /^(ab|cd)e/i
1862     ABCDE
1863 No match
1864
1865 /(abc|)ef/i
1866     ABCDEF
1867  0: EF
1868  1: 
1869
1870 /(a|b)c*d/i
1871     ABCD
1872  0: BCD
1873  1: B
1874
1875 /(ab|ab*)bc/i
1876     ABC
1877  0: ABC
1878  1: A
1879
1880 /a([bc]*)c*/i
1881     ABC
1882  0: ABC
1883  1: BC
1884
1885 /a([bc]*)(c*d)/i
1886     ABCD
1887  0: ABCD
1888  1: BC
1889  2: D
1890
1891 /a([bc]+)(c*d)/i
1892     ABCD
1893  0: ABCD
1894  1: BC
1895  2: D
1896
1897 /a([bc]*)(c+d)/i
1898     ABCD
1899  0: ABCD
1900  1: B
1901  2: CD
1902
1903 /a[bcd]*dcdcde/i
1904     ADCDCDE
1905  0: ADCDCDE
1906
1907 /a[bcd]+dcdcde/i
1908
1909 /(ab|a)b*c/i
1910     ABC
1911  0: ABC
1912  1: AB
1913
1914 /((a)(b)c)(d)/i
1915     ABCD
1916  0: ABCD
1917  1: ABC
1918  2: A
1919  3: B
1920  4: D
1921
1922 /[a-zA-Z_][a-zA-Z0-9_]*/i
1923     ALPHA
1924  0: ALPHA
1925
1926 /^a(bc+|b[eh])g|.h$/i
1927     ABH
1928  0: BH
1929
1930 /(bc+d$|ef*g.|h?i(j|k))/i
1931     EFFGZ
1932  0: EFFGZ
1933  1: EFFGZ
1934     IJ
1935  0: IJ
1936  1: IJ
1937  2: J
1938     REFFGZ
1939  0: EFFGZ
1940  1: EFFGZ
1941     *** Failers
1942 No match
1943     ADCDCDE
1944 No match
1945     EFFG
1946 No match
1947     BCDD
1948 No match
1949
1950 /((((((((((a))))))))))/i
1951     A
1952  0: A
1953  1: A
1954  2: A
1955  3: A
1956  4: A
1957  5: A
1958  6: A
1959  7: A
1960  8: A
1961  9: A
1962 10: A
1963
1964 /((((((((((a))))))))))\10/i
1965     AA
1966  0: AA
1967  1: A
1968  2: A
1969  3: A
1970  4: A
1971  5: A
1972  6: A
1973  7: A
1974  8: A
1975  9: A
1976 10: A
1977
1978 /(((((((((a)))))))))/i
1979     A
1980  0: A
1981  1: A
1982  2: A
1983  3: A
1984  4: A
1985  5: A
1986  6: A
1987  7: A
1988  8: A
1989  9: A
1990
1991 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
1992     A
1993  0: A
1994  1: A
1995
1996 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
1997     C
1998  0: C
1999  1: C
2000
2001 /multiple words of text/i
2002     *** Failers
2003 No match
2004     AA
2005 No match
2006     UH-UH
2007 No match
2008
2009 /multiple words/i
2010     MULTIPLE WORDS, YEAH
2011  0: MULTIPLE WORDS
2012
2013 /(.*)c(.*)/i
2014     ABCDE
2015  0: ABCDE
2016  1: AB
2017  2: DE
2018
2019 /\((.*), (.*)\)/i
2020     (A, B)
2021  0: (A, B)
2022  1: A
2023  2: B
2024
2025 /[k]/i
2026
2027 /abcd/i
2028     ABCD
2029  0: ABCD
2030
2031 /a(bc)d/i
2032     ABCD
2033  0: ABCD
2034  1: BC
2035
2036 /a[-]?c/i
2037     AC
2038  0: AC
2039
2040 /(abc)\1/i
2041     ABCABC
2042  0: ABCABC
2043  1: ABC
2044
2045 /([a-c]*)\1/i
2046     ABCABC
2047  0: ABCABC
2048  1: ABC
2049
2050 /a(?!b)./
2051     abad
2052  0: ad
2053
2054 /a(?=d)./
2055     abad
2056  0: ad
2057
2058 /a(?=c|d)./
2059     abad
2060  0: ad
2061
2062 /a(?:b|c|d)(.)/
2063     ace
2064  0: ace
2065  1: e
2066
2067 /a(?:b|c|d)*(.)/
2068     ace
2069  0: ace
2070  1: e
2071
2072 /a(?:b|c|d)+?(.)/
2073     ace
2074  0: ace
2075  1: e
2076     acdbcdbe
2077  0: acd
2078  1: d
2079
2080 /a(?:b|c|d)+(.)/
2081     acdbcdbe
2082  0: acdbcdbe
2083  1: e
2084
2085 /a(?:b|c|d){2}(.)/
2086     acdbcdbe
2087  0: acdb
2088  1: b
2089
2090 /a(?:b|c|d){4,5}(.)/
2091     acdbcdbe
2092  0: acdbcdb
2093  1: b
2094
2095 /a(?:b|c|d){4,5}?(.)/
2096     acdbcdbe
2097  0: acdbcd
2098  1: d
2099
2100 /((foo)|(bar))*/
2101     foobar
2102  0: foobar
2103  1: bar
2104  2: foo
2105  3: bar
2106
2107 /a(?:b|c|d){6,7}(.)/
2108     acdbcdbe
2109  0: acdbcdbe
2110  1: e
2111
2112 /a(?:b|c|d){6,7}?(.)/
2113     acdbcdbe
2114  0: acdbcdbe
2115  1: e
2116
2117 /a(?:b|c|d){5,6}(.)/
2118     acdbcdbe
2119  0: acdbcdbe
2120  1: e
2121
2122 /a(?:b|c|d){5,6}?(.)/
2123     acdbcdbe
2124  0: acdbcdb
2125  1: b
2126
2127 /a(?:b|c|d){5,7}(.)/
2128     acdbcdbe
2129  0: acdbcdbe
2130  1: e
2131
2132 /a(?:b|c|d){5,7}?(.)/
2133     acdbcdbe
2134  0: acdbcdb
2135  1: b
2136
2137 /a(?:b|(c|e){1,2}?|d)+?(.)/
2138     ace
2139  0: ace
2140  1: c
2141  2: e
2142
2143 /^(.+)?B/
2144     AB
2145  0: AB
2146  1: A
2147
2148 /^([^a-z])|(\^)$/
2149     .
2150  0: .
2151  1: .
2152
2153 /^[<>]&/
2154     <&OUT
2155  0: <&
2156
2157 /^(a\1?){4}$/
2158     aaaaaaaaaa
2159  0: aaaaaaaaaa
2160  1: aaaa
2161     *** Failers
2162 No match
2163     AB
2164 No match
2165     aaaaaaaaa
2166 No match
2167     aaaaaaaaaaa
2168 No match
2169
2170 /^(a(?(1)\1)){4}$/
2171     aaaaaaaaaa
2172  0: aaaaaaaaaa
2173  1: aaaa
2174     *** Failers
2175 No match
2176     aaaaaaaaa
2177 No match
2178     aaaaaaaaaaa
2179 No match
2180
2181 /(?:(f)(o)(o)|(b)(a)(r))*/
2182     foobar
2183  0: foobar
2184  1: f
2185  2: o
2186  3: o
2187  4: b
2188  5: a
2189  6: r
2190
2191 /(?<=a)b/
2192     ab
2193  0: b
2194     *** Failers
2195 No match
2196     cb
2197 No match
2198     b
2199 No match
2200
2201 /(?<!c)b/
2202     ab
2203  0: b
2204     b
2205  0: b
2206     b
2207  0: b
2208
2209 /(?:..)*a/
2210     aba
2211  0: aba
2212
2213 /(?:..)*?a/
2214     aba
2215  0: a
2216
2217 /^(?:b|a(?=(.)))*\1/
2218     abc
2219  0: ab
2220  1: b
2221
2222 /^(){3,5}/
2223     abc
2224  0: 
2225  1: 
2226
2227 /^(a+)*ax/
2228     aax
2229  0: aax
2230  1: a
2231
2232 /^((a|b)+)*ax/
2233     aax
2234  0: aax
2235  1: a
2236  2: a
2237
2238 /^((a|bc)+)*ax/
2239     aax
2240  0: aax
2241  1: a
2242  2: a
2243
2244 /(a|x)*ab/
2245     cab
2246  0: ab
2247
2248 /(a)*ab/
2249     cab
2250  0: ab
2251
2252 /(?:(?i)a)b/
2253     ab
2254  0: ab
2255
2256 /((?i)a)b/
2257     ab
2258  0: ab
2259  1: a
2260
2261 /(?:(?i)a)b/
2262     Ab
2263  0: Ab
2264
2265 /((?i)a)b/
2266     Ab
2267  0: Ab
2268  1: A
2269
2270 /(?:(?i)a)b/
2271     *** Failers
2272 No match
2273     cb
2274 No match
2275     aB
2276 No match
2277
2278 /((?i)a)b/
2279
2280 /(?i:a)b/
2281     ab
2282  0: ab
2283
2284 /((?i:a))b/
2285     ab
2286  0: ab
2287  1: a
2288
2289 /(?i:a)b/
2290     Ab
2291  0: Ab
2292
2293 /((?i:a))b/
2294     Ab
2295  0: Ab
2296  1: A
2297
2298 /(?i:a)b/
2299     *** Failers
2300 No match
2301     aB
2302 No match
2303     aB
2304 No match
2305
2306 /((?i:a))b/
2307
2308 /(?:(?-i)a)b/i
2309     ab
2310  0: ab
2311
2312 /((?-i)a)b/i
2313     ab
2314  0: ab
2315  1: a
2316
2317 /(?:(?-i)a)b/i
2318     aB
2319  0: aB
2320
2321 /((?-i)a)b/i
2322     aB
2323  0: aB
2324  1: a
2325
2326 /(?:(?-i)a)b/i
2327     *** Failers
2328 No match
2329     aB
2330  0: aB
2331     Ab
2332 No match
2333
2334 /((?-i)a)b/i
2335
2336 /(?:(?-i)a)b/i
2337     aB
2338  0: aB
2339
2340 /((?-i)a)b/i
2341     aB
2342  0: aB
2343  1: a
2344
2345 /(?:(?-i)a)b/i
2346     *** Failers
2347 No match
2348     Ab
2349 No match
2350     AB
2351 No match
2352
2353 /((?-i)a)b/i
2354
2355 /(?-i:a)b/i
2356     ab
2357  0: ab
2358
2359 /((?-i:a))b/i
2360     ab
2361  0: ab
2362  1: a
2363
2364 /(?-i:a)b/i
2365     aB
2366  0: aB
2367
2368 /((?-i:a))b/i
2369     aB
2370  0: aB
2371  1: a
2372
2373 /(?-i:a)b/i
2374     *** Failers
2375 No match
2376     AB
2377 No match
2378     Ab
2379 No match
2380
2381 /((?-i:a))b/i
2382
2383 /(?-i:a)b/i
2384     aB
2385  0: aB
2386
2387 /((?-i:a))b/i
2388     aB
2389  0: aB
2390  1: a
2391
2392 /(?-i:a)b/i
2393     *** Failers
2394 No match
2395     Ab
2396 No match
2397     AB
2398 No match
2399
2400 /((?-i:a))b/i
2401
2402 /((?-i:a.))b/i
2403     *** Failers
2404 No match
2405     AB
2406 No match
2407     a\nB
2408 No match
2409
2410 /((?s-i:a.))b/i
2411     a\nB
2412  0: a\x0aB
2413  1: a\x0a
2414
2415 /(?:c|d)(?:)(?:a(?:)(?:b)(?:b(?:))(?:b(?:)(?:b)))/
2416     cabbbb
2417  0: cabbbb
2418
2419 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/
2420     caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
2421  0: caaaaaaaabbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb
2422
2423 /(ab)\d\1/i
2424     Ab4ab
2425  0: Ab4ab
2426  1: Ab
2427     ab4Ab
2428  0: ab4Ab
2429  1: ab
2430
2431 /foo\w*\d{4}baz/
2432     foobar1234baz
2433  0: foobar1234baz
2434
2435 /x(~~)*(?:(?:F)?)?/
2436     x~~
2437  0: x~~
2438  1: ~~
2439
2440 /^a(?#xxx){3}c/
2441     aaac
2442  0: aaac
2443
2444 /^a (?#xxx) (?#yyy) {3}c/x
2445     aaac
2446  0: aaac
2447
2448 /(?<![cd])b/
2449     *** Failers
2450 No match
2451     B\nB
2452 No match
2453     dbcb
2454 No match
2455
2456 /(?<![cd])[ab]/
2457     dbaacb
2458  0: a
2459
2460 /(?<!(c|d))b/
2461
2462 /(?<!(c|d))[ab]/
2463     dbaacb
2464  0: a
2465
2466 /(?<!cd)[ab]/
2467     cdaccb
2468  0: b
2469
2470 /^(?:a?b?)*$/
2471     *** Failers
2472 No match
2473     dbcb
2474 No match
2475     a--
2476 No match
2477
2478 /((?s)^a(.))((?m)^b$)/
2479     a\nb\nc\n
2480  0: a\x0ab
2481  1: a\x0a
2482  2: \x0a
2483  3: b
2484
2485 /((?m)^b$)/
2486     a\nb\nc\n
2487  0: b
2488  1: b
2489
2490 /(?m)^b/
2491     a\nb\n
2492  0: b
2493
2494 /(?m)^(b)/
2495     a\nb\n
2496  0: b
2497  1: b
2498
2499 /((?m)^b)/
2500     a\nb\n
2501  0: b
2502  1: b
2503
2504 /\n((?m)^b)/
2505     a\nb\n
2506  0: \x0ab
2507  1: b
2508
2509 /((?s).)c(?!.)/
2510     a\nb\nc\n
2511  0: \x0ac
2512  1: \x0a
2513     a\nb\nc\n
2514  0: \x0ac
2515  1: \x0a
2516
2517 /((?s)b.)c(?!.)/
2518     a\nb\nc\n
2519  0: b\x0ac
2520  1: b\x0a
2521     a\nb\nc\n
2522  0: b\x0ac
2523  1: b\x0a
2524
2525 /^b/
2526
2527 /()^b/
2528     *** Failers
2529 No match
2530     a\nb\nc\n
2531 No match
2532     a\nb\nc\n
2533 No match
2534
2535 /((?m)^b)/
2536     a\nb\nc\n
2537  0: b
2538  1: b
2539
2540 /(?(1)a|b)/
2541
2542 /(?(1)b|a)/
2543     a
2544  0: a
2545
2546 /(x)?(?(1)a|b)/
2547     *** Failers
2548 No match
2549     a
2550 No match
2551     a
2552 No match
2553
2554 /(x)?(?(1)b|a)/
2555     a
2556  0: a
2557
2558 /()?(?(1)b|a)/
2559     a
2560  0: a
2561
2562 /()(?(1)b|a)/
2563
2564 /()?(?(1)a|b)/
2565     a
2566  0: a
2567  1: 
2568
2569 /^(\()?blah(?(1)(\)))$/
2570     (blah)
2571  0: (blah)
2572  1: (
2573  2: )
2574     blah
2575  0: blah
2576     *** Failers
2577 No match
2578     a
2579 No match
2580     blah)
2581 No match
2582     (blah
2583 No match
2584
2585 /^(\(+)?blah(?(1)(\)))$/
2586     (blah)
2587  0: (blah)
2588  1: (
2589  2: )
2590     blah
2591  0: blah
2592     *** Failers
2593 No match
2594     blah)
2595 No match
2596     (blah
2597 No match
2598
2599 /(?(?!a)a|b)/
2600
2601 /(?(?!a)b|a)/
2602     a
2603  0: a
2604
2605 /(?(?=a)b|a)/
2606     *** Failers
2607 No match
2608     a
2609 No match
2610     a
2611 No match
2612
2613 /(?(?=a)a|b)/
2614     a
2615  0: a
2616
2617 /(?=(a+?))(\1ab)/
2618     aaab
2619  0: aab
2620  1: a
2621  2: aab
2622
2623 /^(?=(a+?))\1ab/
2624
2625 /(\w+:)+/
2626     one:
2627  0: one:
2628  1: one:
2629
2630 /$(?<=^(a))/
2631     a
2632  0: 
2633  1: a
2634
2635 /(?=(a+?))(\1ab)/
2636     aaab
2637  0: aab
2638  1: a
2639  2: aab
2640
2641 /^(?=(a+?))\1ab/
2642     *** Failers
2643 No match
2644     aaab
2645 No match
2646     aaab
2647 No match
2648
2649 /([\w:]+::)?(\w+)$/
2650     abcd
2651  0: abcd
2652  1: <unset>
2653  2: abcd
2654     xy:z:::abcd
2655  0: xy:z:::abcd
2656  1: xy:z:::
2657  2: abcd
2658
2659 /^[^bcd]*(c+)/
2660     aexycd
2661  0: aexyc
2662  1: c
2663
2664 /(a*)b+/
2665     caab
2666  0: aab
2667  1: aa
2668
2669 /([\w:]+::)?(\w+)$/
2670     abcd
2671  0: abcd
2672  1: <unset>
2673  2: abcd
2674     xy:z:::abcd
2675  0: xy:z:::abcd
2676  1: xy:z:::
2677  2: abcd
2678     *** Failers
2679  0: Failers
2680  1: <unset>
2681  2: Failers
2682     abcd:
2683 No match
2684     abcd:
2685 No match
2686
2687 /^[^bcd]*(c+)/
2688     aexycd
2689  0: aexyc
2690  1: c
2691
2692 /(>a+)ab/
2693
2694 /(?>a+)b/
2695     aaab
2696  0: aaab
2697
2698 /([[:]+)/
2699     a:[b]:
2700  0: :[
2701  1: :[
2702
2703 /([[=]+)/
2704     a=[b]=
2705  0: =[
2706  1: =[
2707
2708 /([[.]+)/
2709     a.[b].
2710  0: .[
2711  1: .[
2712
2713 /((?>a+)b)/
2714     aaab
2715  0: aaab
2716  1: aaab
2717
2718 /(?>(a+))b/
2719     aaab
2720  0: aaab
2721  1: aaa
2722
2723 /((?>[^()]+)|\([^()]*\))+/
2724     ((abc(ade)ufh()()x
2725  0: abc(ade)ufh()()x
2726  1: x
2727
2728 /a\Z/
2729     *** Failers
2730 No match
2731     aaab
2732 No match
2733     a\nb\n
2734 No match
2735
2736 /b\Z/
2737     a\nb\n
2738  0: b
2739
2740 /b\z/
2741
2742 /b\Z/
2743     a\nb
2744  0: b
2745
2746 /b\z/
2747     a\nb
2748  0: b
2749     *** Failers
2750 No match
2751     
2752 /^(?>(?(1)\.|())[^\W_](?>[a-z0-9-]*[^\W_])?)+$/
2753     a
2754  0: a
2755  1: 
2756     abc
2757  0: abc
2758  1: 
2759     a-b
2760  0: a-b
2761  1: 
2762     0-9 
2763  0: 0-9
2764  1: 
2765     a.b
2766  0: a.b
2767  1: 
2768     5.6.7  
2769  0: 5.6.7
2770  1: 
2771     the.quick.brown.fox
2772  0: the.quick.brown.fox
2773  1: 
2774     a100.b200.300c  
2775  0: a100.b200.300c
2776  1: 
2777     12-ab.1245 
2778  0: 12-ab.1245
2779  1: 
2780     ***Failers
2781 No match
2782     \
2783 No match
2784     .a
2785 No match
2786     -a
2787 No match
2788     a-
2789 No match
2790     a.  
2791 No match
2792     a_b 
2793 No match
2794     a.-
2795 No match
2796     a..  
2797 No match
2798     ab..bc 
2799 No match
2800     the.quick.brown.fox-
2801 No match
2802     the.quick.brown.fox.
2803 No match
2804     the.quick.brown.fox_
2805 No match
2806     the.quick.brown.fox+       
2807 No match
2808
2809 /(?>.*)(?<=(abcd|wxyz))/
2810     alphabetabcd
2811  0: alphabetabcd
2812  1: abcd
2813     endingwxyz
2814  0: endingwxyz
2815  1: wxyz
2816     *** Failers
2817 No match
2818     a rather long string that doesn't end with one of them
2819 No match
2820
2821 /word (?>(?:(?!otherword)[a-zA-Z0-9]+ ){0,30})otherword/
2822     word cat dog elephant mussel cow horse canary baboon snake shark otherword
2823  0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
2824     word cat dog elephant mussel cow horse canary baboon snake shark
2825 No match
2826   
2827 /word (?>[a-zA-Z0-9]+ ){0,30}otherword/
2828     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
2829 No match
2830
2831 /(?<=\d{3}(?!999))foo/
2832     999foo
2833  0: foo
2834     123999foo 
2835  0: foo
2836     *** Failers
2837 No match
2838     123abcfoo
2839 No match
2840     
2841 /(?<=(?!...999)\d{3})foo/
2842     999foo
2843  0: foo
2844     123999foo 
2845  0: foo
2846     *** Failers
2847 No match
2848     123abcfoo
2849 No match
2850
2851 /(?<=\d{3}(?!999)...)foo/
2852     123abcfoo
2853  0: foo
2854     123456foo 
2855  0: foo
2856     *** Failers
2857 No match
2858     123999foo  
2859 No match
2860     
2861 /(?<=\d{3}...)(?<!999)foo/
2862     123abcfoo   
2863  0: foo
2864     123456foo 
2865  0: foo
2866     *** Failers
2867 No match
2868     123999foo  
2869 No match
2870
2871 /<a[\s]+href[\s]*=[\s]*          # find <a href=
2872  ([\"\'])?                       # find single or double quote
2873  (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
2874                                  # quote, otherwise match up to next space
2875 /isx
2876     <a href=abcd xyz
2877  0: <a href=abcd
2878  1: <unset>
2879  2: <unset>
2880  3: abcd
2881     <a href=\"abcd xyz pqr\" cats
2882  0: <a href="abcd xyz pqr"
2883  1: "
2884  2: abcd xyz pqr
2885     <a href=\'abcd xyz pqr\' cats
2886  0: <a href='abcd xyz pqr'
2887  1: '
2888  2: abcd xyz pqr
2889
2890 /<a\s+href\s*=\s*                # find <a href=
2891  (["'])?                         # find single or double quote
2892  (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
2893                                  # quote, otherwise match up to next space
2894 /isx
2895     <a href=abcd xyz
2896  0: <a href=abcd
2897  1: <unset>
2898  2: <unset>
2899  3: abcd
2900     <a href=\"abcd xyz pqr\" cats
2901  0: <a href="abcd xyz pqr"
2902  1: "
2903  2: abcd xyz pqr
2904     <a href       =       \'abcd xyz pqr\' cats
2905  0: <a href       =       'abcd xyz pqr'
2906  1: '
2907  2: abcd xyz pqr
2908
2909 /<a\s+href(?>\s*)=(?>\s*)        # find <a href=
2910  (["'])?                         # find single or double quote
2911  (?(1) (.*?)\1 | (\S+))          # if quote found, match up to next matching
2912                                  # quote, otherwise match up to next space
2913 /isx
2914     <a href=abcd xyz
2915  0: <a href=abcd
2916  1: <unset>
2917  2: <unset>
2918  3: abcd
2919     <a href=\"abcd xyz pqr\" cats
2920  0: <a href="abcd xyz pqr"
2921  1: "
2922  2: abcd xyz pqr
2923     <a href       =       \'abcd xyz pqr\' cats
2924  0: <a href       =       'abcd xyz pqr'
2925  1: '
2926  2: abcd xyz pqr
2927
2928 /((Z)+|A)*/
2929     ZABCDEFG
2930  0: ZA
2931  1: A
2932  2: Z
2933
2934 /(Z()|A)*/
2935     ZABCDEFG
2936  0: ZA
2937  1: A
2938  2: 
2939
2940 /(Z(())|A)*/
2941     ZABCDEFG
2942  0: ZA
2943  1: A
2944  2: 
2945  3: 
2946
2947 /((?>Z)+|A)*/
2948     ZABCDEFG
2949  0: ZA
2950  1: A
2951
2952 /((?>)+|A)*/
2953     ZABCDEFG
2954  0: 
2955  1: 
2956
2957 /a*/g
2958     abbab
2959  0: a
2960  0: 
2961  0: 
2962  0: a
2963  0: 
2964  0: 
2965
2966 /^[a-\d]/
2967     abcde
2968  0: a
2969     -things
2970  0: -
2971     0digit
2972  0: 0
2973     *** Failers
2974 No match
2975     bcdef    
2976 No match
2977
2978 /^[\d-a]/
2979     abcde
2980  0: a
2981     -things
2982  0: -
2983     0digit
2984  0: 0
2985     *** Failers
2986 No match
2987     bcdef    
2988 No match
2989
2990 / End of testinput3 /       
2991