Reviewed by Darin.
[WebKit-https.git] / LayoutTests / fast / regex / testoutput1
1 /the quick brown fox/
2     the quick brown fox
3  0: the quick brown fox
4     The quick brown FOX
5 No match
6     What do you know about the quick brown fox?
7  0: the quick brown fox
8     What do you know about THE QUICK BROWN FOX?
9 No match
10
11 /The quick brown fox/i
12     the quick brown fox
13  0: the quick brown fox
14     The quick brown FOX
15  0: The quick brown FOX
16     What do you know about the quick brown fox?
17  0: the quick brown fox
18     What do you know about THE QUICK BROWN FOX?
19  0: THE QUICK BROWN FOX
20
21 /abcd\t\n\r\f\a\e\071\x3b\$\\\?caxyz/
22     abcd\t\n\r\f\a\e9;\$\\?caxyz
23  0: abcd\x09\x0a\x0d\x0c\x07\x1b9;$\?caxyz
24
25 /a*abc?xyz+pqr{3}ab{2,}xy{4,5}pq{0,6}AB{0,}zz/
26     abxyzpqrrrabbxyyyypqAzz
27  0: abxyzpqrrrabbxyyyypqAzz
28     abxyzpqrrrabbxyyyypqAzz
29  0: abxyzpqrrrabbxyyyypqAzz
30     aabxyzpqrrrabbxyyyypqAzz
31  0: aabxyzpqrrrabbxyyyypqAzz
32     aaabxyzpqrrrabbxyyyypqAzz
33  0: aaabxyzpqrrrabbxyyyypqAzz
34     aaaabxyzpqrrrabbxyyyypqAzz
35  0: aaaabxyzpqrrrabbxyyyypqAzz
36     abcxyzpqrrrabbxyyyypqAzz
37  0: abcxyzpqrrrabbxyyyypqAzz
38     aabcxyzpqrrrabbxyyyypqAzz
39  0: aabcxyzpqrrrabbxyyyypqAzz
40     aaabcxyzpqrrrabbxyyyypAzz
41  0: aaabcxyzpqrrrabbxyyyypAzz
42     aaabcxyzpqrrrabbxyyyypqAzz
43  0: aaabcxyzpqrrrabbxyyyypqAzz
44     aaabcxyzpqrrrabbxyyyypqqAzz
45  0: aaabcxyzpqrrrabbxyyyypqqAzz
46     aaabcxyzpqrrrabbxyyyypqqqAzz
47  0: aaabcxyzpqrrrabbxyyyypqqqAzz
48     aaabcxyzpqrrrabbxyyyypqqqqAzz
49  0: aaabcxyzpqrrrabbxyyyypqqqqAzz
50     aaabcxyzpqrrrabbxyyyypqqqqqAzz
51  0: aaabcxyzpqrrrabbxyyyypqqqqqAzz
52     aaabcxyzpqrrrabbxyyyypqqqqqqAzz
53  0: aaabcxyzpqrrrabbxyyyypqqqqqqAzz
54     aaaabcxyzpqrrrabbxyyyypqAzz
55  0: aaaabcxyzpqrrrabbxyyyypqAzz
56     abxyzzpqrrrabbxyyyypqAzz
57  0: abxyzzpqrrrabbxyyyypqAzz
58     aabxyzzzpqrrrabbxyyyypqAzz
59  0: aabxyzzzpqrrrabbxyyyypqAzz
60     aaabxyzzzzpqrrrabbxyyyypqAzz
61  0: aaabxyzzzzpqrrrabbxyyyypqAzz
62     aaaabxyzzzzpqrrrabbxyyyypqAzz
63  0: aaaabxyzzzzpqrrrabbxyyyypqAzz
64     abcxyzzpqrrrabbxyyyypqAzz
65  0: abcxyzzpqrrrabbxyyyypqAzz
66     aabcxyzzzpqrrrabbxyyyypqAzz
67  0: aabcxyzzzpqrrrabbxyyyypqAzz
68     aaabcxyzzzzpqrrrabbxyyyypqAzz
69  0: aaabcxyzzzzpqrrrabbxyyyypqAzz
70     aaaabcxyzzzzpqrrrabbxyyyypqAzz
71  0: aaaabcxyzzzzpqrrrabbxyyyypqAzz
72     aaaabcxyzzzzpqrrrabbbxyyyypqAzz
73  0: aaaabcxyzzzzpqrrrabbbxyyyypqAzz
74     aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
75  0: aaaabcxyzzzzpqrrrabbbxyyyyypqAzz
76     aaabcxyzpqrrrabbxyyyypABzz
77  0: aaabcxyzpqrrrabbxyyyypABzz
78     aaabcxyzpqrrrabbxyyyypABBzz
79  0: aaabcxyzpqrrrabbxyyyypABBzz
80     >>>aaabxyzpqrrrabbxyyyypqAzz
81  0: aaabxyzpqrrrabbxyyyypqAzz
82     >aaaabxyzpqrrrabbxyyyypqAzz
83  0: aaaabxyzpqrrrabbxyyyypqAzz
84     >>>>abcxyzpqrrrabbxyyyypqAzz
85  0: abcxyzpqrrrabbxyyyypqAzz
86     *** Failers
87 No match
88     abxyzpqrrabbxyyyypqAzz
89 No match
90     abxyzpqrrrrabbxyyyypqAzz
91 No match
92     abxyzpqrrrabxyyyypqAzz
93 No match
94     aaaabcxyzzzzpqrrrabbbxyyyyyypqAzz
95 No match
96     aaaabcxyzzzzpqrrrabbbxyyypqAzz
97 No match
98     aaabcxyzpqrrrabbxyyyypqqqqqqqAzz
99 No match
100
101 /^(abc){1,2}zz/
102     abczz
103  0: abczz
104  1: abc
105     abcabczz
106  0: abcabczz
107  1: abc
108     *** Failers
109 No match
110     zz
111 No match
112     abcabcabczz
113 No match
114     >>abczz
115 No match
116
117 /^(b+?|a){1,2}?c/
118     bc
119  0: bc
120  1: b
121     bbc
122  0: bbc
123  1: b
124     bbbc
125  0: bbbc
126  1: bb
127     bac
128  0: bac
129  1: a
130     bbac
131  0: bbac
132  1: a
133     aac
134  0: aac
135  1: a
136     abbbbbbbbbbbc
137  0: abbbbbbbbbbbc
138  1: bbbbbbbbbbb
139     bbbbbbbbbbbac
140  0: bbbbbbbbbbbac
141  1: a
142     *** Failers
143 No match
144     aaac
145 No match
146     abbbbbbbbbbbac
147 No match
148
149 /^(b+|a){1,2}c/
150     bc
151  0: bc
152  1: b
153     bbc
154  0: bbc
155  1: bb
156     bbbc
157  0: bbbc
158  1: bbb
159     bac
160  0: bac
161  1: a
162     bbac
163  0: bbac
164  1: a
165     aac
166  0: aac
167  1: a
168     abbbbbbbbbbbc
169  0: abbbbbbbbbbbc
170  1: bbbbbbbbbbb
171     bbbbbbbbbbbac
172  0: bbbbbbbbbbbac
173  1: a
174     *** Failers
175 No match
176     aaac
177 No match
178     abbbbbbbbbbbac
179 No match
180
181 /^(b+|a){1,2}?bc/
182     bbc
183  0: bbc
184  1: b
185
186 /^(b*|ba){1,2}?bc/
187     babc
188  0: babc
189  1: ba
190     bbabc
191  0: bbabc
192  1: ba
193     bababc
194  0: bababc
195  1: ba
196     *** Failers
197 No match
198     bababbc
199 No match
200     babababc
201 No match
202
203 /^(ba|b*){1,2}?bc/
204     babc
205  0: babc
206  1: ba
207     bbabc
208  0: bbabc
209  1: ba
210     bababc
211  0: bababc
212  1: ba
213     *** Failers
214 No match
215     bababbc
216 No match
217     babababc
218 No match
219
220 /^\ca\cA\c[\c{\c:/
221     \x01\x01\e;z
222  0: \x01\x01\x1b;z
223
224 /^[ab\]cde]/
225     athing
226  0: a
227     bthing
228  0: b
229     ]thing
230  0: ]
231     cthing
232  0: c
233     dthing
234  0: d
235     ething
236  0: e
237     *** Failers
238 No match
239     fthing
240 No match
241     [thing
242 No match
243     \\thing
244 No match
245
246 /^[]cde]/
247     ]thing
248  0: ]
249     cthing
250  0: c
251     dthing
252  0: d
253     ething
254  0: e
255     *** Failers
256 No match
257     athing
258 No match
259     fthing
260 No match
261
262 /^[^ab\]cde]/
263     fthing
264  0: f
265     [thing
266  0: [
267     \\thing
268  0: \
269     *** Failers
270  0: *
271     athing
272 No match
273     bthing
274 No match
275     ]thing
276 No match
277     cthing
278 No match
279     dthing
280 No match
281     ething
282 No match
283
284 /^[^]cde]/
285     athing
286  0: a
287     fthing
288  0: f
289     *** Failers
290  0: *
291     ]thing
292 No match
293     cthing
294 No match
295     dthing
296 No match
297     ething
298 No match
299
300 /^\\81/
301     \81
302  0: \x81
303
304 /^ÿ/
305     ÿ
306  0: \xff
307
308 /^[0-9]+$/
309     0
310  0: 0
311     1
312  0: 1
313     2
314  0: 2
315     3
316  0: 3
317     4
318  0: 4
319     5
320  0: 5
321     6
322  0: 6
323     7
324  0: 7
325     8
326  0: 8
327     9
328  0: 9
329     10
330  0: 10
331     100
332  0: 100
333     *** Failers
334 No match
335     abc
336 No match
337
338 /^.*nter/
339     enter
340  0: enter
341     inter
342  0: inter
343     uponter
344  0: uponter
345
346 /^xxx[0-9]+$/
347     xxx0
348  0: xxx0
349     xxx1234
350  0: xxx1234
351     *** Failers
352 No match
353     xxx
354 No match
355
356 /^.+[0-9][0-9][0-9]$/
357     x123
358  0: x123
359     xx123
360  0: xx123
361     123456
362  0: 123456
363     *** Failers
364 No match
365     123
366 No match
367     x1234
368  0: x1234
369
370 /^.+?[0-9][0-9][0-9]$/
371     x123
372  0: x123
373     xx123
374  0: xx123
375     123456
376  0: 123456
377     *** Failers
378 No match
379     123
380 No match
381     x1234
382  0: x1234
383
384 /^([^!]+)!(.+)=apquxz\.ixr\.zzz\.ac\.uk$/
385     abc!pqr=apquxz.ixr.zzz.ac.uk
386  0: abc!pqr=apquxz.ixr.zzz.ac.uk
387  1: abc
388  2: pqr
389     *** Failers
390 No match
391     !pqr=apquxz.ixr.zzz.ac.uk
392 No match
393     abc!=apquxz.ixr.zzz.ac.uk
394 No match
395     abc!pqr=apquxz:ixr.zzz.ac.uk
396 No match
397     abc!pqr=apquxz.ixr.zzz.ac.ukk
398 No match
399
400 /:/
401     Well, we need a colon: somewhere
402  0: :
403     *** Fail if we don't
404 No match
405
406 /([\da-f:]+)$/i
407     0abc
408  0: 0abc
409  1: 0abc
410     abc
411  0: abc
412  1: abc
413     fed
414  0: fed
415  1: fed
416     E
417  0: E
418  1: E
419     ::
420  0: ::
421  1: ::
422     5f03:12C0::932e
423  0: 5f03:12C0::932e
424  1: 5f03:12C0::932e
425     fed def
426  0: def
427  1: def
428     Any old stuff
429  0: ff
430  1: ff
431     *** Failers
432 No match
433     0zzz
434 No match
435     gzzz
436 No match
437     fed\x20
438 No match
439     Any old rubbish
440 No match
441
442 /^.*\.(\d{1,3})\.(\d{1,3})\.(\d{1,3})$/
443     .1.2.3
444  0: .1.2.3
445  1: 1
446  2: 2
447  3: 3
448     A.12.123.0
449  0: A.12.123.0
450  1: 12
451  2: 123
452  3: 0
453     *** Failers
454 No match
455     .1.2.3333
456 No match
457     1.2.3
458 No match
459     1234.2.3
460 No match
461
462 /^(\d+)\s+IN\s+SOA\s+(\S+)\s+(\S+)\s*\(\s*$/
463     1 IN SOA non-sp1 non-sp2(
464  0: 1 IN SOA non-sp1 non-sp2(
465  1: 1
466  2: non-sp1
467  3: non-sp2
468     1    IN    SOA    non-sp1    non-sp2   (
469  0: 1    IN    SOA    non-sp1    non-sp2   (
470  1: 1
471  2: non-sp1
472  3: non-sp2
473     *** Failers
474 No match
475     1IN SOA non-sp1 non-sp2(
476 No match
477
478 /^[a-zA-Z\d][a-zA-Z\d\-]*(\.[a-zA-Z\d][a-zA-z\d\-]*)*\.$/
479     a.
480  0: a.
481     Z.
482  0: Z.
483     2.
484  0: 2.
485     ab-c.pq-r.
486  0: ab-c.pq-r.
487  1: .pq-r
488     sxk.zzz.ac.uk.
489  0: sxk.zzz.ac.uk.
490  1: .uk
491     x-.y-.
492  0: x-.y-.
493  1: .y-
494     *** Failers
495 No match
496     -abc.peq.
497 No match
498
499 /^\*\.[a-z]([a-z\-\d]*[a-z\d]+)?(\.[a-z]([a-z\-\d]*[a-z\d]+)?)*$/
500     *.a
501  0: *.a
502     *.b0-a
503  0: *.b0-a
504  1: 0-a
505     *.c3-b.c
506  0: *.c3-b.c
507  1: 3-b
508  2: .c
509     *.c-a.b-c
510  0: *.c-a.b-c
511  1: -a
512  2: .b-c
513  3: -c
514     *** Failers
515 No match
516     *.0
517 No match
518     *.a-
519 No match
520     *.a-b.c-
521 No match
522     *.c-a.0-c
523 No match
524
525 /^(?=ab(de))(abd)(e)/
526     abde
527  0: abde
528  1: de
529  2: abd
530  3: e
531
532 /^(?!(ab)de|x)(abd)(f)/
533     abdf
534  0: abdf
535  1: <unset>
536  2: abd
537  3: f
538
539 /^(?=(ab(cd)))(ab)/
540     abcd
541  0: ab
542  1: abcd
543  2: cd
544  3: ab
545
546 /^[\da-f](\.[\da-f])*$/i
547     a.b.c.d
548  0: a.b.c.d
549  1: .d
550     A.B.C.D
551  0: A.B.C.D
552  1: .D
553     a.b.c.1.2.3.C
554  0: a.b.c.1.2.3.C
555  1: .C
556
557 /^\".*\"\s*(;.*)?$/
558     \"1234\"
559  0: "1234"
560     \"abcd\" ;
561  0: "abcd" ;
562  1: ;
563     \"\" ; rhubarb
564  0: "" ; rhubarb
565  1: ; rhubarb
566     *** Failers
567 No match
568     \"1234\" : things
569 No match
570
571 /^$/
572     \
573  0: 
574     *** Failers
575 No match
576
577 /   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/x
578     ab c
579  0: ab c
580     *** Failers
581 No match
582     abc
583 No match
584     ab cde
585 No match
586
587 /(?x)   ^    a   (?# begins with a)  b\sc (?# then b c) $ (?# then end)/
588     ab c
589  0: ab c
590     *** Failers
591 No match
592     abc
593 No match
594     ab cde
595 No match
596
597 /^   a\ b[c ]d       $/x
598     a bcd
599  0: a bcd
600     a b d
601  0: a b d
602     *** Failers
603 No match
604     abcd
605 No match
606     ab d
607 No match
608
609 /^(a(b(c)))(d(e(f)))(h(i(j)))(k(l(m)))$/
610     abcdefhijklm
611  0: abcdefhijklm
612  1: abc
613  2: bc
614  3: c
615  4: def
616  5: ef
617  6: f
618  7: hij
619  8: ij
620  9: j
621 10: klm
622 11: lm
623 12: m
624
625 /^(?:a(b(c)))(?:d(e(f)))(?:h(i(j)))(?:k(l(m)))$/
626     abcdefhijklm
627  0: abcdefhijklm
628  1: bc
629  2: c
630  3: ef
631  4: f
632  5: ij
633  6: j
634  7: lm
635  8: m
636
637 /^[\w][\W][\s][\S][\d][\D][\b][\n][\c]][\022]/
638     a+ Z0+\x08\n\x1d\x12
639  0: a+ Z0+\x08\x0a\x1d\x12
640
641 /^[.^$|()*+?{,}]+/
642     .^\$(*+)|{?,?}
643  0: .^$(*+)|{?,?}
644
645 /^a*\w/
646     z
647  0: z
648     az
649  0: az
650     aaaz
651  0: aaaz
652     a
653  0: a
654     aa
655  0: aa
656     aaaa
657  0: aaaa
658     a+
659  0: a
660     aa+
661  0: aa
662
663 /^a*?\w/
664     z
665  0: z
666     az
667  0: a
668     aaaz
669  0: a
670     a
671  0: a
672     aa
673  0: a
674     aaaa
675  0: a
676     a+
677  0: a
678     aa+
679  0: a
680
681 /^a+\w/
682     az
683  0: az
684     aaaz
685  0: aaaz
686     aa
687  0: aa
688     aaaa
689  0: aaaa
690     aa+
691  0: aa
692
693 /^a+?\w/
694     az
695  0: az
696     aaaz
697  0: aa
698     aa
699  0: aa
700     aaaa
701  0: aa
702     aa+
703  0: aa
704
705 /^\d{8}\w{2,}/
706     1234567890
707  0: 1234567890
708     12345678ab
709  0: 12345678ab
710     12345678__
711  0: 12345678__
712     *** Failers
713 No match
714     1234567
715 No match
716
717 /^[aeiou\d]{4,5}$/
718     uoie
719  0: uoie
720     1234
721  0: 1234
722     12345
723  0: 12345
724     aaaaa
725  0: aaaaa
726     *** Failers
727 No match
728     123456
729 No match
730
731 /^[aeiou\d]{4,5}?/
732     uoie
733  0: uoie
734     1234
735  0: 1234
736     12345
737  0: 1234
738     aaaaa
739  0: aaaa
740     123456
741  0: 1234
742
743 /\A(abc|def)=(\1){2,3}\Z/
744     abc=abcabc
745  0: abc=abcabc
746  1: abc
747  2: abc
748     def=defdefdef
749  0: def=defdefdef
750  1: def
751  2: def
752     *** Failers
753 No match
754     abc=defdef
755 No match
756
757 /^(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\11*(\3\4)\1(?#)2$/
758     abcdefghijkcda2
759  0: abcdefghijkcda2
760  1: a
761  2: b
762  3: c
763  4: d
764  5: e
765  6: f
766  7: g
767  8: h
768  9: i
769 10: j
770 11: k
771 12: cd
772     abcdefghijkkkkcda2
773  0: abcdefghijkkkkcda2
774  1: a
775  2: b
776  3: c
777  4: d
778  5: e
779  6: f
780  7: g
781  8: h
782  9: i
783 10: j
784 11: k
785 12: cd
786
787 /(cat(a(ract|tonic)|erpillar)) \1()2(3)/
788     cataract cataract23
789  0: cataract cataract23
790  1: cataract
791  2: aract
792  3: ract
793  4: 
794  5: 3
795     catatonic catatonic23
796  0: catatonic catatonic23
797  1: catatonic
798  2: atonic
799  3: tonic
800  4: 
801  5: 3
802     caterpillar caterpillar23
803  0: caterpillar caterpillar23
804  1: caterpillar
805  2: erpillar
806  3: <unset>
807  4: 
808  5: 3
809
810
811 /^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]/
812     From abcd  Mon Sep 01 12:33:02 1997
813  0: From abcd  Mon Sep 01 12:33
814  1: abcd
815
816 /^From\s+\S+\s+([a-zA-Z]{3}\s+){2}\d{1,2}\s+\d\d:\d\d/
817     From abcd  Mon Sep 01 12:33:02 1997
818  0: From abcd  Mon Sep 01 12:33
819  1: Sep 
820     From abcd  Mon Sep  1 12:33:02 1997
821  0: From abcd  Mon Sep  1 12:33
822  1: Sep  
823     *** Failers
824 No match
825     From abcd  Sep 01 12:33:02 1997
826 No match
827
828 /^12.34/s
829     12\n34
830  0: 12\x0a34
831     12\r34
832  0: 12\x0d34
833
834 /\w+(?=\t)/
835     the quick brown\t fox
836  0: brown
837
838 /foo(?!bar)(.*)/
839     foobar is foolish see?
840  0: foolish see?
841  1: lish see?
842
843 /(?:(?!foo)...|^.{0,2})bar(.*)/
844     foobar crowbar etc
845  0: rowbar etc
846  1:  etc
847     barrel
848  0: barrel
849  1: rel
850     2barrel
851  0: 2barrel
852  1: rel
853     A barrel
854  0: A barrel
855  1: rel
856
857 /^(\D*)(?=\d)(?!123)/
858     abc456
859  0: abc
860  1: abc
861     *** Failers
862 No match
863     abc123
864 No match
865
866 /^1234(?# test newlines
867   inside)/
868     1234
869  0: 1234
870
871 /^1234 #comment in extended re
872   /x
873     1234
874  0: 1234
875
876 /#rhubarb
877   abcd/x
878     abcd
879  0: abcd
880
881 /^abcd#rhubarb/x
882     abcd
883  0: abcd
884
885 /^(a)\1{2,3}(.)/
886     aaab
887  0: aaab
888  1: a
889  2: b
890     aaaab
891  0: aaaab
892  1: a
893  2: b
894     aaaaab
895  0: aaaaa
896  1: a
897  2: a
898     aaaaaab
899  0: aaaaa
900  1: a
901  2: a
902
903 /(?!^)abc/
904     the abc
905  0: abc
906     *** Failers
907 No match
908     abc
909 No match
910
911 /(?=^)abc/
912     abc
913  0: abc
914     *** Failers
915 No match
916     the abc
917 No match
918
919 /^[ab]{1,3}(ab*|b)/
920     aabbbbb
921  0: aabb
922  1: b
923
924 /^[ab]{1,3}?(ab*|b)/
925     aabbbbb
926  0: aabbbbb
927  1: abbbbb
928
929 /^[ab]{1,3}?(ab*?|b)/
930     aabbbbb
931  0: aa
932  1: a
933
934 /^[ab]{1,3}(ab*?|b)/
935     aabbbbb
936  0: aabb
937  1: b
938
939 /abc\0def\00pqr\000xyz\0000AB/
940     abc\0def\00pqr\000xyz\0000AB
941  0: abc\x00def\x00pqr\x00xyz\x000AB
942     abc456 abc\0def\00pqr\000xyz\0000ABCDE
943  0: abc\x00def\x00pqr\x00xyz\x000AB
944
945 /abc\x0def\x00pqr\x000xyz\x0000AB/
946     abc\x0def\x00pqr\x000xyz\x0000AB
947  0: abc\x0def\x00pqr\x000xyz\x0000AB
948     abc456 abc\x0def\x00pqr\x000xyz\x0000ABCDE
949  0: abc\x0def\x00pqr\x000xyz\x0000AB
950
951 /^[\000-\037]/
952     \0A
953  0: \x00
954     \01B
955  0: \x01
956     \037C
957  0: \x1f
958
959 /\0*/
960     \0\0\0\0
961  0: \x00\x00\x00\x00
962
963 /A\x0{2,3}Z/
964     The A\x0\x0Z
965  0: A\x00\x00Z
966     An A\0\x0\0Z
967  0: A\x00\x00\x00Z
968     *** Failers
969 No match
970     A\0Z
971 No match
972     A\0\x0\0\x0Z
973 No match
974
975 /^(cow|)\1(bell)/
976     cowcowbell
977  0: cowcowbell
978  1: cow
979  2: bell
980     bell
981  0: bell
982  1: 
983  2: bell
984     *** Failers
985 No match
986     cowbell
987 No match
988
989 /^\s/
990     \040abc
991  0:  
992     \x0cabc
993  0: \x0c
994     \nabc
995  0: \x0a
996     \rabc
997  0: \x0d
998     \tabc
999  0: \x09
1000     *** Failers
1001 No match
1002     abc
1003 No match
1004
1005 /^a     b
1006     \f  c/x
1007     abc
1008  0: abc
1009
1010 /^(a|)\1*b/
1011     ab
1012  0: ab
1013  1: a
1014     aaaab
1015  0: aaaab
1016  1: a
1017     b
1018  0: b
1019  1: 
1020     *** Failers
1021 No match
1022     acb
1023 No match
1024
1025 /^(a|)\1+b/
1026     aab
1027  0: aab
1028  1: a
1029     aaaab
1030  0: aaaab
1031  1: a
1032     b
1033  0: b
1034  1: 
1035     *** Failers
1036 No match
1037     ab
1038 No match
1039
1040 /^(a|)\1?b/
1041     ab
1042  0: ab
1043  1: a
1044     aab
1045  0: aab
1046  1: a
1047     b
1048  0: b
1049  1: 
1050     *** Failers
1051 No match
1052     acb
1053 No match
1054
1055 /^(a|)\1{2}b/
1056     aaab
1057  0: aaab
1058  1: a
1059     b
1060  0: b
1061  1: 
1062     *** Failers
1063 No match
1064     ab
1065 No match
1066     aab
1067 No match
1068     aaaab
1069 No match
1070
1071 /^(a|)\1{2,3}b/
1072     aaab
1073  0: aaab
1074  1: a
1075     aaaab
1076  0: aaaab
1077  1: a
1078     b
1079  0: b
1080  1: 
1081     *** Failers
1082 No match
1083     ab
1084 No match
1085     aab
1086 No match
1087     aaaaab
1088 No match
1089
1090 /ab{1,3}bc/
1091     abbbbc
1092  0: abbbbc
1093     abbbc
1094  0: abbbc
1095     abbc
1096  0: abbc
1097     *** Failers
1098 No match
1099     abc
1100 No match
1101     abbbbbc
1102 No match
1103
1104 /([^.]*)\.([^:]*):[T ]+(.*)/
1105     track1.title:TBlah blah blah
1106  0: track1.title:TBlah blah blah
1107  1: track1
1108  2: title
1109  3: Blah blah blah
1110
1111 /([^.]*)\.([^:]*):[T ]+(.*)/i
1112     track1.title:TBlah blah blah
1113  0: track1.title:TBlah blah blah
1114  1: track1
1115  2: title
1116  3: Blah blah blah
1117
1118 /([^.]*)\.([^:]*):[t ]+(.*)/i
1119     track1.title:TBlah blah blah
1120  0: track1.title:TBlah blah blah
1121  1: track1
1122  2: title
1123  3: Blah blah blah
1124
1125 /^[W-c]+$/
1126     WXY_^abc
1127  0: WXY_^abc
1128     *** Failers
1129 No match
1130     wxy
1131 No match
1132
1133 /^[W-c]+$/i
1134     WXY_^abc
1135  0: WXY_^abc
1136     wxy_^ABC
1137  0: wxy_^ABC
1138
1139 /^[\x3f-\x5F]+$/i
1140     WXY_^abc
1141  0: WXY_^abc
1142     wxy_^ABC
1143  0: wxy_^ABC
1144
1145 /^abc$/m
1146     abc
1147  0: abc
1148     qqq\nabc
1149  0: abc
1150     abc\nzzz
1151  0: abc
1152     qqq\nabc\nzzz
1153  0: abc
1154
1155 /^abc$/
1156     abc
1157  0: abc
1158     *** Failers
1159 No match
1160     qqq\nabc
1161 No match
1162     abc\nzzz
1163 No match
1164     qqq\nabc\nzzz
1165 No match
1166
1167 /\Aabc\Z/m
1168     abc
1169  0: abc
1170     abc\n 
1171  0: abc
1172     *** Failers
1173 No match
1174     qqq\nabc
1175 No match
1176     abc\nzzz
1177 No match
1178     qqq\nabc\nzzz
1179 No match
1180     
1181 /\A(.)*\Z/s
1182     abc\ndef
1183  0: abc\x0adef
1184  1: f
1185
1186 /\A(.)*\Z/m
1187     *** Failers
1188  0: *** Failers
1189  1: s
1190     abc\ndef
1191 No match
1192
1193 /(?:b)|(?::+)/
1194     b::c
1195  0: b
1196     c::b
1197  0: ::
1198
1199 /[-az]+/
1200     az-
1201  0: az-
1202     *** Failers
1203  0: a
1204     b
1205 No match
1206
1207 /[az-]+/
1208     za-
1209  0: za-
1210     *** Failers
1211  0: a
1212     b
1213 No match
1214
1215 /[a\-z]+/
1216     a-z
1217  0: a-z
1218     *** Failers
1219  0: a
1220     b
1221 No match
1222
1223 /[a-z]+/
1224     abcdxyz
1225  0: abcdxyz
1226
1227 /[\d-]+/
1228     12-34
1229  0: 12-34
1230     *** Failers
1231 No match
1232     aaa
1233 No match
1234
1235 /[\d-z]+/
1236     12-34z
1237  0: 12-34z
1238     *** Failers
1239 No match
1240     aaa
1241 No match
1242
1243 /\x5c/
1244     \\
1245  0: \
1246
1247 /\x20Z/
1248     the Zoo
1249  0:  Z
1250     *** Failers
1251 No match
1252     Zulu
1253 No match
1254
1255 /(abc)\1/i
1256     abcabc
1257  0: abcabc
1258  1: abc
1259     ABCabc
1260  0: ABCabc
1261  1: ABC
1262     abcABC
1263  0: abcABC
1264  1: abc
1265
1266 /ab{3cd/
1267     ab{3cd
1268  0: ab{3cd
1269
1270 /ab{3,cd/
1271     ab{3,cd
1272  0: ab{3,cd
1273
1274 /ab{3,4a}cd/
1275     ab{3,4a}cd
1276  0: ab{3,4a}cd
1277
1278 /{4,5a}bc/
1279     {4,5a}bc
1280  0: {4,5a}bc
1281
1282 /abc$/
1283     abc
1284  0: abc
1285     abc\n
1286  0: abc
1287     *** Failers
1288 No match
1289     abc\ndef
1290 No match
1291
1292 /(abc)\123/
1293     abc\x53
1294  0: abcS
1295  1: abc
1296
1297 /(abc)\223/
1298     abc\x93
1299  0: abc\x93
1300  1: abc
1301
1302 /(abc)\323/
1303     abc\xd3
1304  0: abc\xd3
1305  1: abc
1306
1307 /(abc)\100/
1308     abc\x40
1309  0: abc@
1310  1: abc
1311     abc\100
1312  0: abc@
1313  1: abc
1314
1315 /(abc)\1000/
1316     abc\x400
1317  0: abc@0
1318  1: abc
1319     abc\x40\x30
1320  0: abc@0
1321  1: abc
1322     abc\1000
1323  0: abc@0
1324  1: abc
1325     abc\100\x30
1326  0: abc@0
1327  1: abc
1328     abc\100\060
1329  0: abc@0
1330  1: abc
1331     abc\100\60
1332  0: abc@0
1333  1: abc
1334
1335 /abc\81/
1336     abc\081
1337  0: abc\x0081
1338     abc\0\x38\x31
1339  0: abc\x0081
1340
1341 /abc\91/
1342     abc\091
1343  0: abc\x0091
1344     abc\0\x39\x31
1345  0: abc\x0091
1346
1347 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)\12\123/
1348     abcdefghijkllS
1349  0: abcdefghijkllS
1350  1: a
1351  2: b
1352  3: c
1353  4: d
1354  5: e
1355  6: f
1356  7: g
1357  8: h
1358  9: i
1359 10: j
1360 11: k
1361 12: l
1362
1363 /(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)\12\123/
1364     abcdefghijk\12S
1365  0: abcdefghijk\x0aS
1366  1: a
1367  2: b
1368  3: c
1369  4: d
1370  5: e
1371  6: f
1372  7: g
1373  8: h
1374  9: i
1375 10: j
1376 11: k
1377
1378 /ab\idef/
1379     abidef
1380  0: abidef
1381
1382 /a{0}bc/
1383     bc
1384  0: bc
1385
1386 /(a|(bc)){0,0}?xyz/
1387     xyz
1388  0: xyz
1389
1390 /abc[\10]de/
1391     abc\010de
1392  0: abc\x08de
1393
1394 /abc[\1]de/
1395     abc\1de
1396  0: abc\x01de
1397
1398 /(abc)[\1]de/
1399     abc\1de
1400  0: abc\x01de
1401  1: abc
1402
1403 /(?s)a.b/
1404     a\nb
1405  0: a\x0ab
1406
1407 /^([^a])([^\b])([^c]*)([^d]{3,4})/
1408     baNOTccccd
1409  0: baNOTcccc
1410  1: b
1411  2: a
1412  3: NOT
1413  4: cccc
1414     baNOTcccd
1415  0: baNOTccc
1416  1: b
1417  2: a
1418  3: NOT
1419  4: ccc
1420     baNOTccd
1421  0: baNOTcc
1422  1: b
1423  2: a
1424  3: NO
1425  4: Tcc
1426     bacccd
1427  0: baccc
1428  1: b
1429  2: a
1430  3: 
1431  4: ccc
1432     *** Failers
1433  0: *** Failers
1434  1: *
1435  2: *
1436  3: * Fail
1437  4: ers
1438     anything
1439 No match
1440     b\bc   
1441 No match
1442     baccd
1443 No match
1444
1445 /[^a]/
1446     Abc
1447  0: A
1448   
1449 /[^a]/i
1450     Abc 
1451  0: b
1452
1453 /[^a]+/
1454     AAAaAbc
1455  0: AAA
1456   
1457 /[^a]+/i
1458     AAAaAbc 
1459  0: bc
1460
1461 /[^a]+/
1462     bbb\nccc
1463  0: bbb\x0accc
1464    
1465 /[^k]$/
1466     abc
1467  0: c
1468     *** Failers
1469  0: s
1470     abk   
1471 No match
1472    
1473 /[^k]{2,3}$/
1474     abc
1475  0: abc
1476     kbc
1477  0: bc
1478     kabc 
1479  0: abc
1480     *** Failers
1481  0: ers
1482     abk
1483 No match
1484     akb
1485 No match
1486     akk 
1487 No match
1488
1489 /^\d{8,}\@.+[^k]$/
1490     12345678\@a.b.c.d
1491  0: 12345678@a.b.c.d
1492     123456789\@x.y.z
1493  0: 123456789@x.y.z
1494     *** Failers
1495 No match
1496     12345678\@x.y.uk
1497 No match
1498     1234567\@a.b.c.d       
1499 No match
1500
1501 /(a)\1{8,}/
1502     aaaaaaaaa
1503  0: aaaaaaaaa
1504  1: a
1505     aaaaaaaaaa
1506  0: aaaaaaaaaa
1507  1: a
1508     *** Failers
1509 No match
1510     aaaaaaa   
1511 No match
1512
1513 /[^a]/
1514     aaaabcd
1515  0: b
1516     aaAabcd 
1517  0: A
1518
1519 /[^a]/i
1520     aaaabcd
1521  0: b
1522     aaAabcd 
1523  0: b
1524
1525 /[^az]/
1526     aaaabcd
1527  0: b
1528     aaAabcd 
1529  0: A
1530
1531 /[^az]/i
1532     aaaabcd
1533  0: b
1534     aaAabcd 
1535  0: b
1536
1537 /\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/
1538  \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
1539  0: \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~\x7f\x80\x81\x82\x83\x84\x85\x86\x87\x88\x89\x8a\x8b\x8c\x8d\x8e\x8f\x90\x91\x92\x93\x94\x95\x96\x97\x98\x99\x9a\x9b\x9c\x9d\x9e\x9f\xa0\xa1\xa2\xa3\xa4\xa5\xa6\xa7\xa8\xa9\xaa\xab\xac\xad\xae\xaf\xb0\xb1\xb2\xb3\xb4\xb5\xb6\xb7\xb8\xb9\xba\xbb\xbc\xbd\xbe\xbf\xc0\xc1\xc2\xc3\xc4\xc5\xc6\xc7\xc8\xc9\xca\xcb\xcc\xcd\xce\xcf\xd0\xd1\xd2\xd3\xd4\xd5\xd6\xd7\xd8\xd9\xda\xdb\xdc\xdd\xde\xdf\xe0\xe1\xe2\xe3\xe4\xe5\xe6\xe7\xe8\xe9\xea\xeb\xec\xed\xee\xef\xf0\xf1\xf2\xf3\xf4\xf5\xf6\xf7\xf8\xf9\xfa\xfb\xfc\xfd\xfe\xff
1540
1541 /P[^*]TAIRE[^*]{1,6}?LL/
1542     xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
1543  0: PSTAIREISLL
1544
1545 /P[^*]TAIRE[^*]{1,}?LL/
1546     xxxxxxxxxxxPSTAIREISLLxxxxxxxxx
1547  0: PSTAIREISLL
1548
1549 /(\.\d\d[1-9]?)\d+/
1550     1.230003938
1551  0: .230003938
1552  1: .23
1553     1.875000282   
1554  0: .875000282
1555  1: .875
1556     1.235  
1557  0: .235
1558  1: .23
1559                   
1560 /(\.\d\d((?=0)|\d(?=\d)))/
1561     1.230003938      
1562  0: .23
1563  1: .23
1564  2: 
1565     1.875000282
1566  0: .875
1567  1: .875
1568  2: 5
1569     *** Failers 
1570 No match
1571     1.235 
1572 No match
1573     
1574 /a(?)b/
1575     ab 
1576  0: ab
1577  
1578 /\b(foo)\s+(\w+)/i
1579     Food is on the foo table
1580  0: foo table
1581  1: foo
1582  2: table
1583     
1584 /foo(.*)bar/
1585     The food is under the bar in the barn.
1586  0: food is under the bar in the bar
1587  1: d is under the bar in the 
1588     
1589 /foo(.*?)bar/  
1590     The food is under the bar in the barn.
1591  0: food is under the bar
1592  1: d is under the 
1593
1594 /(.*)(\d*)/
1595     I have 2 numbers: 53147
1596  0: I have 2 numbers: 53147
1597  1: I have 2 numbers: 53147
1598  2: 
1599     
1600 /(.*)(\d+)/
1601     I have 2 numbers: 53147
1602  0: I have 2 numbers: 53147
1603  1: I have 2 numbers: 5314
1604  2: 7
1605  
1606 /(.*?)(\d*)/
1607     I have 2 numbers: 53147
1608  0: 
1609  1: 
1610  2: 
1611
1612 /(.*?)(\d+)/
1613     I have 2 numbers: 53147
1614  0: I have 2
1615  1: I have 
1616  2: 2
1617
1618 /(.*)(\d+)$/
1619     I have 2 numbers: 53147
1620  0: I have 2 numbers: 53147
1621  1: I have 2 numbers: 5314
1622  2: 7
1623
1624 /(.*?)(\d+)$/
1625     I have 2 numbers: 53147
1626  0: I have 2 numbers: 53147
1627  1: I have 2 numbers: 
1628  2: 53147
1629
1630 /(.*)\b(\d+)$/
1631     I have 2 numbers: 53147
1632  0: I have 2 numbers: 53147
1633  1: I have 2 numbers: 
1634  2: 53147
1635
1636 /(.*\D)(\d+)$/
1637     I have 2 numbers: 53147
1638  0: I have 2 numbers: 53147
1639  1: I have 2 numbers: 
1640  2: 53147
1641
1642 /^\D*(?!123)/
1643     ABC123
1644  0: AB
1645      
1646 /^(\D*)(?=\d)(?!123)/
1647     ABC445
1648  0: ABC
1649  1: ABC
1650     *** Failers
1651 No match
1652     ABC123
1653 No match
1654     
1655 /^[W-]46]/
1656     W46]789 
1657  0: W46]
1658     -46]789
1659  0: -46]
1660     *** Failers
1661 No match
1662     Wall
1663 No match
1664     Zebra
1665 No match
1666     42
1667 No match
1668     [abcd] 
1669 No match
1670     ]abcd[
1671 No match
1672        
1673 /^[W-\]46]/
1674     W46]789 
1675  0: W
1676     Wall
1677  0: W
1678     Zebra
1679  0: Z
1680     Xylophone  
1681  0: X
1682     42
1683  0: 4
1684     [abcd] 
1685  0: [
1686     ]abcd[
1687  0: ]
1688     \\backslash 
1689  0: \
1690     *** Failers
1691 No match
1692     -46]789
1693 No match
1694     well
1695 No match
1696     
1697 /\d\d\/\d\d\/\d\d\d\d/
1698     01/01/2000
1699  0: 01/01/2000
1700
1701 /word (?:[a-zA-Z0-9]+ ){0,10}otherword/
1702   word cat dog elephant mussel cow horse canary baboon snake shark otherword
1703  0: word cat dog elephant mussel cow horse canary baboon snake shark otherword
1704   word cat dog elephant mussel cow horse canary baboon snake shark
1705 No match
1706
1707 /word (?:[a-zA-Z0-9]+ ){0,300}otherword/
1708   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
1709 No match
1710
1711 /^(a){0,0}/
1712     bcd
1713  0: 
1714     abc
1715  0: 
1716     aab     
1717  0: 
1718
1719 /^(a){0,1}/
1720     bcd
1721  0: 
1722     abc
1723  0: a
1724  1: a
1725     aab  
1726  0: a
1727  1: a
1728
1729 /^(a){0,2}/
1730     bcd
1731  0: 
1732     abc
1733  0: a
1734  1: a
1735     aab  
1736  0: aa
1737  1: a
1738
1739 /^(a){0,3}/
1740     bcd
1741  0: 
1742     abc
1743  0: a
1744  1: a
1745     aab
1746  0: aa
1747  1: a
1748     aaa   
1749  0: aaa
1750  1: a
1751
1752 /^(a){0,}/
1753     bcd
1754  0: 
1755     abc
1756  0: a
1757  1: a
1758     aab
1759  0: aa
1760  1: a
1761     aaa
1762  0: aaa
1763  1: a
1764     aaaaaaaa    
1765  0: aaaaaaaa
1766  1: a
1767
1768 /^(a){1,1}/
1769     bcd
1770 No match
1771     abc
1772  0: a
1773  1: a
1774     aab  
1775  0: a
1776  1: a
1777
1778 /^(a){1,2}/
1779     bcd
1780 No match
1781     abc
1782  0: a
1783  1: a
1784     aab  
1785  0: aa
1786  1: a
1787
1788 /^(a){1,3}/
1789     bcd
1790 No match
1791     abc
1792  0: a
1793  1: a
1794     aab
1795  0: aa
1796  1: a
1797     aaa   
1798  0: aaa
1799  1: a
1800
1801 /^(a){1,}/
1802     bcd
1803 No match
1804     abc
1805  0: a
1806  1: a
1807     aab
1808  0: aa
1809  1: a
1810     aaa
1811  0: aaa
1812  1: a
1813     aaaaaaaa    
1814  0: aaaaaaaa
1815  1: a
1816
1817 /.*\.gif/
1818     borfle\nbib.gif\nno
1819  0: bib.gif
1820
1821 /.{0,}\.gif/
1822     borfle\nbib.gif\nno
1823  0: bib.gif
1824
1825 /.*\.gif/m
1826     borfle\nbib.gif\nno
1827  0: bib.gif
1828
1829 /.*\.gif/s
1830     borfle\nbib.gif\nno
1831  0: borfle\x0abib.gif
1832
1833 /.*\.gif/ms
1834     borfle\nbib.gif\nno
1835  0: borfle\x0abib.gif
1836     
1837 /.*$/
1838     borfle\nbib.gif\nno
1839  0: no
1840
1841 /.*$/m
1842     borfle\nbib.gif\nno
1843  0: borfle
1844
1845 /.*$/s
1846     borfle\nbib.gif\nno
1847  0: borfle\x0abib.gif\x0ano
1848
1849 /.*$/ms
1850     borfle\nbib.gif\nno
1851  0: borfle\x0abib.gif\x0ano
1852     
1853 /.*$/
1854     borfle\nbib.gif\nno\n
1855  0: no
1856
1857 /.*$/m
1858     borfle\nbib.gif\nno\n
1859  0: borfle
1860
1861 /.*$/s
1862     borfle\nbib.gif\nno\n
1863  0: borfle\x0abib.gif\x0ano\x0a
1864
1865 /.*$/ms
1866     borfle\nbib.gif\nno\n
1867  0: borfle\x0abib.gif\x0ano\x0a
1868     
1869 /(.*X|^B)/
1870     abcde\n1234Xyz
1871  0: 1234X
1872  1: 1234X
1873     BarFoo 
1874  0: B
1875  1: B
1876     *** Failers
1877 No match
1878     abcde\nBar  
1879 No match
1880
1881 /(.*X|^B)/m
1882     abcde\n1234Xyz
1883  0: 1234X
1884  1: 1234X
1885     BarFoo 
1886  0: B
1887  1: B
1888     abcde\nBar  
1889  0: B
1890  1: B
1891
1892 /(.*X|^B)/s
1893     abcde\n1234Xyz
1894  0: abcde\x0a1234X
1895  1: abcde\x0a1234X
1896     BarFoo 
1897  0: B
1898  1: B
1899     *** Failers
1900 No match
1901     abcde\nBar  
1902 No match
1903
1904 /(.*X|^B)/ms
1905     abcde\n1234Xyz
1906  0: abcde\x0a1234X
1907  1: abcde\x0a1234X
1908     BarFoo 
1909  0: B
1910  1: B
1911     abcde\nBar  
1912  0: B
1913  1: B
1914
1915 /(?s)(.*X|^B)/
1916     abcde\n1234Xyz
1917  0: abcde\x0a1234X
1918  1: abcde\x0a1234X
1919     BarFoo 
1920  0: B
1921  1: B
1922     *** Failers 
1923 No match
1924     abcde\nBar  
1925 No match
1926
1927 /(?s:.*X|^B)/
1928     abcde\n1234Xyz
1929  0: abcde\x0a1234X
1930     BarFoo 
1931  0: B
1932     *** Failers 
1933 No match
1934     abcde\nBar  
1935 No match
1936
1937 /^.*B/
1938     **** Failers
1939 No match
1940     abc\nB
1941 No match
1942      
1943 /(?s)^.*B/
1944     abc\nB
1945  0: abc\x0aB
1946
1947 /(?m)^.*B/
1948     abc\nB
1949  0: B
1950      
1951 /(?ms)^.*B/
1952     abc\nB
1953  0: abc\x0aB
1954
1955 /(?ms)^B/
1956     abc\nB
1957  0: B
1958
1959 /(?s)B$/
1960     B\n
1961  0: B
1962
1963 /^[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]/
1964     123456654321
1965  0: 123456654321
1966   
1967 /^\d\d\d\d\d\d\d\d\d\d\d\d/
1968     123456654321 
1969  0: 123456654321
1970
1971 /^[\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d][\d]/
1972     123456654321
1973  0: 123456654321
1974   
1975 /^[abc]{12}/
1976     abcabcabcabc
1977  0: abcabcabcabc
1978     
1979 /^[a-c]{12}/
1980     abcabcabcabc
1981  0: abcabcabcabc
1982     
1983 /^(a|b|c){12}/
1984     abcabcabcabc 
1985  0: abcabcabcabc
1986  1: c
1987
1988 /^[abcdefghijklmnopqrstuvwxy0123456789]/
1989     n
1990  0: n
1991     *** Failers 
1992 No match
1993     z 
1994 No match
1995
1996 /abcde{0,0}/
1997     abcd
1998  0: abcd
1999     *** Failers
2000 No match
2001     abce  
2002 No match
2003
2004 /ab[cd]{0,0}e/
2005     abe
2006  0: abe
2007     *** Failers
2008 No match
2009     abcde 
2010 No match
2011     
2012 /ab(c){0,0}d/
2013     abd
2014  0: abd
2015     *** Failers
2016 No match
2017     abcd   
2018 No match
2019
2020 /a(b*)/
2021     a
2022  0: a
2023  1: 
2024     ab
2025  0: ab
2026  1: b
2027     abbbb
2028  0: abbbb
2029  1: bbbb
2030     *** Failers
2031  0: a
2032  1: 
2033     bbbbb    
2034 No match
2035     
2036 /ab\d{0}e/
2037     abe
2038  0: abe
2039     *** Failers
2040 No match
2041     ab1e   
2042 No match
2043     
2044 /"([^\\"]+|\\.)*"/
2045     the \"quick\" brown fox
2046  0: "quick"
2047  1: quick
2048     \"the \\\"quick\\\" brown fox\" 
2049  0: "the \"quick\" brown fox"
2050  1:  brown fox
2051
2052 /.*?/g+
2053     abc
2054  0: 
2055  0+ abc
2056  0: a
2057  0+ bc
2058  0: 
2059  0+ bc
2060  0: b
2061  0+ c
2062  0: 
2063  0+ c
2064  0: c
2065  0+ 
2066  0: 
2067  0+ 
2068   
2069 /\b/g+
2070     abc 
2071  0: 
2072  0+ abc
2073  0: 
2074  0+ 
2075
2076 /\b/+g
2077     abc 
2078  0: 
2079  0+ abc
2080  0: 
2081  0+ 
2082
2083 //g
2084     abc
2085  0: 
2086  0: 
2087  0: 
2088  0: 
2089
2090 /<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
2091   <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>
2092  0: <TR BGCOLOR='#DBE9E9'><TD align=left valign=top>43.<a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)</a></TD><TD align=left valign=top>Lega lstaff.com</TD><TD align=left valign=top>CA - Statewide</TD></TR>
2093  1:  BGCOLOR='#DBE9E9'
2094  2:  align=left valign=top
2095  3: 43.
2096  4: <a href='joblist.cfm?JobID=94 6735&Keyword='>Word Processor<BR>(N-1286)
2097  5: 
2098  6: 
2099  7: <unset>
2100  8:  align=left valign=top
2101  9: Lega lstaff.com
2102 10:  align=left valign=top
2103 11: CA - Statewide
2104
2105 /a[^a]b/
2106     acb
2107  0: acb
2108     a\nb
2109  0: a\x0ab
2110     
2111 /a.b/
2112     acb
2113  0: acb
2114     *** Failers 
2115 No match
2116     a\nb   
2117 No match
2118     
2119 /a[^a]b/s
2120     acb
2121  0: acb
2122     a\nb  
2123  0: a\x0ab
2124     
2125 /a.b/s
2126     acb
2127  0: acb
2128     a\nb  
2129  0: a\x0ab
2130
2131 /^(b+?|a){1,2}?c/
2132     bac
2133  0: bac
2134  1: a
2135     bbac
2136  0: bbac
2137  1: a
2138     bbbac
2139  0: bbbac
2140  1: a
2141     bbbbac
2142  0: bbbbac
2143  1: a
2144     bbbbbac 
2145  0: bbbbbac
2146  1: a
2147
2148 /^(b+|a){1,2}?c/
2149     bac
2150  0: bac
2151  1: a
2152     bbac
2153  0: bbac
2154  1: a
2155     bbbac
2156  0: bbbac
2157  1: a
2158     bbbbac
2159  0: bbbbac
2160  1: a
2161     bbbbbac 
2162  0: bbbbbac
2163  1: a
2164     
2165 /(?!\A)x/m
2166     x\nb\n
2167 No match
2168     a\bx\n  
2169  0: x
2170     
2171 /\x0{ab}/
2172     \0{ab} 
2173  0: \x00{ab}
2174
2175 /(A|B)*?CD/
2176     CD 
2177  0: CD
2178     
2179 /(A|B)*CD/
2180     CD 
2181  0: CD
2182
2183 /(AB)*?\1/
2184     ABABAB
2185  0: ABAB
2186  1: AB
2187
2188 /(AB)*\1/
2189     ABABAB
2190  0: ABABAB
2191  1: AB
2192     
2193 /(?<!bar)foo/
2194     foo
2195  0: foo
2196     catfood
2197  0: foo
2198     arfootle
2199  0: foo
2200     rfoosh
2201  0: foo
2202     *** Failers
2203 No match
2204     barfoo
2205 No match
2206     towbarfoo
2207 No match
2208
2209 /\w{3}(?<!bar)foo/
2210     catfood
2211  0: catfoo
2212     *** Failers
2213 No match
2214     foo
2215 No match
2216     barfoo
2217 No match
2218     towbarfoo
2219 No match
2220
2221 /(?<=(foo)a)bar/
2222     fooabar
2223  0: bar
2224  1: foo
2225     *** Failers
2226 No match
2227     bar
2228 No match
2229     foobbar
2230 No match
2231       
2232 /\Aabc\z/m
2233     abc
2234  0: abc
2235     *** Failers
2236 No match
2237     abc\n   
2238 No match
2239     qqq\nabc
2240 No match
2241     abc\nzzz
2242 No match
2243     qqq\nabc\nzzz
2244 No match
2245
2246 "(?>.*/)foo"
2247     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/it/you/see/
2248 No match
2249
2250 "(?>.*/)foo"
2251     /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
2252  0: /this/is/a/very/long/line/in/deed/with/very/many/slashes/in/and/foo
2253
2254 /(?>(\.\d\d[1-9]?))\d+/
2255     1.230003938
2256  0: .230003938
2257  1: .23
2258     1.875000282
2259  0: .875000282
2260  1: .875
2261     *** Failers 
2262 No match
2263     1.235 
2264 No match
2265
2266 /^((?>\w+)|(?>\s+))*$/
2267     now is the time for all good men to come to the aid of the party
2268  0: now is the time for all good men to come to the aid of the party
2269  1: party
2270     *** Failers
2271 No match
2272     this is not a line with only words and spaces!
2273 No match
2274     
2275 /(\d+)(\w)/
2276     12345a
2277  0: 12345a
2278  1: 12345
2279  2: a
2280     12345+ 
2281  0: 12345
2282  1: 1234
2283  2: 5
2284
2285 /((?>\d+))(\w)/
2286     12345a
2287  0: 12345a
2288  1: 12345
2289  2: a
2290     *** Failers
2291 No match
2292     12345+ 
2293 No match
2294
2295 /(?>a+)b/
2296     aaab
2297  0: aaab
2298
2299 /((?>a+)b)/
2300     aaab
2301  0: aaab
2302  1: aaab
2303
2304 /(?>(a+))b/
2305     aaab
2306  0: aaab
2307  1: aaa
2308
2309 /(?>b)+/
2310     aaabbbccc
2311  0: bbb
2312
2313 /(?>a+|b+|c+)*c/
2314     aaabbbbccccd
2315  0: aaabbbbc
2316
2317 /((?>[^()]+)|\([^()]*\))+/
2318     ((abc(ade)ufh()()x
2319  0: abc(ade)ufh()()x
2320  1: x
2321     
2322 /\(((?>[^()]+)|\([^()]+\))+\)/ 
2323     (abc)
2324  0: (abc)
2325  1: abc
2326     (abc(def)xyz)
2327  0: (abc(def)xyz)
2328  1: xyz
2329     *** Failers
2330 No match
2331     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   
2332 No match
2333
2334 /a(?-i)b/i
2335     ab
2336  0: ab
2337     Ab
2338  0: Ab
2339     *** Failers 
2340 No match
2341     aB
2342 No match
2343     AB
2344 No match
2345         
2346 /(a (?x)b c)d e/
2347     a bcd e
2348  0: a bcd e
2349  1: a bc
2350     *** Failers
2351 No match
2352     a b cd e
2353 No match
2354     abcd e   
2355 No match
2356     a bcde 
2357 No match
2358  
2359 /(a b(?x)c d (?-x)e f)/
2360     a bcde f
2361  0: a bcde f
2362  1: a bcde f
2363     *** Failers
2364 No match
2365     abcdef  
2366 No match
2367
2368 /(a(?i)b)c/
2369     abc
2370  0: abc
2371  1: ab
2372     aBc
2373  0: aBc
2374  1: aB
2375     *** Failers
2376 No match
2377     abC
2378 No match
2379     aBC  
2380 No match
2381     Abc
2382 No match
2383     ABc
2384 No match
2385     ABC
2386 No match
2387     AbC
2388 No match
2389     
2390 /a(?i:b)c/
2391     abc
2392  0: abc
2393     aBc
2394  0: aBc
2395     *** Failers 
2396 No match
2397     ABC
2398 No match
2399     abC
2400 No match
2401     aBC
2402 No match
2403     
2404 /a(?i:b)*c/
2405     aBc
2406  0: aBc
2407     aBBc
2408  0: aBBc
2409     *** Failers 
2410 No match
2411     aBC
2412 No match
2413     aBBC
2414 No match
2415     
2416 /a(?=b(?i)c)\w\wd/
2417     abcd
2418  0: abcd
2419     abCd
2420  0: abCd
2421     *** Failers
2422 No match
2423     aBCd
2424 No match
2425     abcD     
2426 No match
2427     
2428 /(?s-i:more.*than).*million/i
2429     more than million
2430  0: more than million
2431     more than MILLION
2432  0: more than MILLION
2433     more \n than Million 
2434  0: more \x0a than Million
2435     *** Failers
2436 No match
2437     MORE THAN MILLION    
2438 No match
2439     more \n than \n million 
2440 No match
2441
2442 /(?:(?s-i)more.*than).*million/i
2443     more than million
2444  0: more than million
2445     more than MILLION
2446  0: more than MILLION
2447     more \n than Million 
2448  0: more \x0a than Million
2449     *** Failers
2450 No match
2451     MORE THAN MILLION    
2452 No match
2453     more \n than \n million 
2454 No match
2455     
2456 /(?>a(?i)b+)+c/ 
2457     abc
2458  0: abc
2459     aBbc
2460  0: aBbc
2461     aBBc 
2462  0: aBBc
2463     *** Failers
2464 No match
2465     Abc
2466 No match
2467     abAb    
2468 No match
2469     abbC 
2470 No match
2471     
2472 /(?=a(?i)b)\w\wc/
2473     abc
2474  0: abc
2475     aBc
2476  0: aBc
2477     *** Failers
2478 No match
2479     Ab 
2480 No match
2481     abC
2482 No match
2483     aBC     
2484 No match
2485     
2486 /(?<=a(?i)b)(\w\w)c/
2487     abxxc
2488  0: xxc
2489  1: xx
2490     aBxxc
2491  0: xxc
2492  1: xx
2493     *** Failers
2494 No match
2495     Abxxc
2496 No match
2497     ABxxc
2498 No match
2499     abxxC      
2500 No match
2501
2502 /(?:(a)|b)(?(1)A|B)/
2503     aA
2504  0: aA
2505  1: a
2506     bB
2507  0: bB
2508     *** Failers
2509 No match
2510     aB
2511 No match
2512     bA    
2513 No match
2514
2515 /^(a)?(?(1)a|b)+$/
2516     aa
2517  0: aa
2518  1: a
2519     b
2520  0: b
2521     bb  
2522  0: bb
2523     *** Failers
2524 No match
2525     ab   
2526 No match
2527
2528 /^(?(?=abc)\w{3}:|\d\d)$/
2529     abc:
2530  0: abc:
2531     12
2532  0: 12
2533     *** Failers
2534 No match
2535     123
2536 No match
2537     xyz    
2538 No match
2539
2540 /^(?(?!abc)\d\d|\w{3}:)$/
2541     abc:
2542  0: abc:
2543     12
2544  0: 12
2545     *** Failers
2546 No match
2547     123
2548 No match
2549     xyz    
2550 No match
2551     
2552 /(?(?<=foo)bar|cat)/
2553     foobar
2554  0: bar
2555     cat
2556  0: cat
2557     fcat
2558  0: cat
2559     focat   
2560  0: cat
2561     *** Failers
2562 No match
2563     foocat  
2564 No match
2565
2566 /(?(?<!foo)cat|bar)/
2567     foobar
2568  0: bar
2569     cat
2570  0: cat
2571     fcat
2572  0: cat
2573     focat   
2574  0: cat
2575     *** Failers
2576 No match
2577     foocat  
2578 No match
2579
2580 /( \( )? [^()]+ (?(1) \) |) /x
2581     abcd
2582  0: abcd
2583     (abcd)
2584  0: (abcd)
2585  1: (
2586     the quick (abcd) fox
2587  0: the quick 
2588     (abcd   
2589  0: abcd
2590
2591 /( \( )? [^()]+ (?(1) \) ) /x
2592     abcd
2593  0: abcd
2594     (abcd)
2595  0: (abcd)
2596  1: (
2597     the quick (abcd) fox
2598  0: the quick 
2599     (abcd   
2600  0: abcd
2601
2602 /^(?(2)a|(1)(2))+$/
2603     12
2604  0: 12
2605  1: 1
2606  2: 2
2607     12a
2608  0: 12a
2609  1: 1
2610  2: 2
2611     12aa
2612  0: 12aa
2613  1: 1
2614  2: 2
2615     *** Failers
2616 No match
2617     1234    
2618 No match
2619
2620 /((?i)blah)\s+\1/
2621     blah blah
2622  0: blah blah
2623  1: blah
2624     BLAH BLAH
2625  0: BLAH BLAH
2626  1: BLAH
2627     Blah Blah
2628  0: Blah Blah
2629  1: Blah
2630     blaH blaH
2631  0: blaH blaH
2632  1: blaH
2633     *** Failers
2634 No match
2635     blah BLAH
2636 No match
2637     Blah blah      
2638 No match
2639     blaH blah 
2640 No match
2641
2642 /((?i)blah)\s+(?i:\1)/
2643     blah blah
2644  0: blah blah
2645  1: blah
2646     BLAH BLAH
2647  0: BLAH BLAH
2648  1: BLAH
2649     Blah Blah
2650  0: Blah Blah
2651  1: Blah
2652     blaH blaH
2653  0: blaH blaH
2654  1: blaH
2655     blah BLAH
2656  0: blah BLAH
2657  1: blah
2658     Blah blah      
2659  0: Blah blah
2660  1: Blah
2661     blaH blah 
2662  0: blaH blah
2663  1: blaH
2664
2665 /(?>a*)*/
2666     a
2667  0: a
2668     aa
2669  0: aa
2670     aaaa
2671  0: aaaa
2672     
2673 /(abc|)+/
2674     abc
2675  0: abc
2676  1: 
2677     abcabc
2678  0: abcabc
2679  1: 
2680     abcabcabc
2681  0: abcabcabc
2682  1: 
2683     xyz      
2684  0: 
2685  1: 
2686
2687 /([a]*)*/
2688     a
2689  0: a
2690  1: 
2691     aaaaa 
2692  0: aaaaa
2693  1: 
2694  
2695 /([ab]*)*/
2696     a
2697  0: a
2698  1: 
2699     b
2700  0: b
2701  1: 
2702     ababab
2703  0: ababab
2704  1: 
2705     aaaabcde
2706  0: aaaab
2707  1: 
2708     bbbb    
2709  0: bbbb
2710  1: 
2711  
2712 /([^a]*)*/
2713     b
2714  0: b
2715  1: 
2716     bbbb
2717  0: bbbb
2718  1: 
2719     aaa   
2720  0: 
2721  1: 
2722  
2723 /([^ab]*)*/
2724     cccc
2725  0: cccc
2726  1: 
2727     abab  
2728  0: 
2729  1: 
2730  
2731 /([a]*?)*/
2732     a
2733  0: 
2734  1: 
2735     aaaa 
2736  0: 
2737  1: 
2738  
2739 /([ab]*?)*/
2740     a
2741  0: 
2742  1: 
2743     b
2744  0: 
2745  1: 
2746     abab
2747  0: 
2748  1: 
2749     baba   
2750  0: 
2751  1: 
2752  
2753 /([^a]*?)*/
2754     b
2755  0: 
2756  1: 
2757     bbbb
2758  0: 
2759  1: 
2760     aaa   
2761  0: 
2762  1: 
2763  
2764 /([^ab]*?)*/
2765     c
2766  0: 
2767  1: 
2768     cccc
2769  0: 
2770  1: 
2771     baba   
2772  0: 
2773  1: 
2774  
2775 /(?>a*)*/
2776     a
2777  0: a
2778     aaabcde 
2779  0: aaa
2780  
2781 /((?>a*))*/
2782     aaaaa
2783  0: aaaaa
2784  1: 
2785     aabbaa 
2786  0: aa
2787  1: 
2788  
2789 /((?>a*?))*/
2790     aaaaa
2791  0: 
2792  1: 
2793     aabbaa 
2794  0: 
2795  1: 
2796
2797 /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /x
2798     12-sep-98
2799  0: 12-sep-98
2800     12-09-98
2801  0: 12-09-98
2802     *** Failers
2803 No match
2804     sep-12-98
2805 No match
2806         
2807 /(?<=(foo))bar\1/
2808     foobarfoo
2809  0: barfoo
2810  1: foo
2811     foobarfootling 
2812  0: barfoo
2813  1: foo
2814     *** Failers
2815 No match
2816     foobar
2817 No match
2818     barfoo   
2819 No match
2820
2821 /(?i:saturday|sunday)/
2822     saturday
2823  0: saturday
2824     sunday
2825  0: sunday
2826     Saturday
2827  0: Saturday
2828     Sunday
2829  0: Sunday
2830     SATURDAY
2831  0: SATURDAY
2832     SUNDAY
2833  0: SUNDAY
2834     SunDay
2835  0: SunDay
2836     
2837 /(a(?i)bc|BB)x/
2838     abcx
2839  0: abcx
2840  1: abc
2841     aBCx
2842  0: aBCx
2843  1: aBC
2844     bbx
2845  0: bbx
2846  1: bb
2847     BBx
2848  0: BBx
2849  1: BB
2850     *** Failers
2851 No match
2852     abcX
2853 No match
2854     aBCX
2855 No match
2856     bbX
2857 No match
2858     BBX               
2859 No match
2860
2861 /^([ab](?i)[cd]|[ef])/
2862     ac
2863  0: ac
2864  1: ac
2865     aC
2866  0: aC
2867  1: aC
2868     bD
2869  0: bD
2870  1: bD
2871     elephant
2872  0: e
2873  1: e
2874     Europe 
2875  0: E
2876  1: E
2877     frog
2878  0: f
2879  1: f
2880     France
2881  0: F
2882  1: F
2883     *** Failers
2884 No match
2885     Africa     
2886 No match
2887
2888 /^(ab|a(?i)[b-c](?m-i)d|x(?i)y|z)/
2889     ab
2890  0: ab
2891  1: ab
2892     aBd
2893  0: aBd
2894  1: aBd
2895     xy
2896  0: xy
2897  1: xy
2898     xY
2899  0: xY
2900  1: xY
2901     zebra
2902  0: z
2903  1: z
2904     Zambesi
2905  0: Z
2906  1: Z
2907     *** Failers
2908 No match
2909     aCD  
2910 No match
2911     XY  
2912 No match
2913
2914 /(?<=foo\n)^bar/m
2915     foo\nbar
2916  0: bar
2917     *** Failers
2918 No match
2919     bar
2920 No match
2921     baz\nbar   
2922 No match
2923
2924 /(?<=(?<!foo)bar)baz/
2925     barbaz
2926  0: baz
2927     barbarbaz 
2928  0: baz
2929     koobarbaz 
2930  0: baz
2931     *** Failers
2932 No match
2933     baz
2934 No match
2935     foobarbaz 
2936 No match
2937
2938 /The case of aaaaaa is missed out below because I think Perl 5.005_02 gets/
2939 /it wrong; it sets $1 to aaa rather than aa. Compare the following test,/
2940 No match
2941 /where it does set $1 to aa when matching aaaaaa./
2942 No match
2943
2944 /^(a\1?){4}$/
2945     a
2946 No match
2947     aa
2948 No match
2949     aaa
2950 No match
2951     aaaa
2952  0: aaaa
2953  1: a
2954     aaaaa
2955  0: aaaaa
2956  1: a
2957     aaaaaaa
2958  0: aaaaaaa
2959  1: a
2960     aaaaaaaa
2961 No match
2962     aaaaaaaaa
2963 No match
2964     aaaaaaaaaa
2965  0: aaaaaaaaaa
2966  1: aaaa
2967     aaaaaaaaaaa
2968 No match
2969     aaaaaaaaaaaa
2970 No match
2971     aaaaaaaaaaaaa
2972 No match
2973     aaaaaaaaaaaaaa
2974 No match
2975     aaaaaaaaaaaaaaa
2976 No match
2977     aaaaaaaaaaaaaaaa               
2978 No match
2979
2980 /^(a\1?)(a\1?)(a\2?)(a\3?)$/
2981     a
2982 No match
2983     aa
2984 No match
2985     aaa
2986 No match
2987     aaaa
2988  0: aaaa
2989  1: a
2990  2: a
2991  3: a
2992  4: a
2993     aaaaa
2994  0: aaaaa
2995  1: a
2996  2: aa
2997  3: a
2998  4: a
2999     aaaaaa
3000  0: aaaaaa
3001  1: a
3002  2: aa
3003  3: a
3004  4: aa
3005     aaaaaaa
3006  0: aaaaaaa
3007  1: a
3008  2: aa
3009  3: aaa
3010  4: a
3011     aaaaaaaa
3012 No match
3013     aaaaaaaaa
3014 No match
3015     aaaaaaaaaa
3016  0: aaaaaaaaaa
3017  1: a
3018  2: aa
3019  3: aaa
3020  4: aaaa
3021     aaaaaaaaaaa
3022 No match
3023     aaaaaaaaaaaa
3024 No match
3025     aaaaaaaaaaaaa
3026 No match
3027     aaaaaaaaaaaaaa
3028 No match
3029     aaaaaaaaaaaaaaa
3030 No match
3031     aaaaaaaaaaaaaaaa               
3032 No match
3033
3034 /The following tests are taken from the Perl 5.005 test suite; some of them/
3035 /are compatible with 5.004, but I'd rather not have to sort them out./
3036 No match
3037
3038 /abc/
3039     abc
3040  0: abc
3041     xabcy
3042  0: abc
3043     ababc
3044  0: abc
3045     *** Failers
3046 No match
3047     xbc
3048 No match
3049     axc
3050 No match
3051     abx
3052 No match
3053
3054 /ab*c/
3055     abc
3056  0: abc
3057
3058 /ab*bc/
3059     abc
3060  0: abc
3061     abbc
3062  0: abbc
3063     abbbbc
3064  0: abbbbc
3065
3066 /.{1}/
3067     abbbbc
3068  0: a
3069
3070 /.{3,4}/
3071     abbbbc
3072  0: abbb
3073
3074 /ab{0,}bc/
3075     abbbbc
3076  0: abbbbc
3077
3078 /ab+bc/
3079     abbc
3080  0: abbc
3081     *** Failers
3082 No match
3083     abc
3084 No match
3085     abq
3086 No match
3087
3088 /ab{1,}bc/
3089
3090 /ab+bc/
3091     abbbbc
3092  0: abbbbc
3093
3094 /ab{1,}bc/
3095     abbbbc
3096  0: abbbbc
3097
3098 /ab{1,3}bc/
3099     abbbbc
3100  0: abbbbc
3101
3102 /ab{3,4}bc/
3103     abbbbc
3104  0: abbbbc
3105
3106 /ab{4,5}bc/
3107     *** Failers
3108 No match
3109     abq
3110 No match
3111     abbbbc
3112 No match
3113
3114 /ab?bc/
3115     abbc
3116  0: abbc
3117     abc
3118  0: abc
3119
3120 /ab{0,1}bc/
3121     abc
3122  0: abc
3123
3124 /ab?bc/
3125
3126 /ab?c/
3127     abc
3128  0: abc
3129
3130 /ab{0,1}c/
3131     abc
3132  0: abc
3133
3134 /^abc$/
3135     abc
3136  0: abc
3137     *** Failers
3138 No match
3139     abbbbc
3140 No match
3141     abcc
3142 No match
3143
3144 /^abc/
3145     abcc
3146  0: abc
3147
3148 /^abc$/
3149
3150 /abc$/
3151     aabc
3152  0: abc
3153     *** Failers
3154 No match
3155     aabc
3156  0: abc
3157     aabcd
3158 No match
3159
3160 /^/
3161     abc
3162  0: 
3163
3164 /$/
3165     abc
3166  0: 
3167
3168 /a.c/
3169     abc
3170  0: abc
3171     axc
3172  0: axc
3173
3174 /a.*c/
3175     axyzc
3176  0: axyzc
3177
3178 /a[bc]d/
3179     abd
3180  0: abd
3181     *** Failers
3182 No match
3183     axyzd
3184 No match
3185     abc
3186 No match
3187
3188 /a[b-d]e/
3189     ace
3190  0: ace
3191
3192 /a[b-d]/
3193     aac
3194  0: ac
3195
3196 /a[-b]/
3197     a-
3198  0: a-
3199
3200 /a[b-]/
3201     a-
3202  0: a-
3203
3204 /a]/
3205     a]
3206  0: a]
3207
3208 /a[]]b/
3209     a]b
3210  0: a]b
3211
3212 /a[^bc]d/
3213     aed
3214  0: aed
3215     *** Failers
3216 No match
3217     abd
3218 No match
3219     abd
3220 No match
3221
3222 /a[^-b]c/
3223     adc
3224  0: adc
3225
3226 /a[^]b]c/
3227     adc
3228  0: adc
3229     *** Failers
3230 No match
3231     a-c
3232  0: a-c
3233     a]c
3234 No match
3235
3236 /\ba\b/
3237     a-
3238  0: a
3239     -a
3240  0: a
3241     -a-
3242  0: a
3243
3244 /\by\b/
3245     *** Failers
3246 No match
3247     xy
3248 No match
3249     yz
3250 No match
3251     xyz
3252 No match
3253
3254 /\Ba\B/
3255     *** Failers
3256  0: a
3257     a-
3258 No match
3259     -a
3260 No match
3261     -a-
3262 No match
3263
3264 /\By\b/
3265     xy
3266  0: y
3267
3268 /\by\B/
3269     yz
3270  0: y
3271
3272 /\By\B/
3273     xyz
3274  0: y
3275
3276 /\w/
3277     a
3278  0: a
3279
3280 /\W/
3281     -
3282  0: -
3283     *** Failers
3284  0: *
3285     -
3286  0: -
3287     a
3288 No match
3289
3290 /a\sb/
3291     a b
3292  0: a b
3293
3294 /a\Sb/
3295     a-b
3296  0: a-b
3297     *** Failers
3298 No match
3299     a-b
3300  0: a-b
3301     a b
3302 No match
3303
3304 /\d/
3305     1
3306  0: 1
3307
3308 /\D/
3309     -
3310  0: -
3311     *** Failers
3312  0: *
3313     -
3314  0: -
3315     1
3316 No match
3317
3318 /[\w]/
3319     a
3320  0: a
3321
3322 /[\W]/
3323     -
3324  0: -
3325     *** Failers
3326  0: *
3327     -
3328  0: -
3329     a
3330 No match
3331
3332 /a[\s]b/
3333     a b
3334  0: a b
3335
3336 /a[\S]b/
3337     a-b
3338  0: a-b
3339     *** Failers
3340 No match
3341     a-b
3342  0: a-b
3343     a b
3344 No match
3345
3346 /[\d]/
3347     1
3348  0: 1
3349
3350 /[\D]/
3351     -
3352  0: -
3353     *** Failers
3354  0: *
3355     -
3356  0: -
3357     1
3358 No match
3359
3360 /ab|cd/
3361     abc
3362  0: ab
3363     abcd
3364  0: ab
3365
3366 /()ef/
3367     def
3368  0: ef
3369  1: 
3370
3371 /$b/
3372
3373 /a\(b/
3374     a(b
3375  0: a(b
3376
3377 /a\(*b/
3378     ab
3379  0: ab
3380     a((b
3381  0: a((b
3382
3383 /a\\b/
3384     a\b
3385 No match
3386
3387 /((a))/
3388     abc
3389  0: a
3390  1: a
3391  2: a
3392
3393 /(a)b(c)/
3394     abc
3395  0: abc
3396  1: a
3397  2: c
3398
3399 /a+b+c/
3400     aabbabc
3401  0: abc
3402
3403 /a{1,}b{1,}c/
3404     aabbabc
3405  0: abc
3406
3407 /a.+?c/
3408     abcabc
3409  0: abc
3410
3411 /(a+|b)*/
3412     ab
3413  0: ab
3414  1: b
3415
3416 /(a+|b){0,}/
3417     ab
3418  0: ab
3419  1: b
3420
3421 /(a+|b)+/
3422     ab
3423  0: ab
3424  1: b
3425
3426 /(a+|b){1,}/
3427     ab
3428  0: ab
3429  1: b
3430
3431 /(a+|b)?/
3432     ab
3433  0: a
3434  1: a
3435
3436 /(a+|b){0,1}/
3437     ab
3438  0: a
3439  1: a
3440
3441 /[^ab]*/
3442     cde
3443  0: cde
3444
3445 /abc/
3446     *** Failers
3447 No match
3448     b
3449 No match
3450     
3451
3452 /a*/
3453     
3454
3455 /([abc])*d/
3456     abbbcd
3457  0: abbbcd
3458  1: c
3459
3460 /([abc])*bcd/
3461     abcd
3462  0: abcd
3463  1: a
3464
3465 /a|b|c|d|e/
3466     e
3467  0: e
3468
3469 /(a|b|c|d|e)f/
3470     ef
3471  0: ef
3472  1: e
3473
3474 /abcd*efg/
3475     abcdefg
3476  0: abcdefg
3477
3478 /ab*/
3479     xabyabbbz
3480  0: ab
3481     xayabbbz
3482  0: a
3483
3484 /(ab|cd)e/
3485     abcde
3486  0: cde
3487  1: cd
3488
3489 /[abhgefdc]ij/
3490     hij
3491  0: hij
3492
3493 /^(ab|cd)e/
3494
3495 /(abc|)ef/
3496     abcdef
3497  0: ef
3498  1: 
3499
3500 /(a|b)c*d/
3501     abcd
3502  0: bcd
3503  1: b
3504
3505 /(ab|ab*)bc/
3506     abc
3507  0: abc
3508  1: a
3509
3510 /a([bc]*)c*/
3511     abc
3512  0: abc
3513  1: bc
3514
3515 /a([bc]*)(c*d)/
3516     abcd
3517  0: abcd
3518  1: bc
3519  2: d
3520
3521 /a([bc]+)(c*d)/
3522     abcd
3523  0: abcd
3524  1: bc
3525  2: d
3526
3527 /a([bc]*)(c+d)/
3528     abcd
3529  0: abcd
3530  1: b
3531  2: cd
3532
3533 /a[bcd]*dcdcde/
3534     adcdcde
3535  0: adcdcde
3536
3537 /a[bcd]+dcdcde/
3538     *** Failers
3539 No match
3540     abcde
3541 No match
3542     adcdcde
3543 No match
3544
3545 /(ab|a)b*c/
3546     abc
3547  0: abc
3548  1: ab
3549
3550 /((a)(b)c)(d)/
3551     abcd
3552  0: abcd
3553  1: abc
3554  2: a
3555  3: b
3556  4: d
3557
3558 /[a-zA-Z_][a-zA-Z0-9_]*/
3559     alpha
3560  0: alpha
3561
3562 /^a(bc+|b[eh])g|.h$/
3563     abh
3564  0: bh
3565
3566 /(bc+d$|ef*g.|h?i(j|k))/
3567     effgz
3568  0: effgz
3569  1: effgz
3570     ij
3571  0: ij
3572  1: ij
3573  2: j
3574     reffgz
3575  0: effgz
3576  1: effgz
3577     *** Failers
3578 No match
3579     effg
3580 No match
3581     bcdd
3582 No match
3583
3584 /((((((((((a))))))))))/
3585     a
3586  0: a
3587  1: a
3588  2: a
3589  3: a
3590  4: a
3591  5: a
3592  6: a
3593  7: a
3594  8: a
3595  9: a
3596 10: a
3597
3598 /((((((((((a))))))))))\10/
3599     aa
3600  0: aa
3601  1: a
3602  2: a
3603  3: a
3604  4: a
3605  5: a
3606  6: a
3607  7: a
3608  8: a
3609  9: a
3610 10: a
3611
3612 /(((((((((a)))))))))/
3613     a
3614  0: a
3615  1: a
3616  2: a
3617  3: a
3618  4: a
3619  5: a
3620  6: a
3621  7: a
3622  8: a
3623  9: a
3624
3625 /multiple words of text/
3626     *** Failers
3627 No match
3628     aa
3629 No match
3630     uh-uh
3631 No match
3632
3633 /multiple words/
3634     multiple words, yeah
3635  0: multiple words
3636
3637 /(.*)c(.*)/
3638     abcde
3639  0: abcde
3640  1: ab
3641  2: de
3642
3643 /\((.*), (.*)\)/
3644     (a, b)
3645  0: (a, b)
3646  1: a
3647  2: b
3648
3649 /[k]/
3650
3651 /abcd/
3652     abcd
3653  0: abcd
3654
3655 /a(bc)d/
3656     abcd
3657  0: abcd
3658  1: bc
3659
3660 /a[-]?c/
3661     ac
3662  0: ac
3663
3664 /(abc)\1/
3665     abcabc
3666  0: abcabc
3667  1: abc
3668
3669 /([a-c]*)\1/
3670     abcabc
3671  0: abcabc
3672  1: abc
3673
3674 /(a)|\1/
3675     a
3676  0: a
3677  1: a
3678     *** Failers
3679  0: a
3680  1: a
3681     ab
3682  0: a
3683  1: a
3684     x
3685 No match
3686
3687 /(([a-c])b*?\2)*/
3688     ababbbcbc
3689  0: ababb
3690  1: bb
3691  2: b
3692
3693 /(([a-c])b*?\2){3}/
3694     ababbbcbc
3695  0: ababbbcbc
3696  1: cbc
3697  2: c
3698
3699 /((\3|b)\2(a)x)+/
3700     aaaxabaxbaaxbbax
3701  0: bbax
3702  1: bbax
3703  2: b
3704  3: a
3705
3706 /((\3|b)\2(a)){2,}/
3707     bbaababbabaaaaabbaaaabba
3708  0: bbaaaabba
3709  1: bba
3710  2: b
3711  3: a
3712
3713 /abc/i
3714     ABC
3715  0: ABC
3716     XABCY
3717  0: ABC
3718     ABABC
3719  0: ABC
3720     *** Failers
3721 No match
3722     aaxabxbaxbbx
3723 No match
3724     XBC
3725 No match
3726     AXC
3727 No match
3728     ABX
3729 No match
3730
3731 /ab*c/i
3732     ABC
3733  0: ABC
3734
3735 /ab*bc/i
3736     ABC
3737  0: ABC
3738     ABBC
3739  0: ABBC
3740
3741 /ab*?bc/i
3742     ABBBBC
3743  0: ABBBBC
3744
3745 /ab{0,}?bc/i
3746     ABBBBC
3747  0: ABBBBC
3748
3749 /ab+?bc/i
3750     ABBC
3751  0: ABBC
3752
3753 /ab+bc/i
3754     *** Failers
3755 No match
3756     ABC
3757 No match
3758     ABQ
3759 No match
3760
3761 /ab{1,}bc/i
3762
3763 /ab+bc/i
3764     ABBBBC
3765  0: ABBBBC
3766
3767 /ab{1,}?bc/i
3768     ABBBBC
3769  0: ABBBBC
3770
3771 /ab{1,3}?bc/i
3772     ABBBBC
3773  0: ABBBBC
3774
3775 /ab{3,4}?bc/i
3776     ABBBBC
3777  0: ABBBBC
3778
3779 /ab{4,5}?bc/i
3780     *** Failers
3781 No match
3782     ABQ
3783 No match
3784     ABBBBC
3785 No match
3786
3787 /ab??bc/i
3788     ABBC
3789  0: ABBC
3790     ABC
3791  0: ABC
3792
3793 /ab{0,1}?bc/i
3794     ABC
3795  0: ABC
3796
3797 /ab??bc/i
3798
3799 /ab??c/i
3800     ABC
3801  0: ABC
3802
3803 /ab{0,1}?c/i
3804     ABC
3805  0: ABC
3806
3807 /^abc$/i
3808     ABC
3809  0: ABC
3810     *** Failers
3811 No match
3812     ABBBBC
3813 No match
3814     ABCC
3815 No match
3816
3817 /^abc/i
3818     ABCC
3819  0: ABC
3820
3821 /^abc$/i
3822
3823 /abc$/i
3824     AABC
3825  0: ABC
3826
3827 /^/i
3828     ABC
3829  0: 
3830
3831 /$/i
3832     ABC
3833  0: 
3834
3835 /a.c/i
3836     ABC
3837  0: ABC
3838     AXC
3839  0: AXC
3840
3841 /a.*?c/i
3842     AXYZC
3843  0: AXYZC
3844
3845 /a.*c/i
3846     *** Failers
3847 No match
3848     AABC
3849  0: AABC
3850     AXYZD
3851 No match
3852
3853 /a[bc]d/i
3854     ABD
3855  0: ABD
3856
3857 /a[b-d]e/i
3858     ACE
3859  0: ACE
3860     *** Failers
3861 No match
3862     ABC
3863 No match
3864     ABD
3865 No match
3866
3867 /a[b-d]/i
3868     AAC
3869  0: AC
3870
3871 /a[-b]/i
3872     A-
3873  0: A-
3874
3875 /a[b-]/i
3876     A-
3877  0: A-
3878
3879 /a]/i
3880     A]
3881  0: A]
3882
3883 /a[]]b/i
3884     A]B
3885  0: A]B
3886
3887 /a[^bc]d/i
3888     AED
3889  0: AED
3890
3891 /a[^-b]c/i
3892     ADC
3893  0: ADC
3894     *** Failers
3895 No match
3896     ABD
3897 No match
3898     A-C
3899 No match
3900
3901 /a[^]b]c/i
3902     ADC
3903  0: ADC
3904
3905 /ab|cd/i
3906     ABC
3907  0: AB
3908     ABCD
3909  0: AB
3910
3911 /()ef/i
3912     DEF
3913  0: EF
3914  1: 
3915
3916 /$b/i
3917     *** Failers
3918 No match
3919     A]C
3920 No match
3921     B
3922 No match
3923
3924 /a\(b/i
3925     A(B
3926  0: A(B
3927
3928 /a\(*b/i
3929     AB
3930  0: AB
3931     A((B
3932  0: A((B
3933
3934 /a\\b/i
3935     A\B
3936 No match
3937
3938 /((a))/i
3939     ABC
3940  0: A
3941  1: A
3942  2: A
3943
3944 /(a)b(c)/i
3945     ABC
3946  0: ABC
3947  1: A
3948  2: C
3949
3950 /a+b+c/i
3951     AABBABC
3952  0: ABC
3953
3954 /a{1,}b{1,}c/i
3955     AABBABC
3956  0: ABC
3957
3958 /a.+?c/i
3959     ABCABC
3960  0: ABC
3961
3962 /a.*?c/i
3963     ABCABC
3964  0: ABC
3965
3966 /a.{0,5}?c/i
3967     ABCABC
3968  0: ABC
3969
3970 /(a+|b)*/i
3971     AB
3972  0: AB
3973  1: B
3974
3975 /(a+|b){0,}/i
3976     AB
3977  0: AB
3978  1: B
3979
3980 /(a+|b)+/i
3981     AB
3982  0: AB
3983  1: B
3984
3985 /(a+|b){1,}/i
3986     AB
3987  0: AB
3988  1: B
3989
3990 /(a+|b)?/i
3991     AB
3992  0: A
3993  1: A
3994
3995 /(a+|b){0,1}/i
3996     AB
3997  0: A
3998  1: A
3999
4000 /(a+|b){0,1}?/i
4001     AB
4002  0: 
4003
4004 /[^ab]*/i
4005     CDE
4006  0: CDE
4007
4008 /abc/i
4009
4010 /a*/i
4011     
4012
4013 /([abc])*d/i
4014     ABBBCD
4015  0: ABBBCD
4016  1: C
4017
4018 /([abc])*bcd/i
4019     ABCD
4020  0: ABCD
4021  1: A
4022
4023 /a|b|c|d|e/i
4024     E
4025  0: E
4026
4027 /(a|b|c|d|e)f/i
4028     EF
4029  0: EF
4030  1: E
4031
4032 /abcd*efg/i
4033     ABCDEFG
4034  0: ABCDEFG
4035
4036 /ab*/i
4037     XABYABBBZ
4038  0: AB
4039     XAYABBBZ
4040  0: A
4041
4042 /(ab|cd)e/i
4043     ABCDE
4044  0: CDE
4045  1: CD
4046
4047 /[abhgefdc]ij/i
4048     HIJ
4049  0: HIJ
4050
4051 /^(ab|cd)e/i
4052     ABCDE
4053 No match
4054
4055 /(abc|)ef/i
4056     ABCDEF
4057  0: EF
4058  1: 
4059
4060 /(a|b)c*d/i
4061     ABCD
4062  0: BCD
4063  1: B
4064
4065 /(ab|ab*)bc/i
4066     ABC
4067  0: ABC
4068  1: A
4069
4070 /a([bc]*)c*/i
4071     ABC
4072  0: ABC
4073  1: BC
4074
4075 /a([bc]*)(c*d)/i
4076     ABCD
4077  0: ABCD
4078  1: BC
4079  2: D
4080
4081 /a([bc]+)(c*d)/i
4082     ABCD
4083  0: ABCD
4084  1: BC
4085  2: D
4086
4087 /a([bc]*)(c+d)/i
4088     ABCD
4089  0: ABCD
4090  1: B
4091  2: CD
4092
4093 /a[bcd]*dcdcde/i
4094     ADCDCDE
4095  0: ADCDCDE
4096
4097 /a[bcd]+dcdcde/i
4098
4099 /(ab|a)b*c/i
4100     ABC
4101  0: ABC
4102  1: AB
4103
4104 /((a)(b)c)(d)/i
4105     ABCD
4106  0: ABCD
4107  1: ABC
4108  2: A
4109  3: B
4110  4: D
4111
4112 /[a-zA-Z_][a-zA-Z0-9_]*/i
4113     ALPHA
4114  0: ALPHA
4115
4116 /^a(bc+|b[eh])g|.h$/i
4117     ABH
4118  0: BH
4119
4120 /(bc+d$|ef*g.|h?i(j|k))/i
4121     EFFGZ
4122  0: EFFGZ
4123  1: EFFGZ
4124     IJ
4125  0: IJ
4126  1: IJ
4127  2: J
4128     REFFGZ
4129  0: EFFGZ
4130  1: EFFGZ
4131     *** Failers
4132 No match
4133     ADCDCDE
4134 No match
4135     EFFG
4136 No match
4137     BCDD
4138 No match
4139
4140 /((((((((((a))))))))))/i
4141     A
4142  0: A
4143  1: A
4144  2: A
4145  3: A
4146  4: A
4147  5: A
4148  6: A
4149  7: A
4150  8: A
4151  9: A
4152 10: A
4153
4154 /((((((((((a))))))))))\10/i
4155     AA
4156  0: AA
4157  1: A
4158  2: A
4159  3: A
4160  4: A
4161  5: A
4162  6: A
4163  7: A
4164  8: A
4165  9: A
4166 10: A
4167
4168 /(((((((((a)))))))))/i
4169     A
4170  0: A
4171  1: A
4172  2: A
4173  3: A
4174  4: A
4175  5: A
4176  6: A
4177  7: A
4178  8: A
4179  9: A
4180
4181 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a))))))))))/i
4182     A
4183  0: A
4184  1: A
4185
4186 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/i
4187     C
4188  0: C
4189  1: C
4190
4191 /multiple words of text/i
4192     *** Failers
4193 No match
4194     AA
4195 No match