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