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