chiark / gitweb /
pcre3 (2:8.35-7.1) unstable; urgency=medium
[pcre3.git] / testdata / testoutput2
1 /-- This set of tests is not Perl-compatible. It checks on special features
2     of PCRE's API, error diagnostics, and the compiled code of some patterns.
3     It also checks the non-Perl syntax the PCRE supports (Python, .NET, 
4     Oniguruma). Finally, there are some tests where PCRE and Perl differ, 
5     either because PCRE can't be compatible, or there is a possible Perl 
6     bug.
7     
8     NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9     test 5, and if Unicode Property Support is needed, use test 7. --/
10     
11 < forbid 8W 
12   
13 /(a)b|/I
14 Capturing subpattern count = 1
15 May match empty string
16 No options
17 No first char
18 No need char
19
20 /abc/I
21 Capturing subpattern count = 0
22 No options
23 First char = 'a'
24 Need char = 'c'
25     abc
26  0: abc
27     defabc
28  0: abc
29     \Aabc
30  0: abc
31     *** Failers
32 No match
33     \Adefabc
34 No match
35     ABC
36 No match
37
38 /^abc/I
39 Capturing subpattern count = 0
40 Options: anchored
41 No first char
42 No need char
43     abc
44  0: abc
45     \Aabc
46  0: abc
47     *** Failers
48 No match
49     defabc
50 No match
51     \Adefabc
52 No match
53
54 /a+bc/I
55 Capturing subpattern count = 0
56 No options
57 First char = 'a'
58 Need char = 'c'
59
60 /a*bc/I
61 Capturing subpattern count = 0
62 No options
63 No first char
64 Need char = 'c'
65
66 /a{3}bc/I
67 Capturing subpattern count = 0
68 No options
69 First char = 'a'
70 Need char = 'c'
71
72 /(abc|a+z)/I
73 Capturing subpattern count = 1
74 No options
75 First char = 'a'
76 No need char
77
78 /^abc$/I
79 Capturing subpattern count = 0
80 Options: anchored
81 No first char
82 No need char
83     abc
84  0: abc
85     *** Failers
86 No match
87     def\nabc
88 No match
89
90 /ab\idef/X
91 Failed: unrecognized character follows \ at offset 3
92
93 /(?X)ab\idef/X
94 Failed: unrecognized character follows \ at offset 7
95
96 /x{5,4}/
97 Failed: numbers out of order in {} quantifier at offset 5
98
99 /z{65536}/
100 Failed: number too big in {} quantifier at offset 7
101
102 /[abcd/
103 Failed: missing terminating ] for character class at offset 5
104
105 /(?X)[\B]/
106 Failed: invalid escape sequence in character class at offset 6
107
108 /(?X)[\R]/
109 Failed: invalid escape sequence in character class at offset 6
110
111 /(?X)[\X]/
112 Failed: invalid escape sequence in character class at offset 6
113
114 /[\B]/BZ
115 ------------------------------------------------------------------
116         Bra
117         B
118         Ket
119         End
120 ------------------------------------------------------------------
121
122 /[\R]/BZ
123 ------------------------------------------------------------------
124         Bra
125         R
126         Ket
127         End
128 ------------------------------------------------------------------
129
130 /[\X]/BZ
131 ------------------------------------------------------------------
132         Bra
133         X
134         Ket
135         End
136 ------------------------------------------------------------------
137
138 /[z-a]/
139 Failed: range out of order in character class at offset 3
140
141 /^*/
142 Failed: nothing to repeat at offset 1
143
144 /(abc/
145 Failed: missing ) at offset 4
146
147 /(?# abc/
148 Failed: missing ) after comment at offset 7
149
150 /(?z)abc/
151 Failed: unrecognized character after (? or (?- at offset 2
152
153 /.*b/I
154 Capturing subpattern count = 0
155 No options
156 First char at start or follows newline
157 Need char = 'b'
158
159 /.*?b/I
160 Capturing subpattern count = 0
161 No options
162 First char at start or follows newline
163 Need char = 'b'
164
165 /cat|dog|elephant/I
166 Capturing subpattern count = 0
167 No options
168 No first char
169 No need char
170     this sentence eventually mentions a cat
171  0: cat
172     this sentences rambles on and on for a while and then reaches elephant
173  0: elephant
174
175 /cat|dog|elephant/IS
176 Capturing subpattern count = 0
177 No options
178 No first char
179 No need char
180 Subject length lower bound = 3
181 Starting chars: c d e 
182     this sentence eventually mentions a cat
183  0: cat
184     this sentences rambles on and on for a while and then reaches elephant
185  0: elephant
186
187 /cat|dog|elephant/IiS
188 Capturing subpattern count = 0
189 Options: caseless
190 No first char
191 No need char
192 Subject length lower bound = 3
193 Starting chars: C D E c d e 
194     this sentence eventually mentions a CAT cat
195  0: CAT
196     this sentences rambles on and on for a while to elephant ElePhant
197  0: elephant
198
199 /a|[bcd]/IS
200 Capturing subpattern count = 0
201 No options
202 No first char
203 No need char
204 Subject length lower bound = 1
205 Starting chars: a b c d 
206
207 /(a|[^\dZ])/IS
208 Capturing subpattern count = 1
209 No options
210 No first char
211 No need char
212 Subject length lower bound = 1
213 Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
214   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
215   \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = > 
216   ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d 
217   e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82 \x83 
218   \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 
219   \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 
220   \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 
221   \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf 
222   \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce 
223   \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd 
224   \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec 
225   \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb 
226   \xfc \xfd \xfe \xff 
227
228 /(a|b)*[\s]/IS
229 Capturing subpattern count = 1
230 No options
231 No first char
232 No need char
233 Subject length lower bound = 1
234 Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 a b 
235
236 /(ab\2)/
237 Failed: reference to non-existent subpattern at offset 6
238
239 /{4,5}abc/
240 Failed: nothing to repeat at offset 4
241
242 /(a)(b)(c)\2/I
243 Capturing subpattern count = 3
244 Max back reference = 2
245 No options
246 First char = 'a'
247 Need char = 'c'
248     abcb
249  0: abcb
250  1: a
251  2: b
252  3: c
253     \O0abcb
254 Matched, but too many substrings
255     \O3abcb
256 Matched, but too many substrings
257  0: abcb
258     \O6abcb
259 Matched, but too many substrings
260  0: abcb
261  1: a
262     \O9abcb
263 Matched, but too many substrings
264  0: abcb
265  1: a
266  2: b
267     \O12abcb
268  0: abcb
269  1: a
270  2: b
271  3: c
272
273 /(a)bc|(a)(b)\2/I
274 Capturing subpattern count = 3
275 Max back reference = 2
276 No options
277 First char = 'a'
278 No need char
279     abc
280  0: abc
281  1: a
282     \O0abc
283 Matched, but too many substrings
284     \O3abc
285 Matched, but too many substrings
286  0: abc
287     \O6abc
288  0: abc
289  1: a
290     aba
291  0: aba
292  1: <unset>
293  2: a
294  3: b
295     \O0aba
296 Matched, but too many substrings
297     \O3aba
298 Matched, but too many substrings
299  0: aba
300     \O6aba
301 Matched, but too many substrings
302  0: aba
303  1: <unset>
304     \O9aba
305 Matched, but too many substrings
306  0: aba
307  1: <unset>
308  2: a
309     \O12aba
310  0: aba
311  1: <unset>
312  2: a
313  3: b
314
315 /abc$/IE
316 Capturing subpattern count = 0
317 Options: dollar_endonly
318 First char = 'a'
319 Need char = 'c'
320     abc
321  0: abc
322     *** Failers
323 No match
324     abc\n
325 No match
326     abc\ndef
327 No match
328
329 /(a)(b)(c)(d)(e)\6/
330 Failed: reference to non-existent subpattern at offset 17
331
332 /the quick brown fox/I
333 Capturing subpattern count = 0
334 No options
335 First char = 't'
336 Need char = 'x'
337     the quick brown fox
338  0: the quick brown fox
339     this is a line with the quick brown fox
340  0: the quick brown fox
341
342 /the quick brown fox/IA
343 Capturing subpattern count = 0
344 Options: anchored
345 No first char
346 No need char
347     the quick brown fox
348  0: the quick brown fox
349     *** Failers
350 No match
351     this is a line with the quick brown fox
352 No match
353
354 /ab(?z)cd/
355 Failed: unrecognized character after (? or (?- at offset 4
356
357 /^abc|def/I
358 Capturing subpattern count = 0
359 No options
360 No first char
361 No need char
362     abcdef
363  0: abc
364     abcdef\B
365  0: def
366
367 /.*((abc)$|(def))/I
368 Capturing subpattern count = 3
369 No options
370 First char at start or follows newline
371 No need char
372     defabc
373  0: defabc
374  1: abc
375  2: abc
376     \Zdefabc
377  0: def
378  1: def
379  2: <unset>
380  3: def
381
382 /)/
383 Failed: unmatched parentheses at offset 0
384
385 /a[]b/
386 Failed: missing terminating ] for character class at offset 4
387
388 /[^aeiou ]{3,}/I
389 Capturing subpattern count = 0
390 No options
391 No first char
392 No need char
393     co-processors, and for
394  0: -pr
395
396 /<.*>/I
397 Capturing subpattern count = 0
398 No options
399 First char = '<'
400 Need char = '>'
401     abc<def>ghi<klm>nop
402  0: <def>ghi<klm>
403
404 /<.*?>/I
405 Capturing subpattern count = 0
406 No options
407 First char = '<'
408 Need char = '>'
409     abc<def>ghi<klm>nop
410  0: <def>
411
412 /<.*>/IU
413 Capturing subpattern count = 0
414 Options: ungreedy
415 First char = '<'
416 Need char = '>'
417     abc<def>ghi<klm>nop
418  0: <def>
419
420 /(?U)<.*>/I
421 Capturing subpattern count = 0
422 Options: ungreedy
423 First char = '<'
424 Need char = '>'
425     abc<def>ghi<klm>nop
426  0: <def>
427
428 /<.*?>/IU
429 Capturing subpattern count = 0
430 Options: ungreedy
431 First char = '<'
432 Need char = '>'
433     abc<def>ghi<klm>nop
434  0: <def>ghi<klm>
435
436 /={3,}/IU
437 Capturing subpattern count = 0
438 Options: ungreedy
439 First char = '='
440 Need char = '='
441     abc========def
442  0: ===
443
444 /(?U)={3,}?/I
445 Capturing subpattern count = 0
446 Options: ungreedy
447 First char = '='
448 Need char = '='
449     abc========def
450  0: ========
451
452 /(?<!bar|cattle)foo/I
453 Capturing subpattern count = 0
454 Max lookbehind = 6
455 No options
456 First char = 'f'
457 Need char = 'o'
458     foo
459  0: foo
460     catfoo
461  0: foo
462     *** Failers
463 No match
464     the barfoo
465 No match
466     and cattlefoo
467 No match
468
469 /(?<=a+)b/
470 Failed: lookbehind assertion is not fixed length at offset 6
471
472 /(?<=aaa|b{0,3})b/
473 Failed: lookbehind assertion is not fixed length at offset 14
474
475 /(?<!(foo)a\1)bar/
476 Failed: lookbehind assertion is not fixed length at offset 12
477
478 /(?i)abc/I
479 Capturing subpattern count = 0
480 Options: caseless
481 First char = 'a' (caseless)
482 Need char = 'c' (caseless)
483
484 /(a|(?m)a)/I
485 Capturing subpattern count = 1
486 No options
487 First char = 'a'
488 No need char
489
490 /(?i)^1234/I
491 Capturing subpattern count = 0
492 Options: anchored caseless
493 No first char
494 No need char
495
496 /(^b|(?i)^d)/I
497 Capturing subpattern count = 1
498 Options: anchored
499 No first char
500 No need char
501
502 /(?s).*/I
503 Capturing subpattern count = 0
504 May match empty string
505 Options: anchored dotall
506 No first char
507 No need char
508
509 /[abcd]/IS
510 Capturing subpattern count = 0
511 No options
512 No first char
513 No need char
514 Subject length lower bound = 1
515 Starting chars: a b c d 
516
517 /(?i)[abcd]/IS
518 Capturing subpattern count = 0
519 Options: caseless
520 No first char
521 No need char
522 Subject length lower bound = 1
523 Starting chars: A B C D a b c d 
524
525 /(?m)[xy]|(b|c)/IS
526 Capturing subpattern count = 1
527 Options: multiline
528 No first char
529 No need char
530 Subject length lower bound = 1
531 Starting chars: b c x y 
532
533 /(^a|^b)/Im
534 Capturing subpattern count = 1
535 Options: multiline
536 First char at start or follows newline
537 No need char
538
539 /(?i)(^a|^b)/Im
540 Capturing subpattern count = 1
541 Options: caseless multiline
542 First char at start or follows newline
543 No need char
544
545 /(a)(?(1)a|b|c)/
546 Failed: conditional group contains more than two branches at offset 13
547
548 /(?(?=a)a|b|c)/
549 Failed: conditional group contains more than two branches at offset 12
550
551 /(?(1a)/
552 Failed: malformed number or name after (?( at offset 4
553
554 /(?(1a))/
555 Failed: malformed number or name after (?( at offset 4
556
557 /(?(?i))/
558 Failed: assertion expected after (?( at offset 3
559
560 /(?(abc))/
561 Failed: reference to non-existent subpattern at offset 7
562
563 /(?(?<ab))/
564 Failed: syntax error in subpattern name (missing terminator) at offset 7
565
566 /((?s)blah)\s+\1/I
567 Capturing subpattern count = 1
568 Max back reference = 1
569 No options
570 First char = 'b'
571 Need char = 'h'
572
573 /((?i)blah)\s+\1/I
574 Capturing subpattern count = 1
575 Max back reference = 1
576 No options
577 First char = 'b' (caseless)
578 Need char = 'h' (caseless)
579
580 /((?i)b)/IDZS
581 ------------------------------------------------------------------
582         Bra
583         CBra 1
584      /i b
585         Ket
586         Ket
587         End
588 ------------------------------------------------------------------
589 Capturing subpattern count = 1
590 No options
591 First char = 'b' (caseless)
592 No need char
593 Subject length lower bound = 1
594 No starting char list
595
596 /(a*b|(?i:c*(?-i)d))/IS
597 Capturing subpattern count = 1
598 No options
599 No first char
600 No need char
601 Subject length lower bound = 1
602 Starting chars: C a b c d 
603
604 /a$/I
605 Capturing subpattern count = 0
606 No options
607 First char = 'a'
608 No need char
609     a
610  0: a
611     a\n
612  0: a
613     *** Failers
614 No match
615     \Za
616 No match
617     \Za\n
618 No match
619
620 /a$/Im
621 Capturing subpattern count = 0
622 Options: multiline
623 First char = 'a'
624 No need char
625     a
626  0: a
627     a\n
628  0: a
629     \Za\n
630  0: a
631     *** Failers
632 No match
633     \Za
634 No match
635
636 /\Aabc/Im
637 Capturing subpattern count = 0
638 Max lookbehind = 1
639 Options: anchored multiline
640 No first char
641 No need char
642
643 /^abc/Im
644 Capturing subpattern count = 0
645 Options: multiline
646 First char at start or follows newline
647 Need char = 'c'
648
649 /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
650 Capturing subpattern count = 5
651 Options: anchored
652 No first char
653 No need char
654   aaaaabbbbbcccccdef
655  0: aaaaabbbbbcccccdef
656  1: aaaaabbbbbcccccdef
657  2: aaaaa
658  3: b
659  4: bbbbccccc
660  5: def
661
662 /(?<=foo)[ab]/IS
663 Capturing subpattern count = 0
664 Max lookbehind = 3
665 No options
666 No first char
667 No need char
668 Subject length lower bound = 1
669 Starting chars: a b 
670
671 /(?<!foo)(alpha|omega)/IS
672 Capturing subpattern count = 1
673 Max lookbehind = 3
674 No options
675 No first char
676 Need char = 'a'
677 Subject length lower bound = 5
678 Starting chars: a o 
679
680 /(?!alphabet)[ab]/IS
681 Capturing subpattern count = 0
682 No options
683 No first char
684 No need char
685 Subject length lower bound = 1
686 Starting chars: a b 
687
688 /(?<=foo\n)^bar/Im
689 Capturing subpattern count = 0
690 Max lookbehind = 4
691 Contains explicit CR or LF match
692 Options: multiline
693 No first char
694 Need char = 'r'
695     foo\nbarbar
696  0: bar
697     ***Failers
698 No match
699     rhubarb
700 No match
701     barbell
702 No match
703     abc\nbarton
704 No match
705
706 /^(?<=foo\n)bar/Im
707 Capturing subpattern count = 0
708 Max lookbehind = 4
709 Contains explicit CR or LF match
710 Options: multiline
711 First char at start or follows newline
712 Need char = 'r'
713     foo\nbarbar
714  0: bar
715     ***Failers
716 No match
717     rhubarb
718 No match
719     barbell
720 No match
721     abc\nbarton
722 No match
723
724 /(?>^abc)/Im
725 Capturing subpattern count = 0
726 Options: multiline
727 First char at start or follows newline
728 Need char = 'c'
729     abc
730  0: abc
731     def\nabc
732  0: abc
733     *** Failers
734 No match
735     defabc
736 No match
737
738 /(?<=ab(c+)d)ef/
739 Failed: lookbehind assertion is not fixed length at offset 11
740
741 /(?<=ab(?<=c+)d)ef/
742 Failed: lookbehind assertion is not fixed length at offset 12
743
744 /(?<=ab(c|de)f)g/
745 Failed: lookbehind assertion is not fixed length at offset 13
746
747 /The next three are in testinput2 because they have variable length branches/
748
749 /(?<=bullock|donkey)-cart/I
750 Capturing subpattern count = 0
751 Max lookbehind = 7
752 No options
753 First char = '-'
754 Need char = 't'
755     the bullock-cart
756  0: -cart
757     a donkey-cart race
758  0: -cart
759     *** Failers
760 No match
761     cart
762 No match
763     horse-and-cart
764 No match
765
766 /(?<=ab(?i)x|y|z)/I
767 Capturing subpattern count = 0
768 Max lookbehind = 3
769 May match empty string
770 No options
771 No first char
772 No need char
773
774 /(?>.*)(?<=(abcd)|(xyz))/I
775 Capturing subpattern count = 2
776 Max lookbehind = 4
777 May match empty string
778 No options
779 No first char
780 No need char
781     alphabetabcd
782  0: alphabetabcd
783  1: abcd
784     endingxyz
785  0: endingxyz
786  1: <unset>
787  2: xyz
788
789 /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
790 Capturing subpattern count = 0
791 Max lookbehind = 4
792 No options
793 First char = 'Z'
794 Need char = 'Z'
795     abxyZZ
796  0: ZZ
797     abXyZZ
798  0: ZZ
799     ZZZ
800  0: ZZ
801     zZZ
802  0: ZZ
803     bZZ
804  0: ZZ
805     BZZ
806  0: ZZ
807     *** Failers
808 No match
809     ZZ
810 No match
811     abXYZZ
812 No match
813     zzz
814 No match
815     bzz
816 No match
817
818 /(?<!(foo)a)bar/I
819 Capturing subpattern count = 1
820 Max lookbehind = 4
821 No options
822 First char = 'b'
823 Need char = 'r'
824     bar
825  0: bar
826     foobbar
827  0: bar
828     *** Failers
829 No match
830     fooabar
831 No match
832
833 /This one is here because Perl behaves differently; see also the following/I
834 Capturing subpattern count = 0
835 No options
836 First char = 'T'
837 Need char = 'g'
838
839 /^(a\1?){4}$/I
840 Capturing subpattern count = 1
841 Max back reference = 1
842 Options: anchored
843 No first char
844 No need char
845     aaaa
846 No match
847     aaaaaa
848 No match
849     
850 /Perl does not fail these two for the final subjects. Neither did PCRE until/
851 /release 8.01. The problem is in backtracking into a subpattern that contains/
852 No match
853 /a recursive reference to itself. PCRE has now made these into atomic patterns./
854 No match
855
856 /^(xa|=?\1a){2}$/
857     xa=xaa
858  0: xa=xaa
859  1: =xaa
860     ** Failers
861 No match
862     xa=xaaa
863 No match
864
865 /^(xa|=?\1a)+$/
866     xa=xaa
867  0: xa=xaa
868  1: =xaa
869     ** Failers
870 No match
871     xa=xaaa
872 No match
873
874 /These are syntax tests from Perl 5.005/I
875 Capturing subpattern count = 0
876 No options
877 First char = 'T'
878 Need char = '5'
879
880 /a[b-a]/
881 Failed: range out of order in character class at offset 4
882
883 /a[]b/
884 Failed: missing terminating ] for character class at offset 4
885
886 /a[/
887 Failed: missing terminating ] for character class at offset 2
888
889 /*a/
890 Failed: nothing to repeat at offset 0
891
892 /(*)b/
893 Failed: nothing to repeat at offset 1
894
895 /abc)/
896 Failed: unmatched parentheses at offset 3
897
898 /(abc/
899 Failed: missing ) at offset 4
900
901 /a**/
902 Failed: nothing to repeat at offset 2
903
904 /)(/
905 Failed: unmatched parentheses at offset 0
906
907 /\1/
908 Failed: reference to non-existent subpattern at offset 2
909
910 /\2/
911 Failed: reference to non-existent subpattern at offset 2
912
913 /(a)|\2/
914 Failed: reference to non-existent subpattern at offset 6
915
916 /a[b-a]/Ii
917 Failed: range out of order in character class at offset 4
918
919 /a[]b/Ii
920 Failed: missing terminating ] for character class at offset 4
921
922 /a[/Ii
923 Failed: missing terminating ] for character class at offset 2
924
925 /*a/Ii
926 Failed: nothing to repeat at offset 0
927
928 /(*)b/Ii
929 Failed: nothing to repeat at offset 1
930
931 /abc)/Ii
932 Failed: unmatched parentheses at offset 3
933
934 /(abc/Ii
935 Failed: missing ) at offset 4
936
937 /a**/Ii
938 Failed: nothing to repeat at offset 2
939
940 /)(/Ii
941 Failed: unmatched parentheses at offset 0
942
943 /:(?:/
944 Failed: missing ) at offset 4
945
946 /(?<%)b/
947 Failed: unrecognized character after (?< at offset 3
948
949 /a(?{)b/
950 Failed: unrecognized character after (? or (?- at offset 3
951
952 /a(?{{})b/
953 Failed: unrecognized character after (? or (?- at offset 3
954
955 /a(?{}})b/
956 Failed: unrecognized character after (? or (?- at offset 3
957
958 /a(?{"{"})b/
959 Failed: unrecognized character after (? or (?- at offset 3
960
961 /a(?{"{"}})b/
962 Failed: unrecognized character after (? or (?- at offset 3
963
964 /(?(1?)a|b)/
965 Failed: malformed number or name after (?( at offset 4
966
967 /[a[:xyz:/
968 Failed: missing terminating ] for character class at offset 8
969
970 /(?<=x+)y/
971 Failed: lookbehind assertion is not fixed length at offset 6
972
973 /a{37,17}/
974 Failed: numbers out of order in {} quantifier at offset 7
975
976 /abc/\
977 Failed: \ at end of pattern at offset 4
978
979 /abc/\i
980 Failed: \ at end of pattern at offset 4
981
982 /(a)bc(d)/I
983 Capturing subpattern count = 2
984 No options
985 First char = 'a'
986 Need char = 'd'
987     abcd
988  0: abcd
989  1: a
990  2: d
991     abcd\C2
992  0: abcd
993  1: a
994  2: d
995  2C d (1)
996     abcd\C5
997  0: abcd
998  1: a
999  2: d
1000 copy substring 5 failed -7
1001
1002 /(.{20})/I
1003 Capturing subpattern count = 1
1004 No options
1005 No first char
1006 No need char
1007     abcdefghijklmnopqrstuvwxyz
1008  0: abcdefghijklmnopqrst
1009  1: abcdefghijklmnopqrst
1010     abcdefghijklmnopqrstuvwxyz\C1
1011  0: abcdefghijklmnopqrst
1012  1: abcdefghijklmnopqrst
1013  1C abcdefghijklmnopqrst (20)
1014     abcdefghijklmnopqrstuvwxyz\G1
1015  0: abcdefghijklmnopqrst
1016  1: abcdefghijklmnopqrst
1017  1G abcdefghijklmnopqrst (20)
1018
1019 /(.{15})/I
1020 Capturing subpattern count = 1
1021 No options
1022 No first char
1023 No need char
1024     abcdefghijklmnopqrstuvwxyz
1025  0: abcdefghijklmno
1026  1: abcdefghijklmno
1027     abcdefghijklmnopqrstuvwxyz\C1\G1
1028  0: abcdefghijklmno
1029  1: abcdefghijklmno
1030  1C abcdefghijklmno (15)
1031  1G abcdefghijklmno (15)
1032
1033 /(.{16})/I
1034 Capturing subpattern count = 1
1035 No options
1036 No first char
1037 No need char
1038     abcdefghijklmnopqrstuvwxyz
1039  0: abcdefghijklmnop
1040  1: abcdefghijklmnop
1041     abcdefghijklmnopqrstuvwxyz\C1\G1\L
1042  0: abcdefghijklmnop
1043  1: abcdefghijklmnop
1044  1C abcdefghijklmnop (16)
1045  1G abcdefghijklmnop (16)
1046  0L abcdefghijklmnop
1047  1L abcdefghijklmnop
1048
1049 /^(a|(bc))de(f)/I
1050 Capturing subpattern count = 3
1051 Options: anchored
1052 No first char
1053 No need char
1054     adef\G1\G2\G3\G4\L
1055  0: adef
1056  1: a
1057  2: <unset>
1058  3: f
1059  1G a (1)
1060  2G  (0)
1061  3G f (1)
1062 get substring 4 failed -7
1063  0L adef
1064  1L a
1065  2L 
1066  3L f
1067     bcdef\G1\G2\G3\G4\L
1068  0: bcdef
1069  1: bc
1070  2: bc
1071  3: f
1072  1G bc (2)
1073  2G bc (2)
1074  3G f (1)
1075 get substring 4 failed -7
1076  0L bcdef
1077  1L bc
1078  2L bc
1079  3L f
1080     adefghijk\C0
1081  0: adef
1082  1: a
1083  2: <unset>
1084  3: f
1085  0C adef (4)
1086
1087 /^abc\00def/I
1088 Capturing subpattern count = 0
1089 Options: anchored
1090 No first char
1091 No need char
1092     abc\00def\L\C0
1093  0: abc\x00def
1094  0C abc\x00def (7)
1095  0L abc
1096
1097 /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1098 )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1099 )?)?)?)?)?)?)?)?)?otherword/I
1100 Capturing subpattern count = 8
1101 Contains explicit CR or LF match
1102 No options
1103 First char = 'w'
1104 Need char = 'd'
1105
1106 /.*X/IDZ
1107 ------------------------------------------------------------------
1108         Bra
1109         Any*
1110         X
1111         Ket
1112         End
1113 ------------------------------------------------------------------
1114 Capturing subpattern count = 0
1115 No options
1116 First char at start or follows newline
1117 Need char = 'X'
1118
1119 /.*X/IDZs
1120 ------------------------------------------------------------------
1121         Bra
1122         AllAny*
1123         X
1124         Ket
1125         End
1126 ------------------------------------------------------------------
1127 Capturing subpattern count = 0
1128 Options: anchored dotall
1129 No first char
1130 Need char = 'X'
1131
1132 /(.*X|^B)/IDZ
1133 ------------------------------------------------------------------
1134         Bra
1135         CBra 1
1136         Any*
1137         X
1138         Alt
1139         ^
1140         B
1141         Ket
1142         Ket
1143         End
1144 ------------------------------------------------------------------
1145 Capturing subpattern count = 1
1146 No options
1147 First char at start or follows newline
1148 No need char
1149
1150 /(.*X|^B)/IDZs
1151 ------------------------------------------------------------------
1152         Bra
1153         CBra 1
1154         AllAny*
1155         X
1156         Alt
1157         ^
1158         B
1159         Ket
1160         Ket
1161         End
1162 ------------------------------------------------------------------
1163 Capturing subpattern count = 1
1164 Options: anchored dotall
1165 No first char
1166 No need char
1167
1168 /(?s)(.*X|^B)/IDZ
1169 ------------------------------------------------------------------
1170         Bra
1171         CBra 1
1172         AllAny*
1173         X
1174         Alt
1175         ^
1176         B
1177         Ket
1178         Ket
1179         End
1180 ------------------------------------------------------------------
1181 Capturing subpattern count = 1
1182 Options: anchored dotall
1183 No first char
1184 No need char
1185
1186 /(?s:.*X|^B)/IDZ
1187 ------------------------------------------------------------------
1188         Bra
1189         Bra
1190         AllAny*
1191         X
1192         Alt
1193         ^
1194         B
1195         Ket
1196         Ket
1197         End
1198 ------------------------------------------------------------------
1199 Capturing subpattern count = 0
1200 Options: anchored
1201 No first char
1202 No need char
1203
1204 /\Biss\B/I+
1205 Capturing subpattern count = 0
1206 Max lookbehind = 1
1207 No options
1208 First char = 'i'
1209 Need char = 's'
1210     Mississippi
1211  0: iss
1212  0+ issippi
1213
1214 /iss/IG+
1215 Capturing subpattern count = 0
1216 No options
1217 First char = 'i'
1218 Need char = 's'
1219     Mississippi
1220  0: iss
1221  0+ issippi
1222  0: iss
1223  0+ ippi
1224
1225 /\Biss\B/IG+
1226 Capturing subpattern count = 0
1227 Max lookbehind = 1
1228 No options
1229 First char = 'i'
1230 Need char = 's'
1231     Mississippi
1232  0: iss
1233  0+ issippi
1234
1235 /\Biss\B/Ig+
1236 Capturing subpattern count = 0
1237 Max lookbehind = 1
1238 No options
1239 First char = 'i'
1240 Need char = 's'
1241     Mississippi
1242  0: iss
1243  0+ issippi
1244  0: iss
1245  0+ ippi
1246     *** Failers
1247 No match
1248     Mississippi\A
1249 No match
1250
1251 /(?<=[Ms])iss/Ig+
1252 Capturing subpattern count = 0
1253 Max lookbehind = 1
1254 No options
1255 First char = 'i'
1256 Need char = 's'
1257     Mississippi
1258  0: iss
1259  0+ issippi
1260  0: iss
1261  0+ ippi
1262
1263 /(?<=[Ms])iss/IG+
1264 Capturing subpattern count = 0
1265 Max lookbehind = 1
1266 No options
1267 First char = 'i'
1268 Need char = 's'
1269     Mississippi
1270  0: iss
1271  0+ issippi
1272
1273 /^iss/Ig+
1274 Capturing subpattern count = 0
1275 Options: anchored
1276 No first char
1277 No need char
1278     ississippi
1279  0: iss
1280  0+ issippi
1281
1282 /.*iss/Ig+
1283 Capturing subpattern count = 0
1284 No options
1285 First char at start or follows newline
1286 Need char = 's'
1287     abciss\nxyzisspqr
1288  0: abciss
1289  0+ \x0axyzisspqr
1290  0: xyziss
1291  0+ pqr
1292
1293 /.i./I+g
1294 Capturing subpattern count = 0
1295 No options
1296 No first char
1297 Need char = 'i'
1298     Mississippi
1299  0: Mis
1300  0+ sissippi
1301  0: sis
1302  0+ sippi
1303  0: sip
1304  0+ pi
1305     Mississippi\A
1306  0: Mis
1307  0+ sissippi
1308  0: sis
1309  0+ sippi
1310  0: sip
1311  0+ pi
1312     Missouri river
1313  0: Mis
1314  0+ souri river
1315  0: ri 
1316  0+ river
1317  0: riv
1318  0+ er
1319     Missouri river\A
1320  0: Mis
1321  0+ souri river
1322
1323 /^.is/I+g
1324 Capturing subpattern count = 0
1325 Options: anchored
1326 No first char
1327 No need char
1328     Mississippi
1329  0: Mis
1330  0+ sissippi
1331
1332 /^ab\n/Ig+
1333 Capturing subpattern count = 0
1334 Contains explicit CR or LF match
1335 Options: anchored
1336 No first char
1337 No need char
1338     ab\nab\ncd
1339  0: ab\x0a
1340  0+ ab\x0acd
1341
1342 /^ab\n/Img+
1343 Capturing subpattern count = 0
1344 Contains explicit CR or LF match
1345 Options: multiline
1346 First char at start or follows newline
1347 Need char = \x0a
1348     ab\nab\ncd
1349  0: ab\x0a
1350  0+ ab\x0acd
1351  0: ab\x0a
1352  0+ cd
1353
1354 /abc/I
1355 Capturing subpattern count = 0
1356 No options
1357 First char = 'a'
1358 Need char = 'c'
1359
1360 /abc|bac/I
1361 Capturing subpattern count = 0
1362 No options
1363 No first char
1364 Need char = 'c'
1365
1366 /(abc|bac)/I
1367 Capturing subpattern count = 1
1368 No options
1369 No first char
1370 Need char = 'c'
1371
1372 /(abc|(c|dc))/I
1373 Capturing subpattern count = 2
1374 No options
1375 No first char
1376 Need char = 'c'
1377
1378 /(abc|(d|de)c)/I
1379 Capturing subpattern count = 2
1380 No options
1381 No first char
1382 Need char = 'c'
1383
1384 /a*/I
1385 Capturing subpattern count = 0
1386 May match empty string
1387 No options
1388 No first char
1389 No need char
1390
1391 /a+/I
1392 Capturing subpattern count = 0
1393 No options
1394 First char = 'a'
1395 No need char
1396
1397 /(baa|a+)/I
1398 Capturing subpattern count = 1
1399 No options
1400 No first char
1401 Need char = 'a'
1402
1403 /a{0,3}/I
1404 Capturing subpattern count = 0
1405 May match empty string
1406 No options
1407 No first char
1408 No need char
1409
1410 /baa{3,}/I
1411 Capturing subpattern count = 0
1412 No options
1413 First char = 'b'
1414 Need char = 'a'
1415
1416 /"([^\\"]+|\\.)*"/I
1417 Capturing subpattern count = 1
1418 No options
1419 First char = '"'
1420 Need char = '"'
1421
1422 /(abc|ab[cd])/I
1423 Capturing subpattern count = 1
1424 No options
1425 First char = 'a'
1426 No need char
1427
1428 /(a|.)/I
1429 Capturing subpattern count = 1
1430 No options
1431 No first char
1432 No need char
1433
1434 /a|ba|\w/I
1435 Capturing subpattern count = 0
1436 No options
1437 No first char
1438 No need char
1439
1440 /abc(?=pqr)/I
1441 Capturing subpattern count = 0
1442 No options
1443 First char = 'a'
1444 Need char = 'r'
1445
1446 /...(?<=abc)/I
1447 Capturing subpattern count = 0
1448 Max lookbehind = 3
1449 No options
1450 No first char
1451 No need char
1452
1453 /abc(?!pqr)/I
1454 Capturing subpattern count = 0
1455 No options
1456 First char = 'a'
1457 Need char = 'c'
1458
1459 /ab./I
1460 Capturing subpattern count = 0
1461 No options
1462 First char = 'a'
1463 Need char = 'b'
1464
1465 /ab[xyz]/I
1466 Capturing subpattern count = 0
1467 No options
1468 First char = 'a'
1469 Need char = 'b'
1470
1471 /abc*/I
1472 Capturing subpattern count = 0
1473 No options
1474 First char = 'a'
1475 Need char = 'b'
1476
1477 /ab.c*/I
1478 Capturing subpattern count = 0
1479 No options
1480 First char = 'a'
1481 Need char = 'b'
1482
1483 /a.c*/I
1484 Capturing subpattern count = 0
1485 No options
1486 First char = 'a'
1487 No need char
1488
1489 /.c*/I
1490 Capturing subpattern count = 0
1491 No options
1492 No first char
1493 No need char
1494
1495 /ac*/I
1496 Capturing subpattern count = 0
1497 No options
1498 First char = 'a'
1499 No need char
1500
1501 /(a.c*|b.c*)/I
1502 Capturing subpattern count = 1
1503 No options
1504 No first char
1505 No need char
1506
1507 /a.c*|aba/I
1508 Capturing subpattern count = 0
1509 No options
1510 First char = 'a'
1511 No need char
1512
1513 /.+a/I
1514 Capturing subpattern count = 0
1515 No options
1516 No first char
1517 Need char = 'a'
1518
1519 /(?=abcda)a.*/I
1520 Capturing subpattern count = 0
1521 No options
1522 First char = 'a'
1523 Need char = 'a'
1524
1525 /(?=a)a.*/I
1526 Capturing subpattern count = 0
1527 No options
1528 First char = 'a'
1529 No need char
1530
1531 /a(b)*/I
1532 Capturing subpattern count = 1
1533 No options
1534 First char = 'a'
1535 No need char
1536
1537 /a\d*/I
1538 Capturing subpattern count = 0
1539 No options
1540 First char = 'a'
1541 No need char
1542
1543 /ab\d*/I
1544 Capturing subpattern count = 0
1545 No options
1546 First char = 'a'
1547 Need char = 'b'
1548
1549 /a(\d)*/I
1550 Capturing subpattern count = 1
1551 No options
1552 First char = 'a'
1553 No need char
1554
1555 /abcde{0,0}/I
1556 Capturing subpattern count = 0
1557 No options
1558 First char = 'a'
1559 Need char = 'd'
1560
1561 /ab\d+/I
1562 Capturing subpattern count = 0
1563 No options
1564 First char = 'a'
1565 Need char = 'b'
1566
1567 /a(?(1)b)(.)/I
1568 Capturing subpattern count = 1
1569 No options
1570 First char = 'a'
1571 No need char
1572
1573 /a(?(1)bag|big)(.)/I
1574 Capturing subpattern count = 1
1575 No options
1576 First char = 'a'
1577 Need char = 'g'
1578
1579 /a(?(1)bag|big)*(.)/I
1580 Capturing subpattern count = 1
1581 No options
1582 First char = 'a'
1583 No need char
1584
1585 /a(?(1)bag|big)+(.)/I
1586 Capturing subpattern count = 1
1587 No options
1588 First char = 'a'
1589 Need char = 'g'
1590
1591 /a(?(1)b..|b..)(.)/I
1592 Capturing subpattern count = 1
1593 No options
1594 First char = 'a'
1595 Need char = 'b'
1596
1597 /ab\d{0}e/I
1598 Capturing subpattern count = 0
1599 No options
1600 First char = 'a'
1601 Need char = 'e'
1602
1603 /a?b?/I
1604 Capturing subpattern count = 0
1605 May match empty string
1606 No options
1607 No first char
1608 No need char
1609     a
1610  0: a
1611     b
1612  0: b
1613     ab
1614  0: ab
1615     \
1616  0: 
1617     *** Failers
1618  0: 
1619     \N
1620 No match
1621
1622 /|-/I
1623 Capturing subpattern count = 0
1624 May match empty string
1625 No options
1626 No first char
1627 No need char
1628     abcd
1629  0: 
1630     -abc
1631  0: 
1632     \Nab-c
1633  0: -
1634     *** Failers
1635  0: 
1636     \Nabc
1637 No match
1638
1639 /^.?abcd/IS
1640 Capturing subpattern count = 0
1641 Options: anchored
1642 No first char
1643 Need char = 'd'
1644 Subject length lower bound = 4
1645 No starting char list
1646
1647 /\(             # ( at start
1648   (?:           # Non-capturing bracket
1649   (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
1650   |             # Or
1651   (?R)          # Recurse - i.e. nested bracketed string
1652   )*            # Zero or more contents
1653   \)            # Closing )
1654   /Ix
1655 Capturing subpattern count = 0
1656 Options: extended
1657 First char = '('
1658 Need char = ')'
1659     (abcd)
1660  0: (abcd)
1661     (abcd)xyz
1662  0: (abcd)
1663     xyz(abcd)
1664  0: (abcd)
1665     (ab(xy)cd)pqr
1666  0: (ab(xy)cd)
1667     (ab(xycd)pqr
1668  0: (xycd)
1669     () abc ()
1670  0: ()
1671     12(abcde(fsh)xyz(foo(bar))lmno)89
1672  0: (abcde(fsh)xyz(foo(bar))lmno)
1673     *** Failers
1674 No match
1675     abcd
1676 No match
1677     abcd)
1678 No match
1679     (abcd
1680 No match
1681
1682 /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1683 Capturing subpattern count = 1
1684 Options: extended
1685 First char = '('
1686 Need char = ')'
1687     (ab(xy)cd)pqr
1688  0: (ab(xy)cd)
1689  1: cd
1690     1(abcd)(x(y)z)pqr
1691  0: (abcd)
1692  1: abcd
1693  0: (x(y)z)
1694  1: z
1695
1696 /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1697 Capturing subpattern count = 0
1698 Options: extended
1699 First char = '('
1700 Need char = ')'
1701     (abcd)
1702  0: (abcd)
1703     (ab(xy)cd)
1704  0: (xy)
1705     (a(b(c)d)e)
1706  0: (c)
1707     ((ab))
1708  0: ((ab))
1709     *** Failers
1710 No match
1711     ()
1712 No match
1713
1714 /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1715 Capturing subpattern count = 0
1716 Options: extended
1717 First char = '('
1718 Need char = ')'
1719     ()
1720  0: ()
1721     12(abcde(fsh)xyz(foo(bar))lmno)89
1722  0: (fsh)
1723
1724 /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1725 Capturing subpattern count = 1
1726 Options: extended
1727 First char = '('
1728 Need char = ')'
1729     (ab(xy)cd)
1730  0: (ab(xy)cd)
1731  1: cd
1732
1733 /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1734 Capturing subpattern count = 2
1735 Options: extended
1736 First char = '('
1737 Need char = ')'
1738     (ab(xy)cd)
1739  0: (ab(xy)cd)
1740  1: ab(xy)cd
1741  2: cd
1742
1743 /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1744 Capturing subpattern count = 3
1745 Options: extended
1746 First char = '('
1747 Need char = ')'
1748     (ab(xy)cd)
1749  0: (ab(xy)cd)
1750  1: <unset>
1751  2: ab(xy)cd
1752  3: cd
1753     (123ab(xy)cd)
1754  0: (123ab(xy)cd)
1755  1: 123
1756  2: ab(xy)cd
1757  3: cd
1758
1759 /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1760 Capturing subpattern count = 3
1761 Options: extended
1762 First char = '('
1763 Need char = ')'
1764     (ab(xy)cd)
1765  0: (ab(xy)cd)
1766  1: ab(xy)cd
1767  2: <unset>
1768  3: cd
1769     (123ab(xy)cd)
1770  0: (123ab(xy)cd)
1771  1: 123ab(xy)cd
1772  2: 123
1773  3: cd
1774
1775 /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1776 Capturing subpattern count = 11
1777 Options: extended
1778 First char = '('
1779 Need char = ')'
1780     (ab(xy)cd)
1781  0: (ab(xy)cd)
1782  1: ab(xy)cd
1783  2: ab(xy)cd
1784  3: ab(xy)cd
1785  4: ab(xy)cd
1786  5: ab(xy)cd
1787  6: ab(xy)cd
1788  7: ab(xy)cd
1789  8: ab(xy)cd
1790  9: ab(xy)cd
1791 10: ab(xy)cd
1792 11: cd
1793
1794 /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1795 Capturing subpattern count = 3
1796 Options: extended
1797 First char = '('
1798 Need char = ')'
1799     (abcd(xyz<p>qrs)123)
1800  0: (abcd(xyz<p>qrs)123)
1801  1: abcd(xyz<p>qrs)123
1802  2: 123
1803
1804 /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1805 Capturing subpattern count = 3
1806 Options: extended
1807 First char = '('
1808 Need char = ')'
1809     (ab(cd)ef)
1810  0: (ab(cd)ef)
1811  1: ab(cd)ef
1812  2: ef
1813  3: (cd)
1814     (ab(cd(ef)gh)ij)
1815  0: (ab(cd(ef)gh)ij)
1816  1: ab(cd(ef)gh)ij
1817  2: ij
1818  3: (cd(ef)gh)
1819
1820 /^[[:alnum:]]/DZ
1821 ------------------------------------------------------------------
1822         Bra
1823         ^
1824         [0-9A-Za-z]
1825         Ket
1826         End
1827 ------------------------------------------------------------------
1828 Capturing subpattern count = 0
1829 Options: anchored
1830 No first char
1831 No need char
1832
1833 /^[[:^alnum:]]/DZ
1834 ------------------------------------------------------------------
1835         Bra
1836         ^
1837         [\x00-/:-@[-`{-\xff] (neg)
1838         Ket
1839         End
1840 ------------------------------------------------------------------
1841 Capturing subpattern count = 0
1842 Options: anchored
1843 No first char
1844 No need char
1845
1846 /^[[:alpha:]]/DZ
1847 ------------------------------------------------------------------
1848         Bra
1849         ^
1850         [A-Za-z]
1851         Ket
1852         End
1853 ------------------------------------------------------------------
1854 Capturing subpattern count = 0
1855 Options: anchored
1856 No first char
1857 No need char
1858
1859 /^[[:^alpha:]]/DZ
1860 ------------------------------------------------------------------
1861         Bra
1862         ^
1863         [\x00-@[-`{-\xff] (neg)
1864         Ket
1865         End
1866 ------------------------------------------------------------------
1867 Capturing subpattern count = 0
1868 Options: anchored
1869 No first char
1870 No need char
1871
1872 /[_[:alpha:]]/IS
1873 Capturing subpattern count = 0
1874 No options
1875 No first char
1876 No need char
1877 Subject length lower bound = 1
1878 Starting chars: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
1879   _ a b c d e f g h i j k l m n o p q r s t u v w x y z 
1880
1881 /^[[:ascii:]]/DZ
1882 ------------------------------------------------------------------
1883         Bra
1884         ^
1885         [\x00-\x7f]
1886         Ket
1887         End
1888 ------------------------------------------------------------------
1889 Capturing subpattern count = 0
1890 Options: anchored
1891 No first char
1892 No need char
1893
1894 /^[[:^ascii:]]/DZ
1895 ------------------------------------------------------------------
1896         Bra
1897         ^
1898         [\x80-\xff] (neg)
1899         Ket
1900         End
1901 ------------------------------------------------------------------
1902 Capturing subpattern count = 0
1903 Options: anchored
1904 No first char
1905 No need char
1906
1907 /^[[:blank:]]/DZ
1908 ------------------------------------------------------------------
1909         Bra
1910         ^
1911         [\x09 ]
1912         Ket
1913         End
1914 ------------------------------------------------------------------
1915 Capturing subpattern count = 0
1916 Options: anchored
1917 No first char
1918 No need char
1919
1920 /^[[:^blank:]]/DZ
1921 ------------------------------------------------------------------
1922         Bra
1923         ^
1924         [\x00-\x08\x0a-\x1f!-\xff] (neg)
1925         Ket
1926         End
1927 ------------------------------------------------------------------
1928 Capturing subpattern count = 0
1929 Options: anchored
1930 No first char
1931 No need char
1932
1933 /[\n\x0b\x0c\x0d[:blank:]]/IS
1934 Capturing subpattern count = 0
1935 Contains explicit CR or LF match
1936 No options
1937 No first char
1938 No need char
1939 Subject length lower bound = 1
1940 Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 
1941
1942 /^[[:cntrl:]]/DZ
1943 ------------------------------------------------------------------
1944         Bra
1945         ^
1946         [\x00-\x1f\x7f]
1947         Ket
1948         End
1949 ------------------------------------------------------------------
1950 Capturing subpattern count = 0
1951 Options: anchored
1952 No first char
1953 No need char
1954
1955 /^[[:digit:]]/DZ
1956 ------------------------------------------------------------------
1957         Bra
1958         ^
1959         [0-9]
1960         Ket
1961         End
1962 ------------------------------------------------------------------
1963 Capturing subpattern count = 0
1964 Options: anchored
1965 No first char
1966 No need char
1967
1968 /^[[:graph:]]/DZ
1969 ------------------------------------------------------------------
1970         Bra
1971         ^
1972         [!-~]
1973         Ket
1974         End
1975 ------------------------------------------------------------------
1976 Capturing subpattern count = 0
1977 Options: anchored
1978 No first char
1979 No need char
1980
1981 /^[[:lower:]]/DZ
1982 ------------------------------------------------------------------
1983         Bra
1984         ^
1985         [a-z]
1986         Ket
1987         End
1988 ------------------------------------------------------------------
1989 Capturing subpattern count = 0
1990 Options: anchored
1991 No first char
1992 No need char
1993
1994 /^[[:print:]]/DZ
1995 ------------------------------------------------------------------
1996         Bra
1997         ^
1998         [ -~]
1999         Ket
2000         End
2001 ------------------------------------------------------------------
2002 Capturing subpattern count = 0
2003 Options: anchored
2004 No first char
2005 No need char
2006
2007 /^[[:punct:]]/DZ
2008 ------------------------------------------------------------------
2009         Bra
2010         ^
2011         [!-/:-@[-`{-~]
2012         Ket
2013         End
2014 ------------------------------------------------------------------
2015 Capturing subpattern count = 0
2016 Options: anchored
2017 No first char
2018 No need char
2019
2020 /^[[:space:]]/DZ
2021 ------------------------------------------------------------------
2022         Bra
2023         ^
2024         [\x09-\x0d ]
2025         Ket
2026         End
2027 ------------------------------------------------------------------
2028 Capturing subpattern count = 0
2029 Options: anchored
2030 No first char
2031 No need char
2032
2033 /^[[:upper:]]/DZ
2034 ------------------------------------------------------------------
2035         Bra
2036         ^
2037         [A-Z]
2038         Ket
2039         End
2040 ------------------------------------------------------------------
2041 Capturing subpattern count = 0
2042 Options: anchored
2043 No first char
2044 No need char
2045
2046 /^[[:xdigit:]]/DZ
2047 ------------------------------------------------------------------
2048         Bra
2049         ^
2050         [0-9A-Fa-f]
2051         Ket
2052         End
2053 ------------------------------------------------------------------
2054 Capturing subpattern count = 0
2055 Options: anchored
2056 No first char
2057 No need char
2058
2059 /^[[:word:]]/DZ
2060 ------------------------------------------------------------------
2061         Bra
2062         ^
2063         [0-9A-Z_a-z]
2064         Ket
2065         End
2066 ------------------------------------------------------------------
2067 Capturing subpattern count = 0
2068 Options: anchored
2069 No first char
2070 No need char
2071
2072 /^[[:^cntrl:]]/DZ
2073 ------------------------------------------------------------------
2074         Bra
2075         ^
2076         [ -~\x80-\xff] (neg)
2077         Ket
2078         End
2079 ------------------------------------------------------------------
2080 Capturing subpattern count = 0
2081 Options: anchored
2082 No first char
2083 No need char
2084
2085 /^[12[:^digit:]]/DZ
2086 ------------------------------------------------------------------
2087         Bra
2088         ^
2089         [\x00-/12:-\xff] (neg)
2090         Ket
2091         End
2092 ------------------------------------------------------------------
2093 Capturing subpattern count = 0
2094 Options: anchored
2095 No first char
2096 No need char
2097
2098 /^[[:^blank:]]/DZ
2099 ------------------------------------------------------------------
2100         Bra
2101         ^
2102         [\x00-\x08\x0a-\x1f!-\xff] (neg)
2103         Ket
2104         End
2105 ------------------------------------------------------------------
2106 Capturing subpattern count = 0
2107 Options: anchored
2108 No first char
2109 No need char
2110
2111 /[01[:alpha:]%]/DZ
2112 ------------------------------------------------------------------
2113         Bra
2114         [%01A-Za-z]
2115         Ket
2116         End
2117 ------------------------------------------------------------------
2118 Capturing subpattern count = 0
2119 No options
2120 No first char
2121 No need char
2122
2123 /[[.ch.]]/I
2124 Failed: POSIX collating elements are not supported at offset 1
2125
2126 /[[=ch=]]/I
2127 Failed: POSIX collating elements are not supported at offset 1
2128
2129 /[[:rhubarb:]]/I
2130 Failed: unknown POSIX class name at offset 3
2131
2132 /[[:upper:]]/Ii
2133 Capturing subpattern count = 0
2134 Options: caseless
2135 No first char
2136 No need char
2137     A
2138  0: A
2139     a
2140  0: a
2141
2142 /[[:lower:]]/Ii
2143 Capturing subpattern count = 0
2144 Options: caseless
2145 No first char
2146 No need char
2147     A
2148  0: A
2149     a
2150  0: a
2151
2152 /((?-i)[[:lower:]])[[:lower:]]/Ii
2153 Capturing subpattern count = 1
2154 Options: caseless
2155 No first char
2156 No need char
2157     ab
2158  0: ab
2159  1: a
2160     aB
2161  0: aB
2162  1: a
2163     *** Failers
2164  0: ai
2165  1: a
2166     Ab
2167 No match
2168     AB
2169 No match
2170
2171 /[\200-\110]/I
2172 Failed: range out of order in character class at offset 9
2173
2174 /^(?(0)f|b)oo/I
2175 Failed: invalid condition (?(0) at offset 6
2176
2177 /This one's here because of the large output vector needed/I
2178 Capturing subpattern count = 0
2179 No options
2180 First char = 'T'
2181 Need char = 'd'
2182
2183 /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2184 Capturing subpattern count = 271
2185 Max back reference = 270
2186 No options
2187 No first char
2188 No need char
2189     \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
2190  0: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
2191  1: 1 
2192  2: 2 
2193  3: 3 
2194  4: 4 
2195  5: 5 
2196  6: 6 
2197  7: 7 
2198  8: 8 
2199  9: 9 
2200 10: 10 
2201 11: 11 
2202 12: 12 
2203 13: 13 
2204 14: 14 
2205 15: 15 
2206 16: 16 
2207 17: 17 
2208 18: 18 
2209 19: 19 
2210 20: 20 
2211 21: 21 
2212 22: 22 
2213 23: 23 
2214 24: 24 
2215 25: 25 
2216 26: 26 
2217 27: 27 
2218 28: 28 
2219 29: 29 
2220 30: 30 
2221 31: 31 
2222 32: 32 
2223 33: 33 
2224 34: 34 
2225 35: 35 
2226 36: 36 
2227 37: 37 
2228 38: 38 
2229 39: 39 
2230 40: 40 
2231 41: 41 
2232 42: 42 
2233 43: 43 
2234 44: 44 
2235 45: 45 
2236 46: 46 
2237 47: 47 
2238 48: 48 
2239 49: 49 
2240 50: 50 
2241 51: 51 
2242 52: 52 
2243 53: 53 
2244 54: 54 
2245 55: 55 
2246 56: 56 
2247 57: 57 
2248 58: 58 
2249 59: 59 
2250 60: 60 
2251 61: 61 
2252 62: 62 
2253 63: 63 
2254 64: 64 
2255 65: 65 
2256 66: 66 
2257 67: 67 
2258 68: 68 
2259 69: 69 
2260 70: 70 
2261 71: 71 
2262 72: 72 
2263 73: 73 
2264 74: 74 
2265 75: 75 
2266 76: 76 
2267 77: 77 
2268 78: 78 
2269 79: 79 
2270 80: 80 
2271 81: 81 
2272 82: 82 
2273 83: 83 
2274 84: 84 
2275 85: 85 
2276 86: 86 
2277 87: 87 
2278 88: 88 
2279 89: 89 
2280 90: 90 
2281 91: 91 
2282 92: 92 
2283 93: 93 
2284 94: 94 
2285 95: 95 
2286 96: 96 
2287 97: 97 
2288 98: 98 
2289 99: 99 
2290 100: 100 
2291 101: 101 
2292 102: 102 
2293 103: 103 
2294 104: 104 
2295 105: 105 
2296 106: 106 
2297 107: 107 
2298 108: 108 
2299 109: 109 
2300 110: 110 
2301 111: 111 
2302 112: 112 
2303 113: 113 
2304 114: 114 
2305 115: 115 
2306 116: 116 
2307 117: 117 
2308 118: 118 
2309 119: 119 
2310 120: 120 
2311 121: 121 
2312 122: 122 
2313 123: 123 
2314 124: 124 
2315 125: 125 
2316 126: 126 
2317 127: 127 
2318 128: 128 
2319 129: 129 
2320 130: 130 
2321 131: 131 
2322 132: 132 
2323 133: 133 
2324 134: 134 
2325 135: 135 
2326 136: 136 
2327 137: 137 
2328 138: 138 
2329 139: 139 
2330 140: 140 
2331 141: 141 
2332 142: 142 
2333 143: 143 
2334 144: 144 
2335 145: 145 
2336 146: 146 
2337 147: 147 
2338 148: 148 
2339 149: 149 
2340 150: 150 
2341 151: 151 
2342 152: 152 
2343 153: 153 
2344 154: 154 
2345 155: 155 
2346 156: 156 
2347 157: 157 
2348 158: 158 
2349 159: 159 
2350 160: 160 
2351 161: 161 
2352 162: 162 
2353 163: 163 
2354 164: 164 
2355 165: 165 
2356 166: 166 
2357 167: 167 
2358 168: 168 
2359 169: 169 
2360 170: 170 
2361 171: 171 
2362 172: 172 
2363 173: 173 
2364 174: 174 
2365 175: 175 
2366 176: 176 
2367 177: 177 
2368 178: 178 
2369 179: 179 
2370 180: 180 
2371 181: 181 
2372 182: 182 
2373 183: 183 
2374 184: 184 
2375 185: 185 
2376 186: 186 
2377 187: 187 
2378 188: 188 
2379 189: 189 
2380 190: 190 
2381 191: 191 
2382 192: 192 
2383 193: 193 
2384 194: 194 
2385 195: 195 
2386 196: 196 
2387 197: 197 
2388 198: 198 
2389 199: 199 
2390 200: 200 
2391 201: 201 
2392 202: 202 
2393 203: 203 
2394 204: 204 
2395 205: 205 
2396 206: 206 
2397 207: 207 
2398 208: 208 
2399 209: 209 
2400 210: 210 
2401 211: 211 
2402 212: 212 
2403 213: 213 
2404 214: 214 
2405 215: 215 
2406 216: 216 
2407 217: 217 
2408 218: 218 
2409 219: 219 
2410 220: 220 
2411 221: 221 
2412 222: 222 
2413 223: 223 
2414 224: 224 
2415 225: 225 
2416 226: 226 
2417 227: 227 
2418 228: 228 
2419 229: 229 
2420 230: 230 
2421 231: 231 
2422 232: 232 
2423 233: 233 
2424 234: 234 
2425 235: 235 
2426 236: 236 
2427 237: 237 
2428 238: 238 
2429 239: 239 
2430 240: 240 
2431 241: 241 
2432 242: 242 
2433 243: 243 
2434 244: 244 
2435 245: 245 
2436 246: 246 
2437 247: 247 
2438 248: 248 
2439 249: 249 
2440 250: 250 
2441 251: 251 
2442 252: 252 
2443 253: 253 
2444 254: 254 
2445 255: 255 
2446 256: 256 
2447 257: 257 
2448 258: 258 
2449 259: 259 
2450 260: 260 
2451 261: 261 
2452 262: 262 
2453 263: 263 
2454 264: 264 
2455 265: 265 
2456 266: 266 
2457 267: 267 
2458 268: 268 
2459 269: 269 
2460 270: ABC
2461 271: ABC
2462
2463 /This one's here because Perl does this differently and PCRE can't at present/I
2464 Capturing subpattern count = 0
2465 No options
2466 First char = 'T'
2467 Need char = 't'
2468
2469 /(main(O)?)+/I
2470 Capturing subpattern count = 2
2471 No options
2472 First char = 'm'
2473 Need char = 'n'
2474     mainmain
2475  0: mainmain
2476  1: main
2477     mainOmain
2478  0: mainOmain
2479  1: main
2480  2: O
2481
2482 /These are all cases where Perl does it differently (nested captures)/I
2483 Capturing subpattern count = 1
2484 No options
2485 First char = 'T'
2486 Need char = 's'
2487
2488 /^(a(b)?)+$/I
2489 Capturing subpattern count = 2
2490 Options: anchored
2491 No first char
2492 No need char
2493     aba
2494  0: aba
2495  1: a
2496  2: b
2497
2498 /^(aa(bb)?)+$/I
2499 Capturing subpattern count = 2
2500 Options: anchored
2501 No first char
2502 No need char
2503     aabbaa
2504  0: aabbaa
2505  1: aa
2506  2: bb
2507
2508 /^(aa|aa(bb))+$/I
2509 Capturing subpattern count = 2
2510 Options: anchored
2511 No first char
2512 No need char
2513     aabbaa
2514  0: aabbaa
2515  1: aa
2516  2: bb
2517
2518 /^(aa(bb)??)+$/I
2519 Capturing subpattern count = 2
2520 Options: anchored
2521 No first char
2522 No need char
2523     aabbaa
2524  0: aabbaa
2525  1: aa
2526  2: bb
2527
2528 /^(?:aa(bb)?)+$/I
2529 Capturing subpattern count = 1
2530 Options: anchored
2531 No first char
2532 No need char
2533     aabbaa
2534  0: aabbaa
2535  1: bb
2536
2537 /^(aa(b(b))?)+$/I
2538 Capturing subpattern count = 3
2539 Options: anchored
2540 No first char
2541 No need char
2542     aabbaa
2543  0: aabbaa
2544  1: aa
2545  2: bb
2546  3: b
2547
2548 /^(?:aa(b(b))?)+$/I
2549 Capturing subpattern count = 2
2550 Options: anchored
2551 No first char
2552 No need char
2553     aabbaa
2554  0: aabbaa
2555  1: bb
2556  2: b
2557
2558 /^(?:aa(b(?:b))?)+$/I
2559 Capturing subpattern count = 1
2560 Options: anchored
2561 No first char
2562 No need char
2563     aabbaa
2564  0: aabbaa
2565  1: bb
2566
2567 /^(?:aa(bb(?:b))?)+$/I
2568 Capturing subpattern count = 1
2569 Options: anchored
2570 No first char
2571 No need char
2572     aabbbaa
2573  0: aabbbaa
2574  1: bbb
2575
2576 /^(?:aa(b(?:bb))?)+$/I
2577 Capturing subpattern count = 1
2578 Options: anchored
2579 No first char
2580 No need char
2581     aabbbaa
2582  0: aabbbaa
2583  1: bbb
2584
2585 /^(?:aa(?:b(b))?)+$/I
2586 Capturing subpattern count = 1
2587 Options: anchored
2588 No first char
2589 No need char
2590     aabbaa
2591  0: aabbaa
2592  1: b
2593
2594 /^(?:aa(?:b(bb))?)+$/I
2595 Capturing subpattern count = 1
2596 Options: anchored
2597 No first char
2598 No need char
2599     aabbbaa
2600  0: aabbbaa
2601  1: bb
2602
2603 /^(aa(b(bb))?)+$/I
2604 Capturing subpattern count = 3
2605 Options: anchored
2606 No first char
2607 No need char
2608     aabbbaa
2609  0: aabbbaa
2610  1: aa
2611  2: bbb
2612  3: bb
2613
2614 /^(aa(bb(bb))?)+$/I
2615 Capturing subpattern count = 3
2616 Options: anchored
2617 No first char
2618 No need char
2619     aabbbbaa
2620  0: aabbbbaa
2621  1: aa
2622  2: bbbb
2623  3: bb
2624
2625 /--------------------------------------------------------------------/I
2626 Capturing subpattern count = 0
2627 No options
2628 First char = '-'
2629 Need char = '-'
2630
2631 /#/IxDZ
2632 ------------------------------------------------------------------
2633         Bra
2634         Ket
2635         End
2636 ------------------------------------------------------------------
2637 Capturing subpattern count = 0
2638 May match empty string
2639 Options: extended
2640 No first char
2641 No need char
2642
2643 /a#/IxDZ
2644 ------------------------------------------------------------------
2645         Bra
2646         a
2647         Ket
2648         End
2649 ------------------------------------------------------------------
2650 Capturing subpattern count = 0
2651 Options: extended
2652 First char = 'a'
2653 No need char
2654
2655 /[\s]/DZ
2656 ------------------------------------------------------------------
2657         Bra
2658         [\x09-\x0d ]
2659         Ket
2660         End
2661 ------------------------------------------------------------------
2662 Capturing subpattern count = 0
2663 No options
2664 No first char
2665 No need char
2666
2667 /[\S]/DZ
2668 ------------------------------------------------------------------
2669         Bra
2670         [\x00-\x08\x0e-\x1f!-\xff] (neg)
2671         Ket
2672         End
2673 ------------------------------------------------------------------
2674 Capturing subpattern count = 0
2675 No options
2676 No first char
2677 No need char
2678
2679 /a(?i)b/DZ
2680 ------------------------------------------------------------------
2681         Bra
2682         a
2683      /i b
2684         Ket
2685         End
2686 ------------------------------------------------------------------
2687 Capturing subpattern count = 0
2688 No options
2689 First char = 'a'
2690 Need char = 'b' (caseless)
2691     ab
2692  0: ab
2693     aB
2694  0: aB
2695     *** Failers
2696 No match
2697     AB
2698 No match
2699
2700 /(a(?i)b)/DZ
2701 ------------------------------------------------------------------
2702         Bra
2703         CBra 1
2704         a
2705      /i b
2706         Ket
2707         Ket
2708         End
2709 ------------------------------------------------------------------
2710 Capturing subpattern count = 1
2711 No options
2712 First char = 'a'
2713 Need char = 'b' (caseless)
2714     ab
2715  0: ab
2716  1: ab
2717     aB
2718  0: aB
2719  1: aB
2720     *** Failers
2721 No match
2722     AB
2723 No match
2724
2725 /   (?i)abc/IxDZ
2726 ------------------------------------------------------------------
2727         Bra
2728      /i abc
2729         Ket
2730         End
2731 ------------------------------------------------------------------
2732 Capturing subpattern count = 0
2733 Options: caseless extended
2734 First char = 'a' (caseless)
2735 Need char = 'c' (caseless)
2736
2737 /#this is a comment
2738   (?i)abc/IxDZ
2739 ------------------------------------------------------------------
2740         Bra
2741      /i abc
2742         Ket
2743         End
2744 ------------------------------------------------------------------
2745 Capturing subpattern count = 0
2746 Options: caseless extended
2747 First char = 'a' (caseless)
2748 Need char = 'c' (caseless)
2749
2750 /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2751 ------------------------------------------------------------------
2752         Bra
2753         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2754         Ket
2755         End
2756 ------------------------------------------------------------------
2757 Capturing subpattern count = 0
2758 No options
2759 First char = '1'
2760 Need char = '0'
2761
2762 /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2763 ------------------------------------------------------------------
2764         Bra
2765         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2766         Ket
2767         End
2768 ------------------------------------------------------------------
2769 Capturing subpattern count = 0
2770 No options
2771 First char = '1'
2772 Need char = '0'
2773
2774 /\Q\E/DZ
2775 ------------------------------------------------------------------
2776         Bra
2777         Ket
2778         End
2779 ------------------------------------------------------------------
2780 Capturing subpattern count = 0
2781 May match empty string
2782 No options
2783 No first char
2784 No need char
2785     \
2786  0: 
2787
2788 /\Q\Ex/DZ
2789 ------------------------------------------------------------------
2790         Bra
2791         x
2792         Ket
2793         End
2794 ------------------------------------------------------------------
2795 Capturing subpattern count = 0
2796 No options
2797 First char = 'x'
2798 No need char
2799
2800 / \Q\E/DZ
2801 ------------------------------------------------------------------
2802         Bra
2803          
2804         Ket
2805         End
2806 ------------------------------------------------------------------
2807 Capturing subpattern count = 0
2808 No options
2809 First char = ' '
2810 No need char
2811
2812 /a\Q\E/DZ
2813 ------------------------------------------------------------------
2814         Bra
2815         a
2816         Ket
2817         End
2818 ------------------------------------------------------------------
2819 Capturing subpattern count = 0
2820 No options
2821 First char = 'a'
2822 No need char
2823   abc
2824  0: a
2825   bca
2826  0: a
2827   bac
2828  0: a
2829
2830 /a\Q\Eb/DZ
2831 ------------------------------------------------------------------
2832         Bra
2833         ab
2834         Ket
2835         End
2836 ------------------------------------------------------------------
2837 Capturing subpattern count = 0
2838 No options
2839 First char = 'a'
2840 Need char = 'b'
2841   abc
2842  0: ab
2843
2844 /\Q\Eabc/DZ
2845 ------------------------------------------------------------------
2846         Bra
2847         abc
2848         Ket
2849         End
2850 ------------------------------------------------------------------
2851 Capturing subpattern count = 0
2852 No options
2853 First char = 'a'
2854 Need char = 'c'
2855
2856 /x*+\w/DZ
2857 ------------------------------------------------------------------
2858         Bra
2859         x*+
2860         \w
2861         Ket
2862         End
2863 ------------------------------------------------------------------
2864 Capturing subpattern count = 0
2865 No options
2866 No first char
2867 No need char
2868     *** Failers
2869  0: F
2870     xxxxx
2871 No match
2872
2873 /x?+/DZ
2874 ------------------------------------------------------------------
2875         Bra
2876         x?+
2877         Ket
2878         End
2879 ------------------------------------------------------------------
2880 Capturing subpattern count = 0
2881 May match empty string
2882 No options
2883 No first char
2884 No need char
2885
2886 /x++/DZ
2887 ------------------------------------------------------------------
2888         Bra
2889         x++
2890         Ket
2891         End
2892 ------------------------------------------------------------------
2893 Capturing subpattern count = 0
2894 No options
2895 First char = 'x'
2896 No need char
2897
2898 /x{1,3}+/BZO
2899 ------------------------------------------------------------------
2900         Bra
2901         x
2902         x{0,2}+
2903         Ket
2904         End
2905 ------------------------------------------------------------------
2906
2907 /x{1,3}+/BZOi
2908 ------------------------------------------------------------------
2909         Bra
2910      /i x
2911      /i x{0,2}+
2912         Ket
2913         End
2914 ------------------------------------------------------------------
2915
2916 /[^x]{1,3}+/BZO
2917 ------------------------------------------------------------------
2918         Bra
2919         [^x]
2920         [^x]{0,2}+
2921         Ket
2922         End
2923 ------------------------------------------------------------------
2924
2925 /[^x]{1,3}+/BZOi
2926 ------------------------------------------------------------------
2927         Bra
2928      /i [^x]
2929      /i [^x]{0,2}+
2930         Ket
2931         End
2932 ------------------------------------------------------------------
2933
2934 /(x)*+/DZ
2935 ------------------------------------------------------------------
2936         Bra
2937         Braposzero
2938         CBraPos 1
2939         x
2940         KetRpos
2941         Ket
2942         End
2943 ------------------------------------------------------------------
2944 Capturing subpattern count = 1
2945 May match empty string
2946 No options
2947 No first char
2948 No need char
2949
2950 /^(\w++|\s++)*$/I
2951 Capturing subpattern count = 1
2952 May match empty string
2953 Options: anchored
2954 No first char
2955 No need char
2956     now is the time for all good men to come to the aid of the party
2957  0: now is the time for all good men to come to the aid of the party
2958  1: party
2959     *** Failers
2960 No match
2961     this is not a line with only words and spaces!
2962 No match
2963
2964 /(\d++)(\w)/I
2965 Capturing subpattern count = 2
2966 No options
2967 No first char
2968 No need char
2969     12345a
2970  0: 12345a
2971  1: 12345
2972  2: a
2973     *** Failers
2974 No match
2975     12345+
2976 No match
2977
2978 /a++b/I
2979 Capturing subpattern count = 0
2980 No options
2981 First char = 'a'
2982 Need char = 'b'
2983     aaab
2984  0: aaab
2985
2986 /(a++b)/I
2987 Capturing subpattern count = 1
2988 No options
2989 First char = 'a'
2990 Need char = 'b'
2991     aaab
2992  0: aaab
2993  1: aaab
2994
2995 /(a++)b/I
2996 Capturing subpattern count = 1
2997 No options
2998 First char = 'a'
2999 Need char = 'b'
3000     aaab
3001  0: aaab
3002  1: aaa
3003
3004 /([^()]++|\([^()]*\))+/I
3005 Capturing subpattern count = 1
3006 No options
3007 No first char
3008 No need char
3009     ((abc(ade)ufh()()x
3010  0: abc(ade)ufh()()x
3011  1: x
3012
3013 /\(([^()]++|\([^()]+\))+\)/I
3014 Capturing subpattern count = 1
3015 No options
3016 First char = '('
3017 Need char = ')'
3018     (abc)
3019  0: (abc)
3020  1: abc
3021     (abc(def)xyz)
3022  0: (abc(def)xyz)
3023  1: xyz
3024     *** Failers
3025 No match
3026     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3027 No match
3028
3029 /(abc){1,3}+/DZ
3030 ------------------------------------------------------------------
3031         Bra
3032         Once
3033         CBra 1
3034         abc
3035         Ket
3036         Brazero
3037         Bra
3038         CBra 1
3039         abc
3040         Ket
3041         Brazero
3042         CBra 1
3043         abc
3044         Ket
3045         Ket
3046         Ket
3047         Ket
3048         End
3049 ------------------------------------------------------------------
3050 Capturing subpattern count = 1
3051 No options
3052 First char = 'a'
3053 Need char = 'c'
3054
3055 /a+?+/I
3056 Failed: nothing to repeat at offset 3
3057
3058 /a{2,3}?+b/I
3059 Failed: nothing to repeat at offset 7
3060
3061 /(?U)a+?+/I
3062 Failed: nothing to repeat at offset 7
3063
3064 /a{2,3}?+b/IU
3065 Failed: nothing to repeat at offset 7
3066
3067 /x(?U)a++b/DZ
3068 ------------------------------------------------------------------
3069         Bra
3070         x
3071         a++
3072         b
3073         Ket
3074         End
3075 ------------------------------------------------------------------
3076 Capturing subpattern count = 0
3077 No options
3078 First char = 'x'
3079 Need char = 'b'
3080     xaaaab
3081  0: xaaaab
3082
3083 /(?U)xa++b/DZ
3084 ------------------------------------------------------------------
3085         Bra
3086         x
3087         a++
3088         b
3089         Ket
3090         End
3091 ------------------------------------------------------------------
3092 Capturing subpattern count = 0
3093 Options: ungreedy
3094 First char = 'x'
3095 Need char = 'b'
3096     xaaaab
3097  0: xaaaab
3098
3099 /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3100 ------------------------------------------------------------------
3101         Bra
3102         ^
3103         CBra 1
3104         CBra 2
3105         a+
3106         Ket
3107         CBra 3
3108         [ab]+?
3109         Ket
3110         CBra 4
3111         [bc]+
3112         Ket
3113         CBra 5
3114         \w*+
3115         Ket
3116         Ket
3117         Ket
3118         End
3119 ------------------------------------------------------------------
3120 Capturing subpattern count = 5
3121 Options: anchored
3122 No first char
3123 No need char
3124
3125 /^x(?U)a+b/DZ
3126 ------------------------------------------------------------------
3127         Bra
3128         ^
3129         x
3130         a++
3131         b
3132         Ket
3133         End
3134 ------------------------------------------------------------------
3135 Capturing subpattern count = 0
3136 Options: anchored
3137 No first char
3138 Need char = 'b'
3139
3140 /^x(?U)(a+)b/DZ
3141 ------------------------------------------------------------------
3142         Bra
3143         ^
3144         x
3145         CBra 1
3146         a+?
3147         Ket
3148         b
3149         Ket
3150         End
3151 ------------------------------------------------------------------
3152 Capturing subpattern count = 1
3153 Options: anchored
3154 No first char
3155 Need char = 'b'
3156
3157 /[.x.]/I
3158 Failed: POSIX collating elements are not supported at offset 0
3159
3160 /[=x=]/I
3161 Failed: POSIX collating elements are not supported at offset 0
3162
3163 /[:x:]/I
3164 Failed: POSIX named classes are supported only within a class at offset 0
3165
3166 /\l/I
3167 Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3168
3169 /\L/I
3170 Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3171
3172 /\N{name}/I
3173 Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3174
3175 /\u/I
3176 Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3177
3178 /\U/I
3179 Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3180
3181 /a{1,3}b/U
3182     ab
3183  0: ab
3184
3185 /[/I
3186 Failed: missing terminating ] for character class at offset 1
3187
3188 /[a-/I
3189 Failed: missing terminating ] for character class at offset 3
3190
3191 /[[:space:]/I
3192 Failed: missing terminating ] for character class at offset 10
3193
3194 /[\s]/IDZ
3195 ------------------------------------------------------------------
3196         Bra
3197         [\x09-\x0d ]
3198         Ket
3199         End
3200 ------------------------------------------------------------------
3201 Capturing subpattern count = 0
3202 No options
3203 No first char
3204 No need char
3205
3206 /[[:space:]]/IDZ
3207 ------------------------------------------------------------------
3208         Bra
3209         [\x09-\x0d ]
3210         Ket
3211         End
3212 ------------------------------------------------------------------
3213 Capturing subpattern count = 0
3214 No options
3215 No first char
3216 No need char
3217
3218 /[[:space:]abcde]/IDZ
3219 ------------------------------------------------------------------
3220         Bra
3221         [\x09-\x0d a-e]
3222         Ket
3223         End
3224 ------------------------------------------------------------------
3225 Capturing subpattern count = 0
3226 No options
3227 No first char
3228 No need char
3229
3230 /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3231 Capturing subpattern count = 0
3232 Options: extended
3233 First char = '<'
3234 Need char = '>'
3235     <>
3236  0: <>
3237     <abcd>
3238  0: <abcd>
3239     <abc <123> hij>
3240  0: <abc <123> hij>
3241     <abc <def> hij>
3242  0: <def>
3243     <abc<>def>
3244  0: <abc<>def>
3245     <abc<>
3246  0: <>
3247     *** Failers
3248 No match
3249     <abc
3250 No match
3251
3252 |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
3253 ------------------------------------------------------------------
3254         Bra
3255         8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3256         \b
3257         Ket
3258         End
3259 ------------------------------------------------------------------
3260 Capturing subpattern count = 0
3261 Max lookbehind = 1
3262 No options
3263 First char = '8'
3264 Need char = 'X'
3265
3266 |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
3267 ------------------------------------------------------------------
3268         Bra
3269         $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3270         \b
3271         Ket
3272         End
3273 ------------------------------------------------------------------
3274 Capturing subpattern count = 0
3275 Max lookbehind = 1
3276 No options
3277 First char = '$'
3278 Need char = 'X'
3279
3280 /(.*)\d+\1/I
3281 Capturing subpattern count = 1
3282 Max back reference = 1
3283 No options
3284 No first char
3285 No need char
3286
3287 /(.*)\d+/I
3288 Capturing subpattern count = 1
3289 No options
3290 First char at start or follows newline
3291 No need char
3292
3293 /(.*)\d+\1/Is
3294 Capturing subpattern count = 1
3295 Max back reference = 1
3296 Options: dotall
3297 No first char
3298 No need char
3299
3300 /(.*)\d+/Is
3301 Capturing subpattern count = 1
3302 Options: anchored dotall
3303 No first char
3304 No need char
3305
3306 /(.*(xyz))\d+\2/I
3307 Capturing subpattern count = 2
3308 Max back reference = 2
3309 No options
3310 First char at start or follows newline
3311 Need char = 'z'
3312
3313 /((.*))\d+\1/I
3314 Capturing subpattern count = 2
3315 Max back reference = 1
3316 No options
3317 No first char
3318 No need char
3319     abc123bc
3320  0: bc123bc
3321  1: bc
3322  2: bc
3323
3324 /a[b]/I
3325 Capturing subpattern count = 0
3326 No options
3327 First char = 'a'
3328 Need char = 'b'
3329
3330 /(?=a).*/I
3331 Capturing subpattern count = 0
3332 May match empty string
3333 No options
3334 First char = 'a'
3335 No need char
3336
3337 /(?=abc).xyz/IiI
3338 Capturing subpattern count = 0
3339 Options: caseless
3340 First char = 'a' (caseless)
3341 Need char = 'z' (caseless)
3342
3343 /(?=abc)(?i).xyz/I
3344 Capturing subpattern count = 0
3345 No options
3346 First char = 'a'
3347 Need char = 'z' (caseless)
3348
3349 /(?=a)(?=b)/I
3350 Capturing subpattern count = 0
3351 May match empty string
3352 No options
3353 First char = 'a'
3354 No need char
3355
3356 /(?=.)a/I
3357 Capturing subpattern count = 0
3358 No options
3359 First char = 'a'
3360 No need char
3361
3362 /((?=abcda)a)/I
3363 Capturing subpattern count = 1
3364 No options
3365 First char = 'a'
3366 Need char = 'a'
3367
3368 /((?=abcda)ab)/I
3369 Capturing subpattern count = 1
3370 No options
3371 First char = 'a'
3372 Need char = 'b'
3373
3374 /()a/I
3375 Capturing subpattern count = 1
3376 No options
3377 No first char
3378 Need char = 'a'
3379
3380 /(?(1)ab|ac)(.)/I
3381 Capturing subpattern count = 1
3382 No options
3383 First char = 'a'
3384 No need char
3385
3386 /(?(1)abz|acz)(.)/I
3387 Capturing subpattern count = 1
3388 No options
3389 First char = 'a'
3390 Need char = 'z'
3391
3392 /(?(1)abz)(.)/I
3393 Capturing subpattern count = 1
3394 No options
3395 No first char
3396 No need char
3397
3398 /(?(1)abz)(1)23/I
3399 Capturing subpattern count = 1
3400 No options
3401 No first char
3402 Need char = '3'
3403
3404 /(a)+/I
3405 Capturing subpattern count = 1
3406 No options
3407 First char = 'a'
3408 No need char
3409
3410 /(a){2,3}/I
3411 Capturing subpattern count = 1
3412 No options
3413 First char = 'a'
3414 Need char = 'a'
3415
3416 /(a)*/I
3417 Capturing subpattern count = 1
3418 May match empty string
3419 No options
3420 No first char
3421 No need char
3422
3423 /[a]/I
3424 Capturing subpattern count = 0
3425 No options
3426 First char = 'a'
3427 No need char
3428
3429 /[ab]/I
3430 Capturing subpattern count = 0
3431 No options
3432 No first char
3433 No need char
3434
3435 /[ab]/IS
3436 Capturing subpattern count = 0
3437 No options
3438 No first char
3439 No need char
3440 Subject length lower bound = 1
3441 Starting chars: a b 
3442
3443 /[^a]/I
3444 Capturing subpattern count = 0
3445 No options
3446 No first char
3447 No need char
3448
3449 /\d456/I
3450 Capturing subpattern count = 0
3451 No options
3452 No first char
3453 Need char = '6'
3454
3455 /\d456/IS
3456 Capturing subpattern count = 0
3457 No options
3458 No first char
3459 Need char = '6'
3460 Subject length lower bound = 4
3461 Starting chars: 0 1 2 3 4 5 6 7 8 9 
3462
3463 /a^b/I
3464 Capturing subpattern count = 0
3465 No options
3466 First char = 'a'
3467 Need char = 'b'
3468
3469 /^a/Im
3470 Capturing subpattern count = 0
3471 Options: multiline
3472 First char at start or follows newline
3473 Need char = 'a'
3474   abcde
3475  0: a
3476   xy\nabc
3477  0: a
3478   *** Failers
3479 No match
3480   xyabc
3481 No match
3482
3483 /c|abc/I
3484 Capturing subpattern count = 0
3485 No options
3486 No first char
3487 Need char = 'c'
3488
3489 /(?i)[ab]/IS
3490 Capturing subpattern count = 0
3491 Options: caseless
3492 No first char
3493 No need char
3494 Subject length lower bound = 1
3495 Starting chars: A B a b 
3496
3497 /[ab](?i)cd/IS
3498 Capturing subpattern count = 0
3499 No options
3500 No first char
3501 Need char = 'd' (caseless)
3502 Subject length lower bound = 3
3503 Starting chars: a b 
3504
3505 /abc(?C)def/I
3506 Capturing subpattern count = 0
3507 No options
3508 First char = 'a'
3509 Need char = 'f'
3510     abcdef
3511 --->abcdef
3512   0 ^  ^       d
3513  0: abcdef
3514     1234abcdef
3515 --->1234abcdef
3516   0     ^  ^       d
3517  0: abcdef
3518     *** Failers
3519 No match
3520     abcxyz
3521 No match
3522     abcxyzf
3523 --->abcxyzf
3524   0 ^  ^        d
3525 No match
3526
3527 /abc(?C)de(?C1)f/I
3528 Capturing subpattern count = 0
3529 No options
3530 First char = 'a'
3531 Need char = 'f'
3532     123abcdef
3533 --->123abcdef
3534   0    ^  ^       d
3535   1    ^    ^     f
3536  0: abcdef
3537
3538 /(?C1)\dabc(?C2)def/IS
3539 Capturing subpattern count = 0
3540 No options
3541 No first char
3542 Need char = 'f'
3543 Subject length lower bound = 7
3544 Starting chars: 0 1 2 3 4 5 6 7 8 9 
3545     1234abcdef
3546 --->1234abcdef
3547   1 ^              \d
3548   1  ^             \d
3549   1   ^            \d
3550   1    ^           \d
3551   2    ^   ^       d
3552  0: 4abcdef
3553     *** Failers
3554 No match
3555     abcdef
3556 No match
3557
3558 /(?C1)\dabc(?C2)def/ISS
3559 Capturing subpattern count = 0
3560 No options
3561 No first char
3562 Need char = 'f'
3563     1234abcdef
3564 --->1234abcdef
3565   1 ^              \d
3566   1  ^             \d
3567   1   ^            \d
3568   1    ^           \d
3569   2    ^   ^       d
3570  0: 4abcdef
3571     *** Failers
3572 No match
3573     abcdef
3574 --->abcdef
3575   1 ^          \d
3576   1  ^         \d
3577   1   ^        \d
3578   1    ^       \d
3579   1     ^      \d
3580   1      ^     \d
3581 No match
3582
3583 /(?C255)ab/I
3584 Capturing subpattern count = 0
3585 No options
3586 First char = 'a'
3587 Need char = 'b'
3588
3589 /(?C256)ab/I
3590 Failed: number after (?C is > 255 at offset 6
3591
3592 /(?Cab)xx/I
3593 Failed: closing ) for (?C expected at offset 3
3594
3595 /(?C12vr)x/I
3596 Failed: closing ) for (?C expected at offset 5
3597
3598 /abc(?C)def/I
3599 Capturing subpattern count = 0
3600 No options
3601 First char = 'a'
3602 Need char = 'f'
3603     *** Failers
3604 No match
3605     \x83\x0\x61bcdef
3606 --->\x83\x00abcdef
3607   0         ^  ^       d
3608  0: abcdef
3609
3610 /(abc)(?C)de(?C1)f/I
3611 Capturing subpattern count = 1
3612 No options
3613 First char = 'a'
3614 Need char = 'f'
3615     123abcdef
3616 --->123abcdef
3617   0    ^  ^       d
3618   1    ^    ^     f
3619  0: abcdef
3620  1: abc
3621     123abcdef\C+
3622 Callout 0: last capture = 1
3623  0: <unset>
3624  1: abc
3625 --->123abcdef
3626        ^  ^       d
3627 Callout 1: last capture = 1
3628  0: <unset>
3629  1: abc
3630 --->123abcdef
3631        ^    ^     f
3632  0: abcdef
3633  1: abc
3634     123abcdef\C-
3635  0: abcdef
3636  1: abc
3637     *** Failers
3638 No match
3639     123abcdef\C!1
3640 --->123abcdef
3641   0    ^  ^       d
3642   1    ^    ^     f
3643 No match
3644
3645 /(?C0)(abc(?C1))*/I
3646 Capturing subpattern count = 1
3647 May match empty string
3648 No options
3649 No first char
3650 No need char
3651     abcabcabc
3652 --->abcabcabc
3653   0 ^             (abc(?C1))*
3654   1 ^  ^          )
3655   1 ^     ^       )
3656   1 ^        ^    )
3657  0: abcabcabc
3658  1: abc
3659     abcabc\C!1!3
3660 --->abcabc
3661   0 ^          (abc(?C1))*
3662   1 ^  ^       )
3663   1 ^     ^    )
3664  0: abcabc
3665  1: abc
3666     *** Failers
3667 --->*** Failers
3668   0 ^               (abc(?C1))*
3669  0: 
3670     abcabcabc\C!1!3
3671 --->abcabcabc
3672   0 ^             (abc(?C1))*
3673   1 ^  ^          )
3674   1 ^     ^       )
3675   1 ^        ^    )
3676  0: abcabc
3677  1: abc
3678
3679 /(\d{3}(?C))*/I
3680 Capturing subpattern count = 1
3681 May match empty string
3682 No options
3683 No first char
3684 No need char
3685     123\C+
3686 Callout 0: last capture = -1
3687  0: <unset>
3688 --->123
3689     ^  ^    )
3690  0: 123
3691  1: 123
3692     123456\C+
3693 Callout 0: last capture = -1
3694  0: <unset>
3695 --->123456
3696     ^  ^       )
3697 Callout 0: last capture = 1
3698  0: <unset>
3699  1: 123
3700 --->123456
3701     ^     ^    )
3702  0: 123456
3703  1: 456
3704     123456789\C+
3705 Callout 0: last capture = -1
3706  0: <unset>
3707 --->123456789
3708     ^  ^          )
3709 Callout 0: last capture = 1
3710  0: <unset>
3711  1: 123
3712 --->123456789
3713     ^     ^       )
3714 Callout 0: last capture = 1
3715  0: <unset>
3716  1: 456
3717 --->123456789
3718     ^        ^    )
3719  0: 123456789
3720  1: 789
3721
3722 /((xyz)(?C)p|(?C1)xyzabc)/I
3723 Capturing subpattern count = 2
3724 No options
3725 First char = 'x'
3726 No need char
3727     xyzabc\C+
3728 Callout 0: last capture = 2
3729  0: <unset>
3730  1: <unset>
3731  2: xyz
3732 --->xyzabc
3733     ^  ^       p
3734 Callout 1: last capture = -1
3735  0: <unset>
3736 --->xyzabc
3737     ^          x
3738  0: xyzabc
3739  1: xyzabc
3740
3741 /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3742 Capturing subpattern count = 3
3743 No options
3744 First char = 'X'
3745 Need char = 'x'
3746     Xxyzabc\C+
3747 Callout 0: last capture = 3
3748  0: <unset>
3749  1: X
3750  2: <unset>
3751  3: xyz
3752 --->Xxyzabc
3753     ^   ^       p
3754 Callout 1: last capture = 1
3755  0: <unset>
3756  1: X
3757 --->Xxyzabc
3758     ^^          x
3759  0: Xxyzabc
3760  1: X
3761  2: xyzabc
3762
3763 /(?=(abc))(?C)abcdef/I
3764 Capturing subpattern count = 1
3765 No options
3766 First char = 'a'
3767 Need char = 'f'
3768     abcdef\C+
3769 Callout 0: last capture = 1
3770  0: <unset>
3771  1: abc
3772 --->abcdef
3773     ^          a
3774  0: abcdef
3775  1: abc
3776
3777 /(?!(abc)(?C1)d)(?C2)abcxyz/I
3778 Capturing subpattern count = 1
3779 No options
3780 First char = 'a'
3781 Need char = 'z'
3782     abcxyz\C+
3783 Callout 1: last capture = 1
3784  0: <unset>
3785  1: abc
3786 --->abcxyz
3787     ^  ^       d
3788 Callout 2: last capture = -1
3789  0: <unset>
3790 --->abcxyz
3791     ^          a
3792  0: abcxyz
3793
3794 /(?<=(abc)(?C))xyz/I
3795 Capturing subpattern count = 1
3796 Max lookbehind = 3
3797 No options
3798 First char = 'x'
3799 Need char = 'z'
3800    abcxyz\C+
3801 Callout 0: last capture = 1
3802  0: <unset>
3803  1: abc
3804 --->abcxyz
3805        ^       )
3806  0: xyz
3807  1: abc
3808
3809 /a(b+)(c*)(?C1)/I
3810 Capturing subpattern count = 2
3811 No options
3812 First char = 'a'
3813 Need char = 'b'
3814     abbbbbccc\C*1
3815 --->abbbbbccc
3816   1 ^        ^    
3817 Callout data = 1
3818 No match
3819
3820 /a(b+?)(c*?)(?C1)/I
3821 Capturing subpattern count = 2
3822 No options
3823 First char = 'a'
3824 Need char = 'b'
3825     abbbbbccc\C*1
3826 --->abbbbbccc
3827   1 ^ ^           
3828 Callout data = 1
3829   1 ^  ^          
3830 Callout data = 1
3831   1 ^   ^         
3832 Callout data = 1
3833   1 ^    ^        
3834 Callout data = 1
3835   1 ^     ^       
3836 Callout data = 1
3837   1 ^      ^      
3838 Callout data = 1
3839   1 ^       ^     
3840 Callout data = 1
3841   1 ^        ^    
3842 Callout data = 1
3843 No match
3844
3845 /(?C)abc/I
3846 Capturing subpattern count = 0
3847 No options
3848 First char = 'a'
3849 Need char = 'c'
3850
3851 /(?C)^abc/I
3852 Capturing subpattern count = 0
3853 Options: anchored
3854 No first char
3855 No need char
3856
3857 /(?C)a|b/IS
3858 Capturing subpattern count = 0
3859 No options
3860 No first char
3861 No need char
3862 Subject length lower bound = 1
3863 Starting chars: a b 
3864
3865 /(?R)/I
3866 Failed: recursive call could loop indefinitely at offset 3
3867
3868 /(a|(?R))/I
3869 Failed: recursive call could loop indefinitely at offset 6
3870
3871 /(ab|(bc|(de|(?R))))/I
3872 Failed: recursive call could loop indefinitely at offset 15
3873
3874 /x(ab|(bc|(de|(?R))))/I
3875 Capturing subpattern count = 3
3876 No options
3877 First char = 'x'
3878 No need char
3879     xab
3880  0: xab
3881  1: ab
3882     xbc
3883  0: xbc
3884  1: bc
3885  2: bc
3886     xde
3887  0: xde
3888  1: de
3889  2: de
3890  3: de
3891     xxab
3892  0: xxab
3893  1: xab
3894  2: xab
3895  3: xab
3896     xxxab
3897  0: xxxab
3898  1: xxab
3899  2: xxab
3900  3: xxab
3901     *** Failers
3902 No match
3903     xyab
3904 No match
3905
3906 /(ab|(bc|(de|(?1))))/I
3907 Failed: recursive call could loop indefinitely at offset 15
3908
3909 /x(ab|(bc|(de|(?1)x)x)x)/I
3910 Failed: recursive call could loop indefinitely at offset 16
3911
3912 /^([^()]|\((?1)*\))*$/I
3913 Capturing subpattern count = 1
3914 May match empty string
3915 Options: anchored
3916 No first char
3917 No need char
3918     abc
3919  0: abc
3920  1: c
3921     a(b)c
3922  0: a(b)c
3923  1: c
3924     a(b(c))d
3925  0: a(b(c))d
3926  1: d
3927     *** Failers)
3928 No match
3929     a(b(c)d
3930 No match
3931
3932 /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3933 Capturing subpattern count = 1
3934 Options: anchored
3935 No first char
3936 Need char = '<'
3937    >abc>123<xyz<
3938  0: >abc>123<xyz<
3939  1: 3
3940    >abc>1(2)3<xyz<
3941  0: >abc>1(2)3<xyz<
3942  1: 3
3943    >abc>(1(2)3)<xyz<
3944  0: >abc>(1(2)3)<xyz<
3945  1: (1(2)3)
3946
3947 /(a(?1)b)/DZ
3948 ------------------------------------------------------------------
3949         Bra
3950         CBra 1
3951         a
3952         Recurse
3953         b
3954         Ket
3955         Ket
3956         End
3957 ------------------------------------------------------------------
3958 Capturing subpattern count = 1
3959 No options
3960 First char = 'a'
3961 Need char = 'b'
3962
3963 /(a(?1)+b)/DZ
3964 ------------------------------------------------------------------
3965         Bra
3966         CBra 1
3967         a
3968         Once
3969         Recurse
3970         KetRmax
3971         b
3972         Ket
3973         Ket
3974         End
3975 ------------------------------------------------------------------
3976 Capturing subpattern count = 1
3977 No options
3978 First char = 'a'
3979 Need char = 'b'
3980
3981 /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3982 Capturing subpattern count = 2
3983 Options: anchored
3984 No first char
3985 No need char
3986     12
3987  0: 12
3988  1: 12
3989     (((2+2)*-3)-7)
3990  0: (((2+2)*-3)-7)
3991  1: (((2+2)*-3)-7)
3992  2: -
3993     -12
3994  0: -12
3995  1: -12
3996     *** Failers
3997 No match
3998     ((2+2)*-3)-7)
3999 No match
4000
4001 /^(x(y|(?1){2})z)/I
4002 Capturing subpattern count = 2
4003 Options: anchored
4004 No first char
4005 No need char
4006     xyz
4007  0: xyz
4008  1: xyz
4009  2: y
4010     xxyzxyzz
4011  0: xxyzxyzz
4012  1: xxyzxyzz
4013  2: xyzxyz
4014     *** Failers
4015 No match
4016     xxyzz
4017 No match
4018     xxyzxyzxyzz
4019 No match
4020
4021 /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4022 Capturing subpattern count = 2
4023 Options: extended
4024 First char = '<'
4025 Need char = '>'
4026     <>
4027  0: <>
4028  1: <>
4029  2: <>
4030     <abcd>
4031  0: <abcd>
4032  1: <abcd>
4033  2: <abcd>
4034     <abc <123> hij>
4035  0: <abc <123> hij>
4036  1: <abc <123> hij>
4037  2: <abc <123> hij>
4038     <abc <def> hij>
4039  0: <def>
4040  1: <def>
4041  2: <def>
4042     <abc<>def>
4043  0: <abc<>def>
4044  1: <abc<>def>
4045  2: <abc<>def>
4046     <abc<>
4047  0: <>
4048  1: <>
4049  2: <>
4050     *** Failers
4051 No match
4052     <abc
4053 No match
4054
4055 /(?1)/I
4056 Failed: reference to non-existent subpattern at offset 3
4057
4058 /((?2)(abc)/I
4059 Failed: missing ) at offset 10
4060
4061 /^(abc)def(?1)/I
4062 Capturing subpattern count = 1
4063 Options: anchored
4064 No first char
4065 No need char
4066     abcdefabc
4067  0: abcdefabc
4068  1: abc
4069
4070 /^(a|b|c)=(?1)+/I
4071 Capturing subpattern count = 1
4072 Options: anchored
4073 No first char
4074 No need char
4075     a=a
4076  0: a=a
4077  1: a
4078     a=b
4079  0: a=b
4080  1: a
4081     a=bc
4082  0: a=bc
4083  1: a
4084
4085 /^(a|b|c)=((?1))+/I
4086 Capturing subpattern count = 2
4087 Options: anchored
4088 No first char
4089 No need char
4090     a=a
4091  0: a=a
4092  1: a
4093  2: a
4094     a=b
4095  0: a=b
4096  1: a
4097  2: b
4098     a=bc
4099  0: a=bc
4100  1: a
4101  2: c
4102
4103 /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4104 ------------------------------------------------------------------
4105         Bra
4106         a
4107         CBra 1
4108         b
4109         Alt
4110         c
4111         Ket
4112         d
4113         CBra 2
4114         e
4115         Ket
4116         Ket
4117         End
4118 ------------------------------------------------------------------
4119 Capturing subpattern count = 2
4120 Named capturing subpatterns:
4121   longername2   2
4122   name1         1
4123 No options
4124 First char = 'a'
4125 Need char = 'e'
4126     abde
4127  0: abde
4128  1: b
4129  2: e
4130     acde
4131  0: acde
4132  1: c
4133  2: e
4134
4135 /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4136 ------------------------------------------------------------------
4137         Bra
4138         Bra
4139         a
4140         CBra 1
4141         c
4142         CBra 2
4143         d
4144         Ket
4145         Ket
4146         Ket
4147         CBra 3
4148         a
4149         Ket
4150         Ket
4151         End
4152 ------------------------------------------------------------------
4153 Capturing subpattern count = 3
4154 Named capturing subpatterns:
4155   a   3
4156   c   1
4157   d   2
4158 No options
4159 First char = 'a'
4160 Need char = 'a'
4161
4162 /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4163 ------------------------------------------------------------------
4164         Bra
4165         CBra 1
4166         a
4167         Ket
4168         Any
4169         Any
4170         Any
4171         \1
4172         bbb
4173         Recurse
4174         d
4175         Ket
4176         End
4177 ------------------------------------------------------------------
4178 Capturing subpattern count = 1
4179 Max back reference = 1
4180 Named capturing subpatterns:
4181   a   1
4182 No options
4183 First char = 'a'
4184 Need char = 'd'
4185
4186 /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
4187 Capturing subpattern count = 4
4188 Max back reference = 4
4189 Named capturing subpatterns:
4190   four    4
4191   one     1
4192   three   3
4193   two     2
4194 May match empty string
4195 Options: anchored caseless
4196 No first char
4197 No need char
4198     1221
4199  0: 1221
4200  1: 1221
4201  2: 1
4202     Satan, oscillate my metallic sonatas!
4203  0: Satan, oscillate my metallic sonatas!
4204  1: <unset>
4205  2: <unset>
4206  3: Satan, oscillate my metallic sonatas
4207  4: S
4208     A man, a plan, a canal: Panama!
4209  0: A man, a plan, a canal: Panama!
4210  1: <unset>
4211  2: <unset>
4212  3: A man, a plan, a canal: Panama
4213  4: A
4214     Able was I ere I saw Elba.
4215  0: Able was I ere I saw Elba.
4216  1: <unset>
4217  2: <unset>
4218  3: Able was I ere I saw Elba
4219  4: A
4220     *** Failers
4221 No match
4222     The quick brown fox
4223 No match
4224
4225 /((?(R)a|b))\1(?1)?/I
4226 Capturing subpattern count = 1
4227 Max back reference = 1
4228 No options
4229 No first char
4230 No need char
4231   bb
4232  0: bb
4233  1: b
4234   bbaa
4235  0: bba
4236  1: b
4237
4238 /(.*)a/Is
4239 Capturing subpattern count = 1
4240 Options: anchored dotall
4241 No first char
4242 Need char = 'a'
4243
4244 /(.*)a\1/Is
4245 Capturing subpattern count = 1
4246 Max back reference = 1
4247 Options: dotall
4248 No first char
4249 Need char = 'a'
4250
4251 /(.*)a(b)\2/Is
4252 Capturing subpattern count = 2
4253 Max back reference = 2
4254 Options: anchored dotall
4255 No first char
4256 Need char = 'b'
4257
4258 /((.*)a|(.*)b)z/Is
4259 Capturing subpattern count = 3
4260 Options: anchored dotall
4261 No first char
4262 Need char = 'z'
4263
4264 /((.*)a|(.*)b)z\1/Is
4265 Capturing subpattern count = 3
4266 Max back reference = 1
4267 Options: dotall
4268 No first char
4269 Need char = 'z'
4270
4271 /((.*)a|(.*)b)z\2/Is
4272 Capturing subpattern count = 3
4273 Max back reference = 2
4274 Options: dotall
4275 No first char
4276 Need char = 'z'
4277
4278 /((.*)a|(.*)b)z\3/Is
4279 Capturing subpattern count = 3
4280 Max back reference = 3
4281 Options: dotall
4282 No first char
4283 Need char = 'z'
4284
4285 /((.*)a|^(.*)b)z\3/Is
4286 Capturing subpattern count = 3
4287 Max back reference = 3
4288 Options: anchored dotall
4289 No first char
4290 Need char = 'z'
4291
4292 /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4293 Capturing subpattern count = 31
4294 May match empty string
4295 Options: anchored dotall
4296 No first char
4297 No need char
4298
4299 /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4300 Capturing subpattern count = 31
4301 Max back reference = 31
4302 May match empty string
4303 Options: dotall
4304 No first char
4305 No need char
4306
4307 /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4308 Capturing subpattern count = 32
4309 Max back reference = 32
4310 May match empty string
4311 Options: dotall
4312 No first char
4313 No need char
4314
4315 /(a)(bc)/INDZ
4316 ------------------------------------------------------------------
4317         Bra
4318         Bra
4319         a
4320         Ket
4321         Bra
4322         bc
4323         Ket
4324         Ket
4325         End
4326 ------------------------------------------------------------------
4327 Capturing subpattern count = 0
4328 Options: no_auto_capture
4329 First char = 'a'
4330 Need char = 'c'
4331   abc
4332  0: abc
4333
4334 /(?P<one>a)(bc)/INDZ
4335 ------------------------------------------------------------------
4336         Bra
4337         CBra 1
4338         a
4339         Ket
4340         Bra
4341         bc
4342         Ket
4343         Ket
4344         End
4345 ------------------------------------------------------------------
4346 Capturing subpattern count = 1
4347 Named capturing subpatterns:
4348   one   1
4349 Options: no_auto_capture
4350 First char = 'a'
4351 Need char = 'c'
4352   abc
4353  0: abc
4354  1: a
4355
4356 /(a)(?P<named>bc)/INDZ
4357 ------------------------------------------------------------------
4358         Bra
4359         Bra
4360         a
4361         Ket
4362         CBra 1
4363         bc
4364         Ket
4365         Ket
4366         End
4367 ------------------------------------------------------------------
4368 Capturing subpattern count = 1
4369 Named capturing subpatterns:
4370   named   1
4371 Options: no_auto_capture
4372 First char = 'a'
4373 Need char = 'c'
4374
4375 /(a+)*zz/I
4376 Capturing subpattern count = 1
4377 No options
4378 No first char
4379 Need char = 'z'
4380   aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4381 Minimum match() limit = 8
4382 Minimum match() recursion limit = 6
4383  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4384  1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4385   aaaaaaaaaaaaaz\M
4386 Minimum match() limit = 32768
4387 Minimum match() recursion limit = 29
4388 No match
4389
4390 /(aaa(?C1)bbb|ab)/I
4391 Capturing subpattern count = 1
4392 No options
4393 First char = 'a'
4394 Need char = 'b'
4395    aaabbb
4396 --->aaabbb
4397   1 ^  ^       b
4398  0: aaabbb
4399  1: aaabbb
4400    aaabbb\C*0
4401 --->aaabbb
4402   1 ^  ^       b
4403  0: aaabbb
4404  1: aaabbb
4405    aaabbb\C*1
4406 --->aaabbb
4407   1 ^  ^       b
4408 Callout data = 1
4409  0: ab
4410  1: ab
4411    aaabbb\C*-1
4412 --->aaabbb
4413   1 ^  ^       b
4414 Callout data = -1
4415 No match
4416
4417 /ab(?P<one>cd)ef(?P<two>gh)/I
4418 Capturing subpattern count = 2
4419 Named capturing subpatterns:
4420   one   1
4421   two   2
4422 No options
4423 First char = 'a'
4424 Need char = 'h'
4425     abcdefgh
4426  0: abcdefgh
4427  1: cd
4428  2: gh
4429     abcdefgh\C1\Gtwo
4430  0: abcdefgh
4431  1: cd
4432  2: gh
4433  1C cd (2)
4434   G gh (2) two
4435     abcdefgh\Cone\Ctwo
4436  0: abcdefgh
4437  1: cd
4438  2: gh
4439   C cd (2) one
4440   C gh (2) two
4441     abcdefgh\Cthree
4442 no parentheses with name "three"
4443  0: abcdefgh
4444  1: cd
4445  2: gh
4446 copy substring three failed -7
4447
4448 /(?P<Tes>)(?P<Test>)/DZ
4449 ------------------------------------------------------------------
4450         Bra
4451         CBra 1
4452         Ket
4453         CBra 2
4454         Ket
4455         Ket
4456         End
4457 ------------------------------------------------------------------
4458 Capturing subpattern count = 2
4459 Named capturing subpatterns:
4460   Tes    1
4461   Test   2
4462 May match empty string
4463 No options
4464 No first char
4465 No need char
4466
4467 /(?P<Test>)(?P<Tes>)/DZ
4468 ------------------------------------------------------------------
4469         Bra
4470         CBra 1
4471         Ket
4472         CBra 2
4473         Ket
4474         Ket
4475         End
4476 ------------------------------------------------------------------
4477 Capturing subpattern count = 2
4478 Named capturing subpatterns:
4479   Tes    2
4480   Test   1
4481 May match empty string
4482 No options
4483 No first char
4484 No need char
4485
4486 /(?P<Z>zz)(?P<A>aa)/I
4487 Capturing subpattern count = 2
4488 Named capturing subpatterns:
4489   A   2
4490   Z   1
4491 No options
4492 First char = 'z'
4493 Need char = 'a'
4494     zzaa\CZ
4495  0: zzaa
4496  1: zz
4497  2: aa
4498   C zz (2) Z
4499     zzaa\CA
4500  0: zzaa
4501  1: zz
4502  2: aa
4503   C aa (2) A
4504
4505 /(?P<x>eks)(?P<x>eccs)/I
4506 Failed: two named subpatterns have the same name at offset 15
4507
4508 /(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4509 Failed: two named subpatterns have the same name at offset 30
4510
4511 "\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4512 Capturing subpattern count = 3
4513 Named capturing subpatterns:
4514   elem   2
4515 No options
4516 First char = '['
4517 Need char = ']'
4518     [10,20,30,5,5,4,4,2,43,23,4234]
4519  0: [10,20,30,5,5,4,4,2,43,23,4234]
4520  1: 10,20,30,5,5,4,4,2,43,23,4234
4521  2: 10
4522  3: ,4234
4523     *** Failers
4524 No match
4525     []
4526 No match
4527
4528 "\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4529 Capturing subpattern count = 3
4530 Named capturing subpatterns:
4531   elem   2
4532 No options
4533 First char = '['
4534 Need char = ']'
4535     [10,20,30,5,5,4,4,2,43,23,4234]
4536  0: [10,20,30,5,5,4,4,2,43,23,4234]
4537  1: 10,20,30,5,5,4,4,2,43,23,4234
4538  2: 10
4539  3: ,4234
4540     []
4541  0: []
4542
4543 /(a(b(?2)c))?/DZ
4544 ------------------------------------------------------------------
4545         Bra
4546         Brazero
4547         CBra 1
4548         a
4549         CBra 2
4550         b
4551         Recurse
4552         c
4553         Ket
4554         Ket
4555         Ket
4556         End
4557 ------------------------------------------------------------------
4558 Capturing subpattern count = 2
4559 May match empty string
4560 No options
4561 No first char
4562 No need char
4563
4564 /(a(b(?2)c))*/DZ
4565 ------------------------------------------------------------------
4566         Bra
4567         Brazero
4568         CBra 1
4569         a
4570         CBra 2
4571         b
4572         Recurse
4573         c
4574         Ket
4575         KetRmax
4576         Ket
4577         End
4578 ------------------------------------------------------------------
4579 Capturing subpattern count = 2
4580 May match empty string
4581 No options
4582 No first char
4583 No need char
4584
4585 /(a(b(?2)c)){0,2}/DZ
4586 ------------------------------------------------------------------
4587         Bra
4588         Brazero
4589         Bra
4590         CBra 1
4591         a
4592         CBra 2
4593         b
4594         Recurse
4595         c
4596         Ket
4597         Ket
4598         Brazero
4599         CBra 1
4600         a
4601         CBra 2
4602         b
4603         Recurse
4604         c
4605         Ket
4606         Ket
4607         Ket
4608         Ket
4609         End
4610 ------------------------------------------------------------------
4611 Capturing subpattern count = 2
4612 May match empty string
4613 No options
4614 No first char
4615 No need char
4616
4617 /[ab]{1}+/DZ
4618 ------------------------------------------------------------------
4619         Bra
4620         [ab]{1,1}+
4621         Ket
4622         End
4623 ------------------------------------------------------------------
4624 Capturing subpattern count = 0
4625 No options
4626 No first char
4627 No need char
4628
4629 /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4630 Capturing subpattern count = 3
4631 Options: caseless
4632 No first char
4633 Need char = 'g' (caseless)
4634      Baby Bjorn Active Carrier - With free SHIPPING!!
4635  0: Baby Bjorn Active Carrier - With free SHIPPING!!
4636  1: Baby Bjorn Active Carrier - With free SHIPPING!!
4637
4638 /((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4639 Capturing subpattern count = 3
4640 Options: caseless
4641 No first char
4642 Need char = 'g' (caseless)
4643 Subject length lower bound = 8
4644 No starting char list
4645      Baby Bjorn Active Carrier - With free SHIPPING!!
4646  0: Baby Bjorn Active Carrier - With free SHIPPING!!
4647  1: Baby Bjorn Active Carrier - With free SHIPPING!!
4648
4649 /a*.*b/ISDZ
4650 ------------------------------------------------------------------
4651         Bra
4652         a*
4653         Any*
4654         b
4655         Ket
4656         End
4657 ------------------------------------------------------------------
4658 Capturing subpattern count = 0
4659 No options
4660 No first char
4661 Need char = 'b'
4662 Subject length lower bound = 1
4663 No starting char list
4664
4665 /(a|b)*.?c/ISDZ
4666 ------------------------------------------------------------------
4667         Bra
4668         Brazero
4669         CBra 1
4670         a
4671         Alt
4672         b
4673         KetRmax
4674         Any?
4675         c
4676         Ket
4677         End
4678 ------------------------------------------------------------------
4679 Capturing subpattern count = 1
4680 No options
4681 No first char
4682 Need char = 'c'
4683 Subject length lower bound = 1
4684 No starting char list
4685
4686 /abc(?C255)de(?C)f/DZ
4687 ------------------------------------------------------------------
4688         Bra
4689         abc
4690         Callout 255 10 1
4691         de
4692         Callout 0 16 1
4693         f
4694         Ket
4695         End
4696 ------------------------------------------------------------------
4697 Capturing subpattern count = 0
4698 No options
4699 First char = 'a'
4700 Need char = 'f'
4701
4702 /abcde/ICDZ
4703 ------------------------------------------------------------------
4704         Bra
4705         Callout 255 0 1
4706         a
4707         Callout 255 1 1
4708         b
4709         Callout 255 2 1
4710         c
4711         Callout 255 3 1
4712         d
4713         Callout 255 4 1
4714         e
4715         Callout 255 5 0
4716         Ket
4717         End
4718 ------------------------------------------------------------------
4719 Capturing subpattern count = 0
4720 Options:
4721 First char = 'a'
4722 Need char = 'e'
4723   abcde
4724 --->abcde
4725  +0 ^         a
4726  +1 ^^        b
4727  +2 ^ ^       c
4728  +3 ^  ^      d
4729  +4 ^   ^     e
4730  +5 ^    ^    
4731  0: abcde
4732   abcdfe
4733 --->abcdfe
4734  +0 ^          a
4735  +1 ^^         b
4736  +2 ^ ^        c
4737  +3 ^  ^       d
4738  +4 ^   ^      e
4739 No match
4740
4741 /a*b/ICDZS
4742 ------------------------------------------------------------------
4743         Bra
4744         Callout 255 0 2
4745         a*+
4746         Callout 255 2 1
4747         b
4748         Callout 255 3 0
4749         Ket
4750         End
4751 ------------------------------------------------------------------
4752 Capturing subpattern count = 0
4753 Options:
4754 No first char
4755 Need char = 'b'
4756 Subject length lower bound = 1
4757 Starting chars: a b 
4758   ab
4759 --->ab
4760  +0 ^      a*
4761  +2 ^^     b
4762  +3 ^ ^    
4763  0: ab
4764   aaaab
4765 --->aaaab
4766  +0 ^         a*
4767  +2 ^   ^     b
4768  +3 ^    ^    
4769  0: aaaab
4770   aaaacb
4771 --->aaaacb
4772  +0 ^          a*
4773  +2 ^   ^      b
4774  +0  ^         a*
4775  +2  ^  ^      b
4776  +0   ^        a*
4777  +2   ^ ^      b
4778  +0    ^       a*
4779  +2    ^^      b
4780  +0      ^     a*
4781  +2      ^     b
4782  +3      ^^    
4783  0: b
4784
4785 /a*b/ICDZSS
4786 ------------------------------------------------------------------
4787         Bra
4788         Callout 255 0 2
4789         a*+
4790         Callout 255 2 1
4791         b
4792         Callout 255 3 0
4793         Ket
4794         End
4795 ------------------------------------------------------------------
4796 Capturing subpattern count = 0
4797 Options:
4798 No first char
4799 Need char = 'b'
4800   ab
4801 --->ab
4802  +0 ^      a*
4803  +2 ^^     b
4804  +3 ^ ^    
4805  0: ab
4806   aaaab
4807 --->aaaab
4808  +0 ^         a*
4809  +2 ^   ^     b
4810  +3 ^    ^    
4811  0: aaaab
4812   aaaacb
4813 --->aaaacb
4814  +0 ^          a*
4815  +2 ^   ^      b
4816  +0  ^         a*
4817  +2  ^  ^      b
4818  +0   ^        a*
4819  +2   ^ ^      b
4820  +0    ^       a*
4821  +2    ^^      b
4822  +0     ^      a*
4823  +2     ^      b
4824  +0      ^     a*
4825  +2      ^     b
4826  +3      ^^    
4827  0: b
4828
4829 /a+b/ICDZ
4830 ------------------------------------------------------------------
4831         Bra
4832         Callout 255 0 2
4833         a++
4834         Callout 255 2 1
4835         b
4836         Callout 255 3 0
4837         Ket
4838         End
4839 ------------------------------------------------------------------
4840 Capturing subpattern count = 0
4841 Options:
4842 First char = 'a'
4843 Need char = 'b'
4844   ab
4845 --->ab
4846  +0 ^      a+
4847  +2 ^^     b
4848  +3 ^ ^    
4849  0: ab
4850   aaaab
4851 --->aaaab
4852  +0 ^         a+
4853  +2 ^   ^     b
4854  +3 ^    ^    
4855  0: aaaab
4856   aaaacb
4857 --->aaaacb
4858  +0 ^          a+
4859  +2 ^   ^      b
4860  +0  ^         a+
4861  +2  ^  ^      b
4862  +0   ^        a+
4863  +2   ^ ^      b
4864  +0    ^       a+
4865  +2    ^^      b
4866 No match
4867
4868 /(abc|def)x/ICDZS
4869 ------------------------------------------------------------------
4870         Bra
4871         Callout 255 0 9
4872         CBra 1
4873         Callout 255 1 1
4874         a
4875         Callout 255 2 1
4876         b
4877         Callout 255 3 1
4878         c
4879         Callout 255 4 0
4880         Alt
4881         Callout 255 5 1
4882         d
4883         Callout 255 6 1
4884         e
4885         Callout 255 7 1
4886         f
4887         Callout 255 8 0
4888         Ket
4889         Callout 255 9 1
4890         x
4891         Callout 255 10 0
4892         Ket
4893         End
4894 ------------------------------------------------------------------
4895 Capturing subpattern count = 1
4896 Options:
4897 No first char
4898 Need char = 'x'
4899 Subject length lower bound = 4
4900 Starting chars: a d 
4901   abcx
4902 --->abcx
4903  +0 ^        (abc|def)
4904  +1 ^        a
4905  +2 ^^       b
4906  +3 ^ ^      c
4907  +4 ^  ^     |
4908  +9 ^  ^     x
4909 +10 ^   ^    
4910  0: abcx
4911  1: abc
4912   defx
4913 --->defx
4914  +0 ^        (abc|def)
4915  +1 ^        a
4916  +5 ^        d
4917  +6 ^^       e
4918  +7 ^ ^      f
4919  +8 ^  ^     )
4920  +9 ^  ^     x
4921 +10 ^   ^    
4922  0: defx
4923  1: def
4924   ** Failers 
4925 No match
4926   abcdefzx
4927 --->abcdefzx
4928  +0 ^            (abc|def)
4929  +1 ^            a
4930  +2 ^^           b
4931  +3 ^ ^          c
4932  +4 ^  ^         |
4933  +9 ^  ^         x
4934  +5 ^            d
4935  +0    ^         (abc|def)
4936  +1    ^         a
4937  +5    ^         d
4938  +6    ^^        e
4939  +7    ^ ^       f
4940  +8    ^  ^      )
4941  +9    ^  ^      x
4942 No match
4943
4944 /(abc|def)x/ICDZSS
4945 ------------------------------------------------------------------
4946         Bra
4947         Callout 255 0 9
4948         CBra 1
4949         Callout 255 1 1
4950         a
4951         Callout 255 2 1
4952         b
4953         Callout 255 3 1
4954         c
4955         Callout 255 4 0
4956         Alt
4957         Callout 255 5 1
4958         d
4959         Callout 255 6 1
4960         e
4961         Callout 255 7 1
4962         f
4963         Callout 255 8 0
4964         Ket
4965         Callout 255 9 1
4966         x
4967         Callout 255 10 0
4968         Ket
4969         End
4970 ------------------------------------------------------------------
4971 Capturing subpattern count = 1
4972 Options:
4973 No first char
4974 Need char = 'x'
4975   abcx
4976 --->abcx
4977  +0 ^        (abc|def)
4978  +1 ^        a
4979  +2 ^^       b
4980  +3 ^ ^      c
4981  +4 ^  ^     |
4982  +9 ^  ^     x
4983 +10 ^   ^    
4984  0: abcx
4985  1: abc
4986   defx
4987 --->defx
4988  +0 ^        (abc|def)
4989  +1 ^        a
4990  +5 ^        d
4991  +6 ^^       e
4992  +7 ^ ^      f
4993  +8 ^  ^     )
4994  +9 ^  ^     x
4995 +10 ^   ^    
4996  0: defx
4997  1: def
4998   ** Failers 
4999 No match
5000   abcdefzx
5001 --->abcdefzx
5002  +0 ^            (abc|def)
5003  +1 ^            a
5004  +2 ^^           b
5005  +3 ^ ^          c
5006  +4 ^  ^         |
5007  +9 ^  ^         x
5008  +5 ^            d
5009  +0  ^           (abc|def)
5010  +1  ^           a
5011  +5  ^           d
5012  +0   ^          (abc|def)
5013  +1   ^          a
5014  +5   ^          d
5015  +0    ^         (abc|def)
5016  +1    ^         a
5017  +5    ^         d
5018  +6    ^^        e
5019  +7    ^ ^       f
5020  +8    ^  ^      )
5021  +9    ^  ^      x
5022  +0     ^        (abc|def)
5023  +1     ^        a
5024  +5     ^        d
5025  +0      ^       (abc|def)
5026  +1      ^       a
5027  +5      ^       d
5028  +0       ^      (abc|def)
5029  +1       ^      a
5030  +5       ^      d
5031  +0        ^     (abc|def)
5032  +1        ^     a
5033  +5        ^     d
5034 No match
5035
5036 /(ab|cd){3,4}/IC
5037 Capturing subpattern count = 1
5038 Options:
5039 No first char
5040 No need char
5041   ababab
5042 --->ababab
5043  +0 ^          (ab|cd){3,4}
5044  +1 ^          a
5045  +2 ^^         b
5046  +3 ^ ^        |
5047  +1 ^ ^        a
5048  +2 ^  ^       b
5049  +3 ^   ^      |
5050  +1 ^   ^      a
5051  +2 ^    ^     b
5052  +3 ^     ^    |
5053  +1 ^     ^    a
5054  +4 ^     ^    c
5055 +12 ^     ^    
5056  0: ababab
5057  1: ab
5058   abcdabcd
5059 --->abcdabcd
5060  +0 ^            (ab|cd){3,4}
5061  +1 ^            a
5062  +2 ^^           b
5063  +3 ^ ^          |
5064  +1 ^ ^          a
5065  +4 ^ ^          c
5066  +5 ^  ^         d
5067  +6 ^   ^        )
5068  +1 ^   ^        a
5069  +2 ^    ^       b
5070  +3 ^     ^      |
5071  +1 ^     ^      a
5072  +4 ^     ^      c
5073  +5 ^      ^     d
5074  +6 ^       ^    )
5075 +12 ^       ^    
5076  0: abcdabcd
5077  1: cd
5078   abcdcdcdcdcd
5079 --->abcdcdcdcdcd
5080  +0 ^                (ab|cd){3,4}
5081  +1 ^                a
5082  +2 ^^               b
5083  +3 ^ ^              |
5084  +1 ^ ^              a
5085  +4 ^ ^              c
5086  +5 ^  ^             d
5087  +6 ^   ^            )
5088  +1 ^   ^            a
5089  +4 ^   ^            c
5090  +5 ^    ^           d
5091  +6 ^     ^          )
5092  +1 ^     ^          a
5093  +4 ^     ^          c
5094  +5 ^      ^         d
5095  +6 ^       ^        )
5096 +12 ^       ^        
5097  0: abcdcdcd
5098  1: cd
5099
5100 /([ab]{,4}c|xy)/ICDZS
5101 ------------------------------------------------------------------
5102         Bra
5103         Callout 255 0 14
5104         CBra 1
5105         Callout 255 1 4
5106         [ab]
5107         Callout 255 5 1
5108         {
5109         Callout 255 6 1
5110         ,
5111         Callout 255 7 1
5112         4
5113         Callout 255 8 1
5114         }
5115         Callout 255 9 1
5116         c
5117         Callout 255 10 0
5118         Alt
5119         Callout 255 11 1
5120         x
5121         Callout 255 12 1
5122         y
5123         Callout 255 13 0
5124         Ket
5125         Callout 255 14 0
5126         Ket
5127         End
5128 ------------------------------------------------------------------
5129 Capturing subpattern count = 1
5130 Options:
5131 No first char
5132 No need char
5133 Subject length lower bound = 2
5134 Starting chars: a b x 
5135     Note: that { does NOT introduce a quantifier
5136 --->Note: that { does NOT introduce a quantifier
5137  +0         ^                                        ([ab]{,4}c|xy)
5138  +1         ^                                        [ab]
5139  +5         ^^                                       {
5140 +11         ^                                        x
5141  +0                                 ^                ([ab]{,4}c|xy)
5142  +1                                 ^                [ab]
5143  +5                                 ^^               {
5144 +11                                 ^                x
5145  +0                                     ^            ([ab]{,4}c|xy)
5146  +1                                     ^            [ab]
5147  +5                                     ^^           {
5148 +11                                     ^            x
5149 No match
5150
5151 /([ab]{,4}c|xy)/ICDZSS
5152 ------------------------------------------------------------------
5153         Bra
5154         Callout 255 0 14
5155         CBra 1
5156         Callout 255 1 4
5157         [ab]
5158         Callout 255 5 1
5159         {
5160         Callout 255 6 1
5161         ,
5162         Callout 255 7 1
5163         4
5164         Callout 255 8 1
5165         }
5166         Callout 255 9 1
5167         c
5168         Callout 255 10 0
5169         Alt
5170         Callout 255 11 1
5171         x
5172         Callout 255 12 1
5173         y
5174         Callout 255 13 0
5175         Ket
5176         Callout 255 14 0
5177         Ket
5178         End
5179 ------------------------------------------------------------------
5180 Capturing subpattern count = 1
5181 Options:
5182 No first char
5183 No need char
5184     Note: that { does NOT introduce a quantifier
5185 --->Note: that { does NOT introduce a quantifier
5186  +0 ^                                                ([ab]{,4}c|xy)
5187  +1 ^                                                [ab]
5188 +11 ^                                                x
5189  +0  ^                                               ([ab]{,4}c|xy)
5190  +1  ^                                               [ab]
5191 +11  ^                                               x
5192  +0   ^                                              ([ab]{,4}c|xy)
5193  +1   ^                                              [ab]
5194 +11   ^                                              x
5195  +0    ^                                             ([ab]{,4}c|xy)
5196  +1    ^                                             [ab]
5197 +11    ^                                             x
5198  +0     ^                                            ([ab]{,4}c|xy)
5199  +1     ^                                            [ab]
5200 +11     ^                                            x
5201  +0      ^                                           ([ab]{,4}c|xy)
5202  +1      ^                                           [ab]
5203 +11      ^                                           x
5204  +0       ^                                          ([ab]{,4}c|xy)
5205  +1       ^                                          [ab]
5206 +11       ^                                          x
5207  +0        ^                                         ([ab]{,4}c|xy)
5208  +1        ^                                         [ab]
5209 +11        ^                                         x
5210  +0         ^                                        ([ab]{,4}c|xy)
5211  +1         ^                                        [ab]
5212  +5         ^^                                       {
5213 +11         ^                                        x
5214  +0          ^                                       ([ab]{,4}c|xy)
5215  +1          ^                                       [ab]
5216 +11          ^                                       x
5217  +0           ^                                      ([ab]{,4}c|xy)
5218  +1           ^                                      [ab]
5219 +11           ^                                      x
5220  +0            ^                                     ([ab]{,4}c|xy)
5221  +1            ^                                     [ab]
5222 +11            ^                                     x
5223  +0             ^                                    ([ab]{,4}c|xy)
5224  +1             ^                                    [ab]
5225 +11             ^                                    x
5226  +0              ^                                   ([ab]{,4}c|xy)
5227  +1              ^                                   [ab]
5228 +11              ^                                   x
5229  +0               ^                                  ([ab]{,4}c|xy)
5230  +1               ^                                  [ab]
5231 +11               ^                                  x
5232  +0                ^                                 ([ab]{,4}c|xy)
5233  +1                ^                                 [ab]
5234 +11                ^                                 x
5235  +0                 ^                                ([ab]{,4}c|xy)
5236  +1                 ^                                [ab]
5237 +11                 ^                                x
5238  +0                  ^                               ([ab]{,4}c|xy)
5239  +1                  ^                               [ab]
5240 +11                  ^                               x
5241  +0                   ^                              ([ab]{,4}c|xy)
5242  +1                   ^                              [ab]
5243 +11                   ^                              x
5244  +0                    ^                             ([ab]{,4}c|xy)
5245  +1                    ^                             [ab]
5246 +11                    ^                             x
5247  +0                     ^                            ([ab]{,4}c|xy)
5248  +1                     ^                            [ab]
5249 +11                     ^                            x
5250  +0                      ^                           ([ab]{,4}c|xy)
5251  +1                      ^                           [ab]
5252 +11                      ^                           x
5253  +0                       ^                          ([ab]{,4}c|xy)
5254  +1                       ^                          [ab]
5255 +11                       ^                          x
5256  +0                        ^                         ([ab]{,4}c|xy)
5257  +1                        ^                         [ab]
5258 +11                        ^                         x
5259  +0                         ^                        ([ab]{,4}c|xy)
5260  +1                         ^                        [ab]
5261 +11                         ^                        x
5262  +0                          ^                       ([ab]{,4}c|xy)
5263  +1                          ^                       [ab]
5264 +11                          ^                       x
5265  +0                           ^                      ([ab]{,4}c|xy)
5266  +1                           ^                      [ab]
5267 +11                           ^                      x
5268  +0                            ^                     ([ab]{,4}c|xy)
5269  +1                            ^                     [ab]
5270 +11                            ^                     x
5271  +0                             ^                    ([ab]{,4}c|xy)
5272  +1                             ^                    [ab]
5273 +11                             ^                    x
5274  +0                              ^                   ([ab]{,4}c|xy)
5275  +1                              ^                   [ab]
5276 +11                              ^                   x
5277  +0                               ^                  ([ab]{,4}c|xy)
5278  +1                               ^                  [ab]
5279 +11                               ^                  x
5280  +0                                ^                 ([ab]{,4}c|xy)
5281  +1                                ^                 [ab]
5282 +11                                ^                 x
5283  +0                                 ^                ([ab]{,4}c|xy)
5284  +1                                 ^                [ab]
5285  +5                                 ^^               {
5286 +11                                 ^                x
5287  +0                                  ^               ([ab]{,4}c|xy)
5288  +1                                  ^               [ab]
5289 +11                                  ^               x
5290  +0                                   ^              ([ab]{,4}c|xy)
5291  +1                                   ^              [ab]
5292 +11                                   ^              x
5293  +0                                    ^             ([ab]{,4}c|xy)
5294  +1                                    ^             [ab]
5295 +11                                    ^             x
5296  +0                                     ^            ([ab]{,4}c|xy)
5297  +1                                     ^            [ab]
5298  +5                                     ^^           {
5299 +11                                     ^            x
5300  +0                                      ^           ([ab]{,4}c|xy)
5301  +1                                      ^           [ab]
5302 +11                                      ^           x
5303  +0                                       ^          ([ab]{,4}c|xy)
5304  +1                                       ^          [ab]
5305 +11                                       ^          x
5306  +0                                        ^         ([ab]{,4}c|xy)
5307  +1                                        ^         [ab]
5308 +11                                        ^         x
5309  +0                                         ^        ([ab]{,4}c|xy)
5310  +1                                         ^        [ab]
5311 +11                                         ^        x
5312  +0                                          ^       ([ab]{,4}c|xy)
5313  +1                                          ^       [ab]
5314 +11                                          ^       x
5315  +0                                           ^      ([ab]{,4}c|xy)
5316  +1                                           ^      [ab]
5317 +11                                           ^      x
5318  +0                                            ^     ([ab]{,4}c|xy)
5319  +1                                            ^     [ab]
5320 +11                                            ^     x
5321  +0                                             ^    ([ab]{,4}c|xy)
5322  +1                                             ^    [ab]
5323 +11                                             ^    x
5324 No match
5325
5326 /([ab]{1,4}c|xy){4,5}?123/ICDZ
5327 ------------------------------------------------------------------
5328         Bra
5329         Callout 255 0 21
5330         CBra 1
5331         Callout 255 1 9
5332         [ab]{1,4}+
5333         Callout 255 10 1
5334         c
5335         Callout 255 11 0
5336         Alt
5337         Callout 255 12 1
5338         x
5339         Callout 255 13 1
5340         y
5341         Callout 255 14 0
5342         Ket
5343         CBra 1
5344         Callout 255 1 9
5345         [ab]{1,4}+
5346         Callout 255 10 1
5347         c
5348         Callout 255 11 0
5349         Alt
5350         Callout 255 12 1
5351         x
5352         Callout 255 13 1
5353         y
5354         Callout 255 14 0
5355         Ket
5356         CBra 1
5357         Callout 255 1 9
5358         [ab]{1,4}+
5359         Callout 255 10 1
5360         c
5361         Callout 255 11 0
5362         Alt
5363         Callout 255 12 1
5364         x
5365         Callout 255 13 1
5366         y
5367         Callout 255 14 0
5368         Ket
5369         CBra 1
5370         Callout 255 1 9
5371         [ab]{1,4}+
5372         Callout 255 10 1
5373         c
5374         Callout 255 11 0
5375         Alt
5376         Callout 255 12 1
5377         x
5378         Callout 255 13 1
5379         y
5380         Callout 255 14 0
5381         Ket
5382         Braminzero
5383         CBra 1
5384         Callout 255 1 9
5385         [ab]{1,4}+
5386         Callout 255 10 1
5387         c
5388         Callout 255 11 0
5389         Alt
5390         Callout 255 12 1
5391         x
5392         Callout 255 13 1
5393         y
5394         Callout 255 14 0
5395         Ket
5396         Callout 255 21 1
5397         1
5398         Callout 255 22 1
5399         2
5400         Callout 255 23 1
5401         3
5402         Callout 255 24 0
5403         Ket
5404         End
5405 ------------------------------------------------------------------
5406 Capturing subpattern count = 1
5407 Options:
5408 No first char
5409 Need char = '3'
5410     aacaacaacaacaac123
5411 --->aacaacaacaacaac123
5412  +0 ^                      ([ab]{1,4}c|xy){4,5}?
5413  +1 ^                      [ab]{1,4}
5414 +10 ^ ^                    c
5415 +11 ^  ^                   |
5416  +1 ^  ^                   [ab]{1,4}
5417 +10 ^    ^                 c
5418 +11 ^     ^                |
5419  +1 ^     ^                [ab]{1,4}
5420 +10 ^       ^              c
5421 +11 ^        ^             |
5422  +1 ^        ^             [ab]{1,4}
5423 +10 ^          ^           c
5424 +11 ^           ^          |
5425 +21 ^           ^          1
5426  +1 ^           ^          [ab]{1,4}
5427 +10 ^             ^        c
5428 +11 ^              ^       |
5429 +21 ^              ^       1
5430 +22 ^               ^      2
5431 +23 ^                ^     3
5432 +24 ^                 ^    
5433  0: aacaacaacaacaac123
5434  1: aac
5435
5436 /\b.*/I
5437 Capturing subpattern count = 0
5438 Max lookbehind = 1
5439 May match empty string
5440 No options
5441 No first char
5442 No need char
5443   ab cd\>1
5444  0:  cd
5445
5446 /\b.*/Is
5447 Capturing subpattern count = 0
5448 Max lookbehind = 1
5449 May match empty string
5450 Options: dotall
5451 No first char
5452 No need char
5453   ab cd\>1
5454  0:  cd
5455
5456 /(?!.bcd).*/I
5457 Capturing subpattern count = 0
5458 May match empty string
5459 No options
5460 No first char
5461 No need char
5462   Xbcd12345
5463  0: bcd12345
5464
5465 /abcde/I
5466 Capturing subpattern count = 0
5467 No options
5468 First char = 'a'
5469 Need char = 'e'
5470     ab\P
5471 Partial match: ab
5472     abc\P
5473 Partial match: abc
5474     abcd\P
5475 Partial match: abcd
5476     abcde\P
5477  0: abcde
5478     the quick brown abc\P
5479 Partial match: abc
5480     ** Failers\P
5481 No match
5482     the quick brown abxyz fox\P
5483 No match
5484
5485 "^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
5486 Capturing subpattern count = 3
5487 Options: anchored
5488 No first char
5489 Need char = '/'
5490     13/05/04\P
5491  0: 13/05/04
5492  1: 13
5493  2: 05
5494     13/5/2004\P
5495  0: 13/5/2004
5496  1: 13
5497  2: 5
5498  3: 20
5499     02/05/09\P
5500  0: 02/05/09
5501  1: 02
5502  2: 05
5503     1\P
5504 Partial match: 1
5505     1/2\P
5506 Partial match: 1/2
5507     1/2/0\P
5508 Partial match: 1/2/0
5509     1/2/04\P
5510  0: 1/2/04
5511  1: 1
5512  2: 2
5513     0\P
5514 Partial match: 0
5515     02/\P
5516 Partial match: 02/
5517     02/0\P
5518 Partial match: 02/0
5519     02/1\P
5520 Partial match: 02/1
5521     ** Failers\P
5522 No match
5523     \P
5524 No match
5525     123\P
5526 No match
5527     33/4/04\P
5528 No match
5529     3/13/04\P
5530 No match
5531     0/1/2003\P
5532 No match
5533     0/\P
5534 No match
5535     02/0/\P
5536 No match
5537     02/13\P
5538 No match
5539
5540 /0{0,2}ABC/I
5541 Capturing subpattern count = 0
5542 No options
5543 No first char
5544 Need char = 'C'
5545
5546 /\d{3,}ABC/I
5547 Capturing subpattern count = 0
5548 No options
5549 No first char
5550 Need char = 'C'
5551
5552 /\d*ABC/I
5553 Capturing subpattern count = 0
5554 No options
5555 No first char
5556 Need char = 'C'
5557
5558 /[abc]+DE/I
5559 Capturing subpattern count = 0
5560 No options
5561 No first char
5562 Need char = 'E'
5563
5564 /[abc]?123/I
5565 Capturing subpattern count = 0
5566 No options
5567 No first char
5568 Need char = '3'
5569     123\P
5570  0: 123
5571     a\P
5572 Partial match: a
5573     b\P
5574 Partial match: b
5575     c\P
5576 Partial match: c
5577     c12\P
5578 Partial match: c12
5579     c123\P
5580  0: c123
5581
5582 /^(?:\d){3,5}X/I
5583 Capturing subpattern count = 0
5584 Options: anchored
5585 No first char
5586 Need char = 'X'
5587     1\P
5588 Partial match: 1
5589     123\P
5590 Partial match: 123
5591     123X
5592  0: 123X
5593     1234\P
5594 Partial match: 1234
5595     1234X
5596  0: 1234X
5597     12345\P
5598 Partial match: 12345
5599     12345X
5600  0: 12345X
5601     *** Failers
5602 No match
5603     1X
5604 No match
5605     123456\P
5606 No match
5607
5608 /abc/IS>testsavedregex
5609 Capturing subpattern count = 0
5610 No options
5611 First char = 'a'
5612 Need char = 'c'
5613 Subject length lower bound = 3
5614 No starting char list
5615 Compiled pattern written to testsavedregex
5616 Study data written to testsavedregex
5617 <testsavedregex
5618 Compiled pattern loaded from testsavedregex
5619 Study data loaded from testsavedregex
5620     abc
5621  0: abc
5622     ** Failers
5623 No match
5624     bca
5625 No match
5626
5627 /abc/ISS>testsavedregex
5628 Capturing subpattern count = 0
5629 No options
5630 First char = 'a'
5631 Need char = 'c'
5632 Compiled pattern written to testsavedregex
5633 <testsavedregex
5634 Compiled pattern loaded from testsavedregex
5635 No study data
5636     abc
5637  0: abc
5638     ** Failers
5639 No match
5640     bca
5641 No match
5642
5643 /abc/IFS>testsavedregex
5644 Capturing subpattern count = 0
5645 No options
5646 First char = 'a'
5647 Need char = 'c'
5648 Subject length lower bound = 3
5649 No starting char list
5650 Compiled pattern written to testsavedregex
5651 Study data written to testsavedregex
5652 <testsavedregex
5653 Compiled pattern (byte-inverted) loaded from testsavedregex
5654 Study data loaded from testsavedregex
5655     abc
5656  0: abc
5657     ** Failers
5658 No match
5659     bca
5660 No match
5661
5662 /abc/IFSS>testsavedregex
5663 Capturing subpattern count = 0
5664 No options
5665 First char = 'a'
5666 Need char = 'c'
5667 Compiled pattern written to testsavedregex
5668 <testsavedregex
5669 Compiled pattern (byte-inverted) loaded from testsavedregex
5670 No study data
5671     abc
5672  0: abc
5673     ** Failers
5674 No match
5675     bca
5676 No match
5677
5678 /(a|b)/IS>testsavedregex
5679 Capturing subpattern count = 1
5680 No options
5681 No first char
5682 No need char
5683 Subject length lower bound = 1
5684 Starting chars: a b 
5685 Compiled pattern written to testsavedregex
5686 Study data written to testsavedregex
5687 <testsavedregex
5688 Compiled pattern loaded from testsavedregex
5689 Study data loaded from testsavedregex
5690     abc
5691  0: a
5692  1: a
5693     ** Failers
5694  0: a
5695  1: a
5696     def
5697 No match
5698
5699 /(a|b)/ISS>testsavedregex
5700 Capturing subpattern count = 1
5701 No options
5702 No first char
5703 No need char
5704 Compiled pattern written to testsavedregex
5705 <testsavedregex
5706 Compiled pattern loaded from testsavedregex
5707 No study data
5708     abc
5709  0: a
5710  1: a
5711     ** Failers
5712  0: a
5713  1: a
5714     def
5715 No match
5716
5717 /(a|b)/ISF>testsavedregex
5718 Capturing subpattern count = 1
5719 No options
5720 No first char
5721 No need char
5722 Subject length lower bound = 1
5723 Starting chars: a b 
5724 Compiled pattern written to testsavedregex
5725 Study data written to testsavedregex
5726 <testsavedregex
5727 Compiled pattern (byte-inverted) loaded from testsavedregex
5728 Study data loaded from testsavedregex
5729     abc
5730  0: a
5731  1: a
5732     ** Failers
5733  0: a
5734  1: a
5735     def
5736 No match
5737
5738 /(a|b)/ISSF>testsavedregex
5739 Capturing subpattern count = 1
5740 No options
5741 No first char
5742 No need char
5743 Compiled pattern written to testsavedregex
5744 <testsavedregex
5745 Compiled pattern (byte-inverted) loaded from testsavedregex
5746 No study data
5747     abc
5748  0: a
5749  1: a
5750     ** Failers
5751  0: a
5752  1: a
5753     def
5754 No match
5755
5756 ~<(\w+)/?>(.)*</(\1)>~smgI
5757 Capturing subpattern count = 3
5758 Max back reference = 1
5759 Options: multiline dotall
5760 First char = '<'
5761 Need char = '>'
5762     \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
5763  0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
5764  1: seite
5765  2: \x0a
5766  3: seite
5767
5768 /^a/IF
5769 Capturing subpattern count = 0
5770 Options: anchored
5771 No first char
5772 No need char
5773
5774 /line\nbreak/I
5775 Capturing subpattern count = 0
5776 Contains explicit CR or LF match
5777 No options
5778 First char = 'l'
5779 Need char = 'k'
5780     this is a line\nbreak
5781  0: line\x0abreak
5782     line one\nthis is a line\nbreak in the second line
5783  0: line\x0abreak
5784
5785 /line\nbreak/If
5786 Capturing subpattern count = 0
5787 Contains explicit CR or LF match
5788 Options: firstline
5789 First char = 'l'
5790 Need char = 'k'
5791     this is a line\nbreak
5792  0: line\x0abreak
5793     ** Failers
5794 No match
5795     line one\nthis is a line\nbreak in the second line
5796 No match
5797
5798 /line\nbreak/Imf
5799 Capturing subpattern count = 0
5800 Contains explicit CR or LF match
5801 Options: multiline firstline
5802 First char = 'l'
5803 Need char = 'k'
5804     this is a line\nbreak
5805  0: line\x0abreak
5806     ** Failers
5807 No match
5808     line one\nthis is a line\nbreak in the second line
5809 No match
5810
5811 /(?i)(?-i)AbCd/I
5812 Capturing subpattern count = 0
5813 No options
5814 First char = 'A'
5815 Need char = 'd'
5816     AbCd
5817  0: AbCd
5818     ** Failers
5819 No match
5820     abcd
5821 No match
5822
5823 /a{11111111111111111111}/I
5824 Failed: number too big in {} quantifier at offset 8
5825
5826 /(){64294967295}/I
5827 Failed: number too big in {} quantifier at offset 9
5828
5829 /(){2,4294967295}/I
5830 Failed: number too big in {} quantifier at offset 11
5831
5832 "(?i:a)(?i:b)(?i:c)(?i:d)(?i:e)(?i:f)(?i:g)(?i:h)(?i:i)(?i:j)(k)(?i:l)A\1B"I
5833 Capturing subpattern count = 1
5834 Max back reference = 1
5835 No options
5836 First char = 'a' (caseless)
5837 Need char = 'B'
5838     abcdefghijklAkB
5839  0: abcdefghijklAkB
5840  1: k
5841
5842 "(?P<n0>a)(?P<n1>b)(?P<n2>c)(?P<n3>d)(?P<n4>e)(?P<n5>f)(?P<n6>g)(?P<n7>h)(?P<n8>i)(?P<n9>j)(?P<n10>k)(?P<n11>l)A\11B"I
5843 Capturing subpattern count = 12
5844 Max back reference = 11
5845 Named capturing subpatterns:
5846   n0    1
5847   n1    2
5848   n10  11
5849   n11  12
5850   n2    3
5851   n3    4
5852   n4    5
5853   n5    6
5854   n6    7
5855   n7    8
5856   n8    9
5857   n9   10
5858 No options
5859 First char = 'a'
5860 Need char = 'B'
5861     abcdefghijklAkB
5862  0: abcdefghijklAkB
5863  1: a
5864  2: b
5865  3: c
5866  4: d
5867  5: e
5868  6: f
5869  7: g
5870  8: h
5871  9: i
5872 10: j
5873 11: k
5874 12: l
5875
5876 "(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
5877 Capturing subpattern count = 12
5878 Max back reference = 11
5879 No options
5880 First char = 'a'
5881 Need char = 'B'
5882     abcdefghijklAkB
5883  0: abcdefghijklAkB
5884  1: a
5885  2: b
5886  3: c
5887  4: d
5888  5: e
5889  6: f
5890  7: g
5891  8: h
5892  9: i
5893 10: j
5894 11: k
5895 12: l
5896
5897 "(?P<name0>a)(?P<name1>a)(?P<name2>a)(?P<name3>a)(?P<name4>a)(?P<name5>a)(?P<name6>a)(?P<name7>a)(?P<name8>a)(?P<name9>a)(?P<name10>a)(?P<name11>a)(?P<name12>a)(?P<name13>a)(?P<name14>a)(?P<name15>a)(?P<name16>a)(?P<name17>a)(?P<name18>a)(?P<name19>a)(?P<name20>a)(?P<name21>a)(?P<name22>a)(?P<name23>a)(?P<name24>a)(?P<name25>a)(?P<name26>a)(?P<name27>a)(?P<name28>a)(?P<name29>a)(?P<name30>a)(?P<name31>a)(?P<name32>a)(?P<name33>a)(?P<name34>a)(?P<name35>a)(?P<name36>a)(?P<name37>a)(?P<name38>a)(?P<name39>a)(?P<name40>a)(?P<name41>a)(?P<name42>a)(?P<name43>a)(?P<name44>a)(?P<name45>a)(?P<name46>a)(?P<name47>a)(?P<name48>a)(?P<name49>a)(?P<name50>a)(?P<name51>a)(?P<name52>a)(?P<name53>a)(?P<name54>a)(?P<name55>a)(?P<name56>a)(?P<name57>a)(?P<name58>a)(?P<name59>a)(?P<name60>a)(?P<name61>a)(?P<name62>a)(?P<name63>a)(?P<name64>a)(?P<name65>a)(?P<name66>a)(?P<name67>a)(?P<name68>a)(?P<name69>a)(?P<name70>a)(?P<name71>a)(?P<name72>a)(?P<name73>a)(?P<name74>a)(?P<name75>a)(?P<name76>a)(?P<name77>a)(?P<name78>a)(?P<name79>a)(?P<name80>a)(?P<name81>a)(?P<name82>a)(?P<name83>a)(?P<name84>a)(?P<name85>a)(?P<name86>a)(?P<name87>a)(?P<name88>a)(?P<name89>a)(?P<name90>a)(?P<name91>a)(?P<name92>a)(?P<name93>a)(?P<name94>a)(?P<name95>a)(?P<name96>a)(?P<name97>a)(?P<name98>a)(?P<name99>a)(?P<name100>a)"I
5898 Capturing subpattern count = 101
5899 Named capturing subpatterns:
5900   name0     1
5901   name1     2
5902   name10   11
5903   name100 101
5904   name11   12
5905   name12   13
5906   name13   14
5907   name14   15
5908   name15   16
5909   name16   17
5910   name17   18
5911   name18   19
5912   name19   20
5913   name2     3
5914   name20   21
5915   name21   22
5916   name22   23
5917   name23   24
5918   name24   25
5919   name25   26
5920   name26   27
5921   name27   28
5922   name28   29
5923   name29   30
5924   name3     4
5925   name30   31
5926   name31   32
5927   name32   33
5928   name33   34
5929   name34   35
5930   name35   36
5931   name36   37
5932   name37   38
5933   name38   39
5934   name39   40
5935   name4     5
5936   name40   41
5937   name41   42
5938   name42   43
5939   name43   44
5940   name44   45
5941   name45   46
5942   name46   47
5943   name47   48
5944   name48   49
5945   name49   50
5946   name5     6
5947   name50   51
5948   name51   52
5949   name52   53
5950   name53   54
5951   name54   55
5952   name55   56
5953   name56   57
5954   name57   58
5955   name58   59
5956   name59   60
5957   name6     7
5958   name60   61
5959   name61   62
5960   name62   63
5961   name63   64
5962   name64   65
5963   name65   66
5964   name66   67
5965   name67   68
5966   name68   69
5967   name69   70
5968   name7     8
5969   name70   71
5970   name71   72
5971   name72   73
5972   name73   74
5973   name74   75
5974   name75   76
5975   name76   77
5976   name77   78
5977   name78   79
5978   name79   80
5979   name8     9
5980   name80   81
5981   name81   82
5982   name82   83
5983   name83   84
5984   name84   85
5985   name85   86
5986   name86   87
5987   name87   88
5988   name88   89
5989   name89   90
5990   name9    10
5991   name90   91
5992   name91   92
5993   name92   93
5994   name93   94
5995   name94   95
5996   name95   96
5997   name96   97
5998   name97   98
5999   name98   99
6000   name99  100
6001 No options
6002 First char = 'a'
6003 Need char = 'a'
6004     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6005 Matched, but too many substrings
6006  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6007  1: a
6008  2: a
6009  3: a
6010  4: a
6011  5: a
6012  6: a
6013  7: a
6014  8: a
6015  9: a
6016 10: a
6017 11: a
6018 12: a
6019 13: a
6020 14: a
6021
6022 "(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)"I
6023 Capturing subpattern count = 101
6024 No options
6025 First char = 'a'
6026 Need char = 'a'
6027     aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6028 Matched, but too many substrings
6029  0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6030  1: a
6031  2: a
6032  3: a
6033  4: a
6034  5: a
6035  6: a
6036  7: a
6037  8: a
6038  9: a
6039 10: a
6040 11: a
6041 12: a
6042 13: a
6043 14: a
6044
6045 /[^()]*(?:\((?R)\)[^()]*)*/I
6046 Capturing subpattern count = 0
6047 May match empty string
6048 No options
6049 No first char
6050 No need char
6051     (this(and)that
6052  0: 
6053     (this(and)that)
6054  0: (this(and)that)
6055     (this(and)that)stuff
6056  0: (this(and)that)stuff
6057
6058 /[^()]*(?:\((?>(?R))\)[^()]*)*/I
6059 Capturing subpattern count = 0
6060 May match empty string
6061 No options
6062 No first char
6063 No need char
6064     (this(and)that
6065  0: 
6066     (this(and)that)
6067  0: (this(and)that)
6068
6069 /[^()]*(?:\((?R)\))*[^()]*/I
6070 Capturing subpattern count = 0
6071 May match empty string
6072 No options
6073 No first char
6074 No need char
6075     (this(and)that
6076  0: 
6077     (this(and)that)
6078  0: (this(and)that)
6079
6080 /(?:\((?R)\))*[^()]*/I
6081 Capturing subpattern count = 0
6082 May match empty string
6083 No options
6084 No first char
6085 No need char
6086     (this(and)that
6087  0: 
6088     (this(and)that)
6089  0: 
6090     ((this))
6091  0: ((this))
6092
6093 /(?:\((?R)\))|[^()]*/I
6094 Capturing subpattern count = 0
6095 May match empty string
6096 No options
6097 No first char
6098 No need char
6099     (this(and)that
6100  0: 
6101     (this(and)that)
6102  0: 
6103     (this)
6104  0: (this)
6105     ((this))
6106  0: ((this))
6107
6108 /\x{0000ff}/I
6109 Capturing subpattern count = 0
6110 No options
6111 First char = \xff
6112 No need char
6113
6114 /^((?P<A>a1)|(?P<A>a2)b)/I
6115 Failed: two named subpatterns have the same name at offset 17
6116
6117 /^((?P<A>a1)|(?P<A>a2)b)/IJ
6118 Capturing subpattern count = 3
6119 Named capturing subpatterns:
6120   A   2
6121   A   3
6122 Options: anchored dupnames
6123 No first char
6124 No need char
6125     a1b\CA
6126  0: a1
6127  1: a1
6128  2: a1
6129   C a1 (2) A
6130     a2b\CA
6131  0: a2b
6132  1: a2b
6133  2: <unset>
6134  3: a2
6135   C a2 (2) A
6136     ** Failers
6137 No match
6138     a1b\CZ\CA
6139 no parentheses with name "Z"
6140  0: a1
6141  1: a1
6142  2: a1
6143 copy substring Z failed -7
6144   C a1 (2) A
6145     
6146 /(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6147 Capturing subpattern count = 3
6148 Named capturing subpatterns:
6149   a   1
6150   a   3
6151   b   2
6152 May match empty string
6153 Options: dupnames
6154 No first char
6155 No need char
6156
6157 /^(?P<A>a)(?P<A>b)/IJ
6158 Capturing subpattern count = 2
6159 Named capturing subpatterns:
6160   A   1
6161   A   2
6162 Options: anchored dupnames
6163 No first char
6164 No need char
6165     ab\CA
6166  0: ab
6167  1: a
6168  2: b
6169   C a (1) A
6170
6171 /^(?P<A>a)(?P<A>b)|cd/IJ
6172 Capturing subpattern count = 2
6173 Named capturing subpatterns:
6174   A   1
6175   A   2
6176 Options: dupnames
6177 No first char
6178 No need char
6179     ab\CA
6180  0: ab
6181  1: a
6182  2: b
6183   C a (1) A
6184     cd\CA
6185  0: cd
6186 copy substring A failed -7
6187
6188 /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6189 Capturing subpattern count = 4
6190 Named capturing subpatterns:
6191   A   1
6192   A   2
6193   A   3
6194   A   4
6195 Options: dupnames
6196 No first char
6197 No need char
6198     cdefgh\CA
6199  0: cdefgh
6200  1: <unset>
6201  2: <unset>
6202  3: ef
6203  4: gh
6204   C ef (2) A
6205
6206 /^((?P<A>a1)|(?P<A>a2)b)/IJ
6207 Capturing subpattern count = 3
6208 Named capturing subpatterns:
6209   A   2
6210   A   3
6211 Options: anchored dupnames
6212 No first char
6213 No need char
6214     a1b\GA
6215  0: a1
6216  1: a1
6217  2: a1
6218   G a1 (2) A
6219     a2b\GA
6220  0: a2b
6221  1: a2b
6222  2: <unset>
6223  3: a2
6224   G a2 (2) A
6225     ** Failers
6226 No match
6227     a1b\GZ\GA
6228 no parentheses with name "Z"
6229  0: a1
6230  1: a1
6231  2: a1
6232 get substring Z failed -7
6233   G a1 (2) A
6234
6235 /^(?P<A>a)(?P<A>b)/IJ
6236 Capturing subpattern count = 2
6237 Named capturing subpatterns:
6238   A   1
6239   A   2
6240 Options: anchored dupnames
6241 No first char
6242 No need char
6243     ab\GA
6244  0: ab
6245  1: a
6246  2: b
6247   G a (1) A
6248
6249 /^(?P<A>a)(?P<A>b)|cd/IJ
6250 Capturing subpattern count = 2
6251 Named capturing subpatterns:
6252   A   1
6253   A   2
6254 Options: dupnames
6255 No first char
6256 No need char
6257     ab\GA
6258  0: ab
6259  1: a
6260  2: b
6261   G a (1) A
6262     cd\GA
6263  0: cd
6264 get substring A failed -7
6265
6266 /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6267 Capturing subpattern count = 4
6268 Named capturing subpatterns:
6269   A   1
6270   A   2
6271   A   3
6272   A   4
6273 Options: dupnames
6274 No first char
6275 No need char
6276     cdefgh\GA
6277  0: cdefgh
6278  1: <unset>
6279  2: <unset>
6280  3: ef
6281  4: gh
6282   G ef (2) A
6283
6284 /(?J)^((?P<A>a1)|(?P<A>a2)b)/I
6285 Capturing subpattern count = 3
6286 Named capturing subpatterns:
6287   A   2
6288   A   3
6289 Options: anchored dupnames
6290 Duplicate name status changes
6291 No first char
6292 No need char
6293     a1b\CA
6294  0: a1
6295  1: a1
6296  2: a1
6297   C a1 (2) A
6298     a2b\CA
6299  0: a2b
6300  1: a2b
6301  2: <unset>
6302  3: a2
6303   C a2 (2) A
6304
6305 /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
6306 Failed: two named subpatterns have the same name at offset 37
6307
6308 / In this next test, J is not set at the outer level; consequently it isn't
6309 set in the pattern's options; consequently pcre_get_named_substring() produces
6310 a random value. /Ix
6311 Capturing subpattern count = 1
6312 Options: extended
6313 First char = 'I'
6314 Need char = 'e'
6315
6316 /^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
6317 Capturing subpattern count = 4
6318 Named capturing subpatterns:
6319   A   1
6320   B   2
6321   B   3
6322   C   4
6323 Options: anchored
6324 Duplicate name status changes
6325 No first char
6326 No need char
6327     a bc d\CA\CB\CC
6328  0: a bc d
6329  1: a
6330  2: b
6331  3: c
6332  4: d
6333   C a (1) A
6334   C b (1) B
6335   C d (1) C
6336
6337 /^(?P<A>a)?(?(A)a|b)/I
6338 Capturing subpattern count = 1
6339 Named capturing subpatterns:
6340   A   1
6341 Options: anchored
6342 No first char
6343 No need char
6344     aabc
6345  0: aa
6346  1: a
6347     bc
6348  0: b
6349     ** Failers
6350 No match
6351     abc
6352 No match
6353
6354 /(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
6355 Capturing subpattern count = 1
6356 Named capturing subpatterns:
6357   ZZ   1
6358 No options
6359 No first char
6360 Need char = 'X'
6361     bXaX
6362  0: bXaX
6363  1: X
6364
6365 /(?:(?(2y)a|b)(X))+/I
6366 Failed: malformed number or name after (?( at offset 7
6367
6368 /(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6369 Failed: reference to non-existent subpattern at offset 9
6370
6371 /(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
6372 Capturing subpattern count = 1
6373 Named capturing subpatterns:
6374   ZZ   1
6375 No options
6376 No first char
6377 Need char = 'X'
6378     bbXaaX
6379  0: bbXaaX
6380  1: X
6381
6382 /(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
6383 Capturing subpattern count = 1
6384 Named capturing subpatterns:
6385   ZZ   1
6386 No options
6387 No first char
6388 Need char = 'X'
6389     (b)\\Xa\\X
6390  0: (b)\Xa\X
6391  1: X
6392
6393 /(?P<ABC/I
6394 Failed: syntax error in subpattern name (missing terminator) at offset 7
6395
6396 /(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6397 Capturing subpattern count = 1
6398 Max back reference = 1
6399 Named capturing subpatterns:
6400   A   1
6401 No options
6402 No first char
6403 No need char
6404     bXXaYYaY
6405  0: bXXaYYaY
6406  1: Y
6407     bXYaXXaX
6408  0: bX
6409  1: X
6410
6411 /()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6412 Capturing subpattern count = 10
6413 Max back reference = 10
6414 Named capturing subpatterns:
6415   A  10
6416 No options
6417 No first char
6418 No need char
6419     bXXaYYaY
6420  0: bXXaYYaY
6421  1: 
6422  2: 
6423  3: 
6424  4: 
6425  5: 
6426  6: 
6427  7: 
6428  8: 
6429  9: 
6430 10: Y
6431
6432 /\s*,\s*/IS
6433 Capturing subpattern count = 0
6434 No options
6435 No first char
6436 Need char = ','
6437 Subject length lower bound = 1
6438 Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 , 
6439     \x0b,\x0b
6440  0: \x0b,\x0b
6441     \x0c,\x0d
6442  0: \x0c,\x0d
6443
6444 /^abc/Im
6445 Capturing subpattern count = 0
6446 Options: multiline
6447 First char at start or follows newline
6448 Need char = 'c'
6449     xyz\nabc
6450  0: abc
6451     xyz\nabc\<lf>
6452  0: abc
6453     xyz\r\nabc\<lf>
6454  0: abc
6455     xyz\rabc\<cr>
6456  0: abc
6457     xyz\r\nabc\<crlf>
6458  0: abc
6459     ** Failers
6460 No match
6461     xyz\nabc\<cr>
6462 No match
6463     xyz\r\nabc\<cr>
6464 No match
6465     xyz\nabc\<crlf>
6466 No match
6467     xyz\rabc\<crlf>
6468 No match
6469     xyz\rabc\<lf>
6470 No match
6471
6472 /abc$/Im<lf>
6473 Capturing subpattern count = 0
6474 Options: multiline
6475 Forced newline sequence: LF
6476 First char = 'a'
6477 Need char = 'c'
6478     xyzabc
6479  0: abc
6480     xyzabc\n
6481  0: abc
6482     xyzabc\npqr
6483  0: abc
6484     xyzabc\r\<cr>
6485  0: abc
6486     xyzabc\rpqr\<cr>
6487  0: abc
6488     xyzabc\r\n\<crlf>
6489  0: abc
6490     xyzabc\r\npqr\<crlf>
6491  0: abc
6492     ** Failers
6493 No match
6494     xyzabc\r
6495 No match
6496     xyzabc\rpqr
6497 No match
6498     xyzabc\r\n
6499 No match
6500     xyzabc\r\npqr
6501 No match
6502
6503 /^abc/Im<cr>
6504 Capturing subpattern count = 0
6505 Options: multiline
6506 Forced newline sequence: CR
6507 First char at start or follows newline
6508 Need char = 'c'
6509     xyz\rabcdef
6510  0: abc
6511     xyz\nabcdef\<lf>
6512  0: abc
6513     ** Failers
6514 No match
6515     xyz\nabcdef
6516 No match
6517
6518 /^abc/Im<lf>
6519 Capturing subpattern count = 0
6520 Options: multiline
6521 Forced newline sequence: LF
6522 First char at start or follows newline
6523 Need char = 'c'
6524     xyz\nabcdef
6525  0: abc
6526     xyz\rabcdef\<cr>
6527  0: abc
6528     ** Failers
6529 No match
6530     xyz\rabcdef
6531 No match
6532
6533 /^abc/Im<crlf>
6534 Capturing subpattern count = 0
6535 Options: multiline
6536 Forced newline sequence: CRLF
6537 First char at start or follows newline
6538 Need char = 'c'
6539     xyz\r\nabcdef
6540  0: abc
6541     xyz\rabcdef\<cr>
6542  0: abc
6543     ** Failers
6544 No match
6545     xyz\rabcdef
6546 No match
6547
6548 /^abc/Im<bad>
6549 Unknown modifier at: <bad>
6550
6551
6552 /abc/I
6553 Capturing subpattern count = 0
6554 No options
6555 First char = 'a'
6556 Need char = 'c'
6557     xyz\rabc\<bad>
6558 Unknown escape sequence at: <bad>
6559     abc
6560  0: abc
6561
6562 /.*/I<lf>
6563 Capturing subpattern count = 0
6564 May match empty string
6565 Options:
6566 Forced newline sequence: LF
6567 First char at start or follows newline
6568 No need char
6569     abc\ndef
6570  0: abc
6571     abc\rdef
6572  0: abc\x0ddef
6573     abc\r\ndef
6574  0: abc\x0d
6575     \<cr>abc\ndef
6576  0: abc\x0adef
6577     \<cr>abc\rdef
6578  0: abc
6579     \<cr>abc\r\ndef
6580  0: abc
6581     \<crlf>abc\ndef
6582  0: abc\x0adef
6583     \<crlf>abc\rdef
6584  0: abc\x0ddef
6585     \<crlf>abc\r\ndef
6586  0: abc
6587
6588 /\w+(.)(.)?def/Is
6589 Capturing subpattern count = 2
6590 Options: dotall
6591 No first char
6592 Need char = 'f'
6593     abc\ndef
6594  0: abc\x0adef
6595  1: \x0a
6596     abc\rdef
6597  0: abc\x0ddef
6598  1: \x0d
6599     abc\r\ndef
6600  0: abc\x0d\x0adef
6601  1: \x0d
6602  2: \x0a
6603
6604 +((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6605 Capturing subpattern count = 1
6606 May match empty string
6607 No options
6608 No first char
6609 No need char
6610    /* this is a C style comment */\M
6611 Minimum match() limit = 120
6612 Minimum match() recursion limit = 6
6613  0: /* this is a C style comment */
6614  1: /* this is a C style comment */
6615
6616 /(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
6617 Capturing subpattern count = 1
6618 Named capturing subpatterns:
6619   B   1
6620 No options
6621 No first char
6622 Need char = '.'
6623
6624 /()()()()()()()()()()()()()()()()()()()()
6625  ()()()()()()()()()()()()()()()()()()()()
6626  ()()()()()()()()()()()()()()()()()()()()
6627  ()()()()()()()()()()()()()()()()()()()()
6628  ()()()()()()()()()()()()()()()()()()()()
6629  (.(.))/Ix
6630 Capturing subpattern count = 102
6631 Options: extended
6632 No first char
6633 No need char
6634     XY\O400
6635  0: XY
6636  1: 
6637  2: 
6638  3: 
6639  4: 
6640  5: 
6641  6: 
6642  7: 
6643  8: 
6644  9: 
6645 10: 
6646 11: 
6647 12: 
6648 13: 
6649 14: 
6650 15: 
6651 16: 
6652 17: 
6653 18: 
6654 19: 
6655 20: 
6656 21: 
6657 22: 
6658 23: 
6659 24: 
6660 25: 
6661 26: 
6662 27: 
6663 28: 
6664 29: 
6665 30: 
6666 31: 
6667 32: 
6668 33: 
6669 34: 
6670 35: 
6671 36: 
6672 37: 
6673 38: 
6674 39: 
6675 40: 
6676 41: 
6677 42: 
6678 43: 
6679 44: 
6680 45: 
6681 46: 
6682 47: 
6683 48: 
6684 49: 
6685 50: 
6686 51: 
6687 52: 
6688 53: 
6689 54: 
6690 55: 
6691 56: 
6692 57: 
6693 58: 
6694 59: 
6695 60: 
6696 61: 
6697 62: 
6698 63: 
6699 64: 
6700 65: 
6701 66: 
6702 67: 
6703 68: 
6704 69: 
6705 70: 
6706 71: 
6707 72: 
6708 73: 
6709 74: 
6710 75: 
6711 76: 
6712 77: 
6713 78: 
6714 79: 
6715 80: 
6716 81: 
6717 82: 
6718 83: 
6719 84: 
6720 85: 
6721 86: 
6722 87: 
6723 88: 
6724 89: 
6725 90: 
6726 91: 
6727 92: 
6728 93: 
6729 94: 
6730 95: 
6731 96: 
6732 97: 
6733 98: 
6734 99: 
6735 100: 
6736 101: XY
6737 102: Y
6738
6739 /(a*b|(?i:c*(?-i)d))/IS
6740 Capturing subpattern count = 1
6741 No options
6742 No first char
6743 No need char
6744 Subject length lower bound = 1
6745 Starting chars: C a b c d 
6746
6747 /()[ab]xyz/IS
6748 Capturing subpattern count = 1
6749 No options
6750 No first char
6751 Need char = 'z'
6752 Subject length lower bound = 4
6753 Starting chars: a b 
6754
6755 /(|)[ab]xyz/IS
6756 Capturing subpattern count = 1
6757 No options
6758 No first char
6759 Need char = 'z'
6760 Subject length lower bound = 4
6761 Starting chars: a b 
6762
6763 /(|c)[ab]xyz/IS
6764 Capturing subpattern count = 1
6765 No options
6766 No first char
6767 Need char = 'z'
6768 Subject length lower bound = 4
6769 Starting chars: a b c 
6770
6771 /(|c?)[ab]xyz/IS
6772 Capturing subpattern count = 1
6773 No options
6774 No first char
6775 Need char = 'z'
6776 Subject length lower bound = 4
6777 Starting chars: a b c 
6778
6779 /(d?|c?)[ab]xyz/IS
6780 Capturing subpattern count = 1
6781 No options
6782 No first char
6783 Need char = 'z'
6784 Subject length lower bound = 4
6785 Starting chars: a b c d 
6786
6787 /(d?|c)[ab]xyz/IS
6788 Capturing subpattern count = 1
6789 No options
6790 No first char
6791 Need char = 'z'
6792 Subject length lower bound = 4
6793 Starting chars: a b c d 
6794
6795 /^a*b\d/DZ
6796 ------------------------------------------------------------------
6797         Bra
6798         ^
6799         a*+
6800         b
6801         \d
6802         Ket
6803         End
6804 ------------------------------------------------------------------
6805 Capturing subpattern count = 0
6806 Options: anchored
6807 No first char
6808 Need char = 'b'
6809
6810 /^a*+b\d/DZ
6811 ------------------------------------------------------------------
6812         Bra
6813         ^
6814         a*+
6815         b
6816         \d
6817         Ket
6818         End
6819 ------------------------------------------------------------------
6820 Capturing subpattern count = 0
6821 Options: anchored
6822 No first char
6823 Need char = 'b'
6824
6825 /^a*?b\d/DZ
6826 ------------------------------------------------------------------
6827         Bra
6828         ^
6829         a*+
6830         b
6831         \d
6832         Ket
6833         End
6834 ------------------------------------------------------------------
6835 Capturing subpattern count = 0
6836 Options: anchored
6837 No first char
6838 Need char = 'b'
6839
6840 /^a+A\d/DZ
6841 ------------------------------------------------------------------
6842         Bra
6843         ^
6844         a++
6845         A
6846         \d
6847         Ket
6848         End
6849 ------------------------------------------------------------------
6850 Capturing subpattern count = 0
6851 Options: anchored
6852 No first char
6853 Need char = 'A'
6854     aaaA5
6855  0: aaaA5
6856     ** Failers
6857 No match
6858     aaaa5
6859 No match
6860
6861 /^a*A\d/IiDZ
6862 ------------------------------------------------------------------
6863         Bra
6864         ^
6865      /i a*
6866      /i A
6867         \d
6868         Ket
6869         End
6870 ------------------------------------------------------------------
6871 Capturing subpattern count = 0
6872 Options: anchored caseless
6873 No first char
6874 Need char = 'A' (caseless)
6875     aaaA5
6876  0: aaaA5
6877     aaaa5
6878  0: aaaa5
6879
6880 /(a*|b*)[cd]/IS
6881 Capturing subpattern count = 1
6882 No options
6883 No first char
6884 No need char
6885 Subject length lower bound = 1
6886 Starting chars: a b c d 
6887
6888 /(a+|b*)[cd]/IS
6889 Capturing subpattern count = 1
6890 No options
6891 No first char
6892 No need char
6893 Subject length lower bound = 1
6894 Starting chars: a b c d 
6895
6896 /(a*|b+)[cd]/IS
6897 Capturing subpattern count = 1
6898 No options
6899 No first char
6900 No need char
6901 Subject length lower bound = 1
6902 Starting chars: a b c d 
6903
6904 /(a+|b+)[cd]/IS
6905 Capturing subpattern count = 1
6906 No options
6907 No first char
6908 No need char
6909 Subject length lower bound = 2
6910 Starting chars: a b 
6911
6912 /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6913  ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6914  (((
6915  a
6916  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6917  ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6918  )))
6919 /Ix
6920 Capturing subpattern count = 203
6921 Options: extended
6922 First char = 'a'
6923 No need char
6924   large nest
6925 Matched, but too many substrings
6926  0: a
6927  1: a
6928  2: a
6929  3: a
6930  4: a
6931  5: a
6932  6: a
6933  7: a
6934  8: a
6935  9: a
6936 10: a
6937 11: a
6938 12: a
6939 13: a
6940 14: a
6941
6942 /a*\d/BZ
6943 ------------------------------------------------------------------
6944         Bra
6945         a*+
6946         \d
6947         Ket
6948         End
6949 ------------------------------------------------------------------
6950
6951 /a*\D/BZ
6952 ------------------------------------------------------------------
6953         Bra
6954         a*
6955         \D
6956         Ket
6957         End
6958 ------------------------------------------------------------------
6959
6960 /0*\d/BZ
6961 ------------------------------------------------------------------
6962         Bra
6963         0*
6964         \d
6965         Ket
6966         End
6967 ------------------------------------------------------------------
6968
6969 /0*\D/BZ
6970 ------------------------------------------------------------------
6971         Bra
6972         0*+
6973         \D
6974         Ket
6975         End
6976 ------------------------------------------------------------------
6977
6978 /a*\s/BZ
6979 ------------------------------------------------------------------
6980         Bra
6981         a*+
6982         \s
6983         Ket
6984         End
6985 ------------------------------------------------------------------
6986
6987 /a*\S/BZ
6988 ------------------------------------------------------------------
6989         Bra
6990         a*
6991         \S
6992         Ket
6993         End
6994 ------------------------------------------------------------------
6995
6996 / *\s/BZ
6997 ------------------------------------------------------------------
6998         Bra
6999          *
7000         \s
7001         Ket
7002         End
7003 ------------------------------------------------------------------
7004
7005 / *\S/BZ
7006 ------------------------------------------------------------------
7007         Bra
7008          *+
7009         \S
7010         Ket
7011         End
7012 ------------------------------------------------------------------
7013
7014 /a*\w/BZ
7015 ------------------------------------------------------------------
7016         Bra
7017         a*
7018         \w
7019         Ket
7020         End
7021 ------------------------------------------------------------------
7022
7023 /a*\W/BZ
7024 ------------------------------------------------------------------
7025         Bra
7026         a*+
7027         \W
7028         Ket
7029         End
7030 ------------------------------------------------------------------
7031
7032 /=*\w/BZ
7033 ------------------------------------------------------------------
7034         Bra
7035         =*+
7036         \w
7037         Ket
7038         End
7039 ------------------------------------------------------------------
7040
7041 /=*\W/BZ
7042 ------------------------------------------------------------------
7043         Bra
7044         =*
7045         \W
7046         Ket
7047         End
7048 ------------------------------------------------------------------
7049
7050 /\d*a/BZ
7051 ------------------------------------------------------------------
7052         Bra
7053         \d*+
7054         a
7055         Ket
7056         End
7057 ------------------------------------------------------------------
7058
7059 /\d*2/BZ
7060 ------------------------------------------------------------------
7061         Bra
7062         \d*
7063         2
7064         Ket
7065         End
7066 ------------------------------------------------------------------
7067
7068 /\d*\d/BZ
7069 ------------------------------------------------------------------
7070         Bra
7071         \d*
7072         \d
7073         Ket
7074         End
7075 ------------------------------------------------------------------
7076
7077 /\d*\D/BZ
7078 ------------------------------------------------------------------
7079         Bra
7080         \d*+
7081         \D
7082         Ket
7083         End
7084 ------------------------------------------------------------------
7085
7086 /\d*\s/BZ
7087 ------------------------------------------------------------------
7088         Bra
7089         \d*+
7090         \s
7091         Ket
7092         End
7093 ------------------------------------------------------------------
7094
7095 /\d*\S/BZ
7096 ------------------------------------------------------------------
7097         Bra
7098         \d*
7099         \S
7100         Ket
7101         End
7102 ------------------------------------------------------------------
7103
7104 /\d*\w/BZ
7105 ------------------------------------------------------------------
7106         Bra
7107         \d*
7108         \w
7109         Ket
7110         End
7111 ------------------------------------------------------------------
7112
7113 /\d*\W/BZ
7114 ------------------------------------------------------------------
7115         Bra
7116         \d*+
7117         \W
7118         Ket
7119         End
7120 ------------------------------------------------------------------
7121
7122 /\D*a/BZ
7123 ------------------------------------------------------------------
7124         Bra
7125         \D*
7126         a
7127         Ket
7128         End
7129 ------------------------------------------------------------------
7130
7131 /\D*2/BZ
7132 ------------------------------------------------------------------
7133         Bra
7134         \D*+
7135         2
7136         Ket
7137         End
7138 ------------------------------------------------------------------
7139
7140 /\D*\d/BZ
7141 ------------------------------------------------------------------
7142         Bra
7143         \D*+
7144         \d
7145         Ket
7146         End
7147 ------------------------------------------------------------------
7148
7149 /\D*\D/BZ
7150 ------------------------------------------------------------------
7151         Bra
7152         \D*
7153         \D
7154         Ket
7155         End
7156 ------------------------------------------------------------------
7157
7158 /\D*\s/BZ
7159 ------------------------------------------------------------------
7160         Bra
7161         \D*
7162         \s
7163         Ket
7164         End
7165 ------------------------------------------------------------------
7166
7167 /\D*\S/BZ
7168 ------------------------------------------------------------------
7169         Bra
7170         \D*
7171         \S
7172         Ket
7173         End
7174 ------------------------------------------------------------------
7175
7176 /\D*\w/BZ
7177 ------------------------------------------------------------------
7178         Bra
7179         \D*
7180         \w
7181         Ket
7182         End
7183 ------------------------------------------------------------------
7184
7185 /\D*\W/BZ
7186 ------------------------------------------------------------------
7187         Bra
7188         \D*
7189         \W
7190         Ket
7191         End
7192 ------------------------------------------------------------------
7193
7194 /\s*a/BZ
7195 ------------------------------------------------------------------
7196         Bra
7197         \s*+
7198         a
7199         Ket
7200         End
7201 ------------------------------------------------------------------
7202
7203 /\s*2/BZ
7204 ------------------------------------------------------------------
7205         Bra
7206         \s*+
7207         2
7208         Ket
7209         End
7210 ------------------------------------------------------------------
7211
7212 /\s*\d/BZ
7213 ------------------------------------------------------------------
7214         Bra
7215         \s*+
7216         \d
7217         Ket
7218         End
7219 ------------------------------------------------------------------
7220
7221 /\s*\D/BZ
7222 ------------------------------------------------------------------
7223         Bra
7224         \s*
7225         \D
7226         Ket
7227         End
7228 ------------------------------------------------------------------
7229
7230 /\s*\s/BZ
7231 ------------------------------------------------------------------
7232         Bra
7233         \s*
7234         \s
7235         Ket
7236         End
7237 ------------------------------------------------------------------
7238
7239 /\s*\S/BZ
7240 ------------------------------------------------------------------
7241         Bra
7242         \s*+
7243         \S
7244         Ket
7245         End
7246 ------------------------------------------------------------------
7247
7248 /\s*\w/BZ
7249 ------------------------------------------------------------------
7250         Bra
7251         \s*+
7252         \w
7253         Ket
7254         End
7255 ------------------------------------------------------------------
7256
7257 /\s*\W/BZ
7258 ------------------------------------------------------------------
7259         Bra
7260         \s*
7261         \W
7262         Ket
7263         End
7264 ------------------------------------------------------------------
7265
7266 /\S*a/BZ
7267 ------------------------------------------------------------------
7268         Bra
7269         \S*
7270         a
7271         Ket
7272         End
7273 ------------------------------------------------------------------
7274
7275 /\S*2/BZ
7276 ------------------------------------------------------------------
7277         Bra
7278         \S*
7279         2
7280         Ket
7281         End
7282 ------------------------------------------------------------------
7283
7284 /\S*\d/BZ
7285 ------------------------------------------------------------------
7286         Bra
7287         \S*
7288         \d
7289         Ket
7290         End
7291 ------------------------------------------------------------------
7292
7293 /\S*\D/BZ
7294 ------------------------------------------------------------------
7295         Bra
7296         \S*
7297         \D
7298         Ket
7299         End
7300 ------------------------------------------------------------------
7301
7302 /\S*\s/BZ
7303 ------------------------------------------------------------------
7304         Bra
7305         \S*+
7306         \s
7307         Ket
7308         End
7309 ------------------------------------------------------------------
7310
7311 /\S*\S/BZ
7312 ------------------------------------------------------------------
7313         Bra
7314         \S*
7315         \S
7316         Ket
7317         End
7318 ------------------------------------------------------------------
7319
7320 /\S*\w/BZ
7321 ------------------------------------------------------------------
7322         Bra
7323         \S*
7324         \w
7325         Ket
7326         End
7327 ------------------------------------------------------------------
7328
7329 /\S*\W/BZ
7330 ------------------------------------------------------------------
7331         Bra
7332         \S*
7333         \W
7334         Ket
7335         End
7336 ------------------------------------------------------------------
7337
7338 /\w*a/BZ
7339 ------------------------------------------------------------------
7340         Bra
7341         \w*
7342         a
7343         Ket
7344         End
7345 ------------------------------------------------------------------
7346
7347 /\w*2/BZ
7348 ------------------------------------------------------------------
7349         Bra
7350         \w*
7351         2
7352         Ket
7353         End
7354 ------------------------------------------------------------------
7355
7356 /\w*\d/BZ
7357 ------------------------------------------------------------------
7358         Bra
7359         \w*
7360         \d
7361         Ket
7362         End
7363 ------------------------------------------------------------------
7364
7365 /\w*\D/BZ
7366 ------------------------------------------------------------------
7367         Bra
7368         \w*
7369         \D
7370         Ket
7371         End
7372 ------------------------------------------------------------------
7373
7374 /\w*\s/BZ
7375 ------------------------------------------------------------------
7376         Bra
7377         \w*+
7378         \s
7379         Ket
7380         End
7381 ------------------------------------------------------------------
7382
7383 /\w*\S/BZ
7384 ------------------------------------------------------------------
7385         Bra
7386         \w*
7387         \S
7388         Ket
7389         End
7390 ------------------------------------------------------------------
7391
7392 /\w*\w/BZ
7393 ------------------------------------------------------------------
7394         Bra
7395         \w*
7396         \w
7397         Ket
7398         End
7399 ------------------------------------------------------------------
7400
7401 /\w*\W/BZ
7402 ------------------------------------------------------------------
7403         Bra
7404         \w*+
7405         \W
7406         Ket
7407         End
7408 ------------------------------------------------------------------
7409
7410 /\W*a/BZ
7411 ------------------------------------------------------------------
7412         Bra
7413         \W*+
7414         a
7415         Ket
7416         End
7417 ------------------------------------------------------------------
7418
7419 /\W*2/BZ
7420 ------------------------------------------------------------------
7421         Bra
7422         \W*+
7423         2
7424         Ket
7425         End
7426 ------------------------------------------------------------------
7427
7428 /\W*\d/BZ
7429 ------------------------------------------------------------------
7430         Bra
7431         \W*+
7432         \d
7433         Ket
7434         End
7435 ------------------------------------------------------------------
7436
7437 /\W*\D/BZ
7438 ------------------------------------------------------------------
7439         Bra
7440         \W*
7441         \D
7442         Ket
7443         End
7444 ------------------------------------------------------------------
7445
7446 /\W*\s/BZ
7447 ------------------------------------------------------------------
7448         Bra
7449         \W*
7450         \s
7451         Ket
7452         End
7453 ------------------------------------------------------------------
7454
7455 /\W*\S/BZ
7456 ------------------------------------------------------------------
7457         Bra
7458         \W*
7459         \S
7460         Ket
7461         End
7462 ------------------------------------------------------------------
7463
7464 /\W*\w/BZ
7465 ------------------------------------------------------------------
7466         Bra
7467         \W*+
7468         \w
7469         Ket
7470         End
7471 ------------------------------------------------------------------
7472
7473 /\W*\W/BZ
7474 ------------------------------------------------------------------
7475         Bra
7476         \W*
7477         \W
7478         Ket
7479         End
7480 ------------------------------------------------------------------
7481
7482 /[^a]+a/BZ
7483 ------------------------------------------------------------------
7484         Bra
7485         [^a]++
7486         a
7487         Ket
7488         End
7489 ------------------------------------------------------------------
7490
7491 /[^a]+a/BZi
7492 ------------------------------------------------------------------
7493         Bra
7494      /i [^a]++
7495      /i a
7496         Ket
7497         End
7498 ------------------------------------------------------------------
7499
7500 /[^a]+A/BZi
7501 ------------------------------------------------------------------
7502         Bra
7503      /i [^a]++
7504      /i A
7505         Ket
7506         End
7507 ------------------------------------------------------------------
7508
7509 /[^a]+b/BZ
7510 ------------------------------------------------------------------
7511         Bra
7512         [^a]+
7513         b
7514         Ket
7515         End
7516 ------------------------------------------------------------------
7517
7518 /[^a]+\d/BZ
7519 ------------------------------------------------------------------
7520         Bra
7521         [^a]+
7522         \d
7523         Ket
7524         End
7525 ------------------------------------------------------------------
7526
7527 /a*[^a]/BZ
7528 ------------------------------------------------------------------
7529         Bra
7530         a*+
7531         [^a]
7532         Ket
7533         End
7534 ------------------------------------------------------------------
7535
7536 /(?P<abc>x)(?P<xyz>y)/I
7537 Capturing subpattern count = 2
7538 Named capturing subpatterns:
7539   abc   1
7540   xyz   2
7541 No options
7542 First char = 'x'
7543 Need char = 'y'
7544     xy\Cabc\Cxyz
7545  0: xy
7546  1: x
7547  2: y
7548   C x (1) abc
7549   C y (1) xyz
7550
7551 /(?<abc>x)(?'xyz'y)/I
7552 Capturing subpattern count = 2
7553 Named capturing subpatterns:
7554   abc   1
7555   xyz   2
7556 No options
7557 First char = 'x'
7558 Need char = 'y'
7559     xy\Cabc\Cxyz
7560  0: xy
7561  1: x
7562  2: y
7563   C x (1) abc
7564   C y (1) xyz
7565
7566 /(?<abc'x)(?'xyz'y)/I
7567 Failed: syntax error in subpattern name (missing terminator) at offset 6
7568
7569 /(?<abc>x)(?'xyz>y)/I
7570 Failed: syntax error in subpattern name (missing terminator) at offset 15
7571
7572 /(?P'abc'x)(?P<xyz>y)/I
7573 Failed: unrecognized character after (?P at offset 3
7574
7575 /^(?:(?(ZZ)a|b)(?<ZZ>X))+/
7576     bXaX
7577  0: bXaX
7578  1: X
7579     bXbX
7580  0: bX
7581  1: X
7582     ** Failers
7583 No match
7584     aXaX
7585 No match
7586     aXbX
7587 No match
7588
7589 /^(?P>abc)(?<abcd>xxx)/
7590 Failed: reference to non-existent subpattern at offset 8
7591
7592 /^(?P>abc)(?<abc>x|y)/
7593     xx
7594  0: xx
7595  1: x
7596     xy
7597  0: xy
7598  1: y
7599     yy
7600  0: yy
7601  1: y
7602     yx
7603  0: yx
7604  1: x
7605
7606 /^(?P>abc)(?P<abc>x|y)/
7607     xx
7608  0: xx
7609  1: x
7610     xy
7611  0: xy
7612  1: y
7613     yy
7614  0: yy
7615  1: y
7616     yx
7617  0: yx
7618  1: x
7619
7620 /^((?(abc)a|b)(?<abc>x|y))+/
7621     bxay
7622  0: bxay
7623  1: ay
7624  2: y
7625     bxby
7626  0: bx
7627  1: bx
7628  2: x
7629     ** Failers
7630 No match
7631     axby
7632 No match
7633
7634 /^(((?P=abc)|X)(?<abc>x|y))+/
7635     XxXxxx
7636  0: XxXxxx
7637  1: xx
7638  2: x
7639  3: x
7640     XxXyyx
7641  0: XxXyyx
7642  1: yx
7643  2: y
7644  3: x
7645     XxXyxx
7646  0: XxXy
7647  1: Xy
7648  2: X
7649  3: y
7650     ** Failers
7651 No match
7652     x
7653 No match
7654
7655 /^(?1)(abc)/
7656     abcabc
7657  0: abcabc
7658  1: abc
7659
7660 /^(?:(?:\1|X)(a|b))+/
7661     Xaaa
7662  0: Xaaa
7663  1: a
7664     Xaba
7665  0: Xa
7666  1: a
7667
7668 /^[\E\Qa\E-\Qz\E]+/BZ
7669 ------------------------------------------------------------------
7670         Bra
7671         ^
7672         [a-z]++
7673         Ket
7674         End
7675 ------------------------------------------------------------------
7676
7677 /^[a\Q]bc\E]/BZ
7678 ------------------------------------------------------------------
7679         Bra
7680         ^
7681         [\]a-c]
7682         Ket
7683         End
7684 ------------------------------------------------------------------
7685
7686 /^[a-\Q\E]/BZ
7687 ------------------------------------------------------------------
7688         Bra
7689         ^
7690         [\-a]
7691         Ket
7692         End
7693 ------------------------------------------------------------------
7694
7695 /^(?P>abc)[()](?<abc>)/BZ
7696 ------------------------------------------------------------------
7697         Bra
7698         ^
7699         Recurse
7700         [()]
7701         CBra 1
7702         Ket
7703         Ket
7704         End
7705 ------------------------------------------------------------------
7706
7707 /^((?(abc)y)[()](?P<abc>x))+/BZ
7708 ------------------------------------------------------------------
7709         Bra
7710         ^
7711         CBra 1
7712         Cond
7713       2 Cond ref
7714         y
7715         Ket
7716         [()]
7717         CBra 2
7718         x
7719         Ket
7720         KetRmax
7721         Ket
7722         End
7723 ------------------------------------------------------------------
7724     (xy)x
7725  0: (xy)x
7726  1: y)x
7727  2: x
7728
7729 /^(?P>abc)\Q()\E(?<abc>)/BZ
7730 ------------------------------------------------------------------
7731         Bra
7732         ^
7733         Recurse
7734         ()
7735         CBra 1
7736         Ket
7737         Ket
7738         End
7739 ------------------------------------------------------------------
7740
7741 /^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
7742 ------------------------------------------------------------------
7743         Bra
7744         ^
7745         Recurse
7746         [(\]a]
7747         CBra 1
7748         Ket
7749         Ket
7750         End
7751 ------------------------------------------------------------------
7752
7753 /^(?P>abc) # this is (a comment)
7754   (?<abc>)/BZx
7755 ------------------------------------------------------------------
7756         Bra
7757         ^
7758         Recurse
7759         CBra 1
7760         Ket
7761         Ket
7762         End
7763 ------------------------------------------------------------------
7764
7765 /^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
7766 Capturing subpattern count = 4
7767 Max back reference = 4
7768 Named capturing subpatterns:
7769   four    4
7770   one     1
7771   three   3
7772   two     2
7773 May match empty string
7774 Options: anchored caseless
7775 No first char
7776 No need char
7777     1221
7778  0: 1221
7779  1: 1221
7780  2: 1
7781     Satan, oscillate my metallic sonatas!
7782  0: Satan, oscillate my metallic sonatas!
7783  1: <unset>
7784  2: <unset>
7785  3: Satan, oscillate my metallic sonatas
7786  4: S
7787     A man, a plan, a canal: Panama!
7788  0: A man, a plan, a canal: Panama!
7789  1: <unset>
7790  2: <unset>
7791  3: A man, a plan, a canal: Panama
7792  4: A
7793     Able was I ere I saw Elba.
7794  0: Able was I ere I saw Elba.
7795  1: <unset>
7796  2: <unset>
7797  3: Able was I ere I saw Elba
7798  4: A
7799     *** Failers
7800 No match
7801     The quick brown fox
7802 No match
7803
7804 /(?=(\w+))\1:/I
7805 Capturing subpattern count = 1
7806 Max back reference = 1
7807 No options
7808 No first char
7809 Need char = ':'
7810     abcd:
7811  0: abcd:
7812  1: abcd
7813
7814 /(?=(?'abc'\w+))\k<abc>:/I
7815 Capturing subpattern count = 1
7816 Max back reference = 1
7817 Named capturing subpatterns:
7818   abc   1
7819 No options
7820 No first char
7821 Need char = ':'
7822     abcd:
7823  0: abcd:
7824  1: abcd
7825
7826 /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7827     adaa
7828  0: adaa
7829  1: a
7830  2: d
7831     ** Failers
7832 No match
7833     addd
7834 No match
7835     adbb
7836 No match
7837
7838 /(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
7839     bdaa
7840  0: bdaa
7841  1: b
7842  2: d
7843     bdab
7844  0: bdab
7845  1: b
7846  2: d
7847     ** Failers
7848 No match
7849     bddd
7850 No match
7851
7852 /(?(<bc))/
7853 Failed: malformed number or name after (?( at offset 6
7854
7855 /(?(''))/
7856 Failed: assertion expected after (?( at offset 4
7857
7858 /(?('R')stuff)/
7859 Failed: reference to non-existent subpattern at offset 7
7860
7861 /((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
7862     abcabc1Xabc2XabcXabcabc
7863  0: abcabc1Xabc2XabcX
7864  1: abcabc1Xabc2XabcX
7865  2: abcabc1Xabc2XabcX
7866
7867 /(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
7868     abcabc1Xabc2XabcXabcabc
7869  0: abcabc1Xabc2XabcX
7870  1: abcabc1Xabc2XabcX
7871  2: abcabc1Xabc2XabcX
7872
7873 /(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
7874 Failed: reference to non-existent subpattern at offset 29
7875
7876 /^(?(DEFINE) abc | xyz ) /x
7877 Failed: DEFINE group contains more than one branch at offset 22
7878
7879 /(?(DEFINE) abc) xyz/xI
7880 Capturing subpattern count = 0
7881 Options: extended
7882 First char = 'x'
7883 Need char = 'z'
7884
7885 /(a|)*\d/
7886   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7887 No match
7888   \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
7889 Matched, but too many substrings
7890
7891 /^a.b/<lf>
7892     a\rb
7893  0: a\x0db
7894     a\nb\<cr>
7895  0: a\x0ab
7896     a\x85b\<anycrlf> 
7897  0: a\x85b
7898     ** Failers
7899 No match
7900     a\nb
7901 No match
7902     a\nb\<any>
7903 No match
7904     a\rb\<cr>
7905 No match
7906     a\rb\<any>
7907 No match
7908     a\x85b\<any> 
7909 No match
7910     a\rb\<anycrlf>
7911 No match
7912
7913 /^abc./mgx<any>
7914     abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7915  0: abc1
7916  0: abc2
7917  0: abc3
7918  0: abc4
7919  0: abc5
7920  0: abc6
7921  0: abc7
7922
7923 /abc.$/mgx<any>
7924     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7925  0: abc1
7926  0: abc2
7927  0: abc3
7928  0: abc4
7929  0: abc5
7930  0: abc6
7931  0: abc9
7932
7933 /a/<cr><any>
7934
7935 /a/<any><crlf>
7936 Failed: inconsistent NEWLINE options at offset 0
7937
7938 /^a\Rb/<bsr_unicode>
7939     a\nb
7940  0: a\x0ab
7941     a\rb
7942  0: a\x0db
7943     a\r\nb
7944  0: a\x0d\x0ab
7945     a\x0bb
7946  0: a\x0bb
7947     a\x0cb
7948  0: a\x0cb
7949     a\x85b
7950  0: a\x85b
7951     ** Failers
7952 No match
7953     a\n\rb
7954 No match
7955
7956 /^a\R*b/<bsr_unicode>
7957     ab
7958  0: ab
7959     a\nb
7960  0: a\x0ab
7961     a\rb
7962  0: a\x0db
7963     a\r\nb
7964  0: a\x0d\x0ab
7965     a\x0bb
7966  0: a\x0bb
7967     a\x0cb
7968  0: a\x0cb
7969     a\x85b
7970  0: a\x85b
7971     a\n\rb
7972  0: a\x0a\x0db
7973     a\n\r\x85\x0cb
7974  0: a\x0a\x0d\x85\x0cb
7975
7976 /^a\R+b/<bsr_unicode>
7977     a\nb
7978  0: a\x0ab
7979     a\rb
7980  0: a\x0db
7981     a\r\nb
7982  0: a\x0d\x0ab
7983     a\x0bb
7984  0: a\x0bb
7985     a\x0cb
7986  0: a\x0cb
7987     a\x85b
7988  0: a\x85b
7989     a\n\rb
7990  0: a\x0a\x0db
7991     a\n\r\x85\x0cb
7992  0: a\x0a\x0d\x85\x0cb
7993     ** Failers
7994 No match
7995     ab
7996 No match
7997
7998 /^a\R{1,3}b/<bsr_unicode>
7999     a\nb
8000  0: a\x0ab
8001     a\n\rb
8002  0: a\x0a\x0db
8003     a\n\r\x85b
8004  0: a\x0a\x0d\x85b
8005     a\r\n\r\nb
8006  0: a\x0d\x0a\x0d\x0ab
8007     a\r\n\r\n\r\nb
8008  0: a\x0d\x0a\x0d\x0a\x0d\x0ab
8009     a\n\r\n\rb
8010  0: a\x0a\x0d\x0a\x0db
8011     a\n\n\r\nb
8012  0: a\x0a\x0a\x0d\x0ab
8013     ** Failers
8014 No match
8015     a\n\n\n\rb
8016 No match
8017     a\r
8018 No match
8019
8020 /^a[\R]b/<bsr_unicode>
8021     aRb
8022  0: aRb
8023     ** Failers
8024 No match
8025     a\nb
8026 No match
8027
8028 /(?&abc)X(?<abc>P)/I
8029 Capturing subpattern count = 1
8030 Named capturing subpatterns:
8031   abc   1
8032 No options
8033 No first char
8034 Need char = 'P'
8035     abcPXP123
8036  0: PXP
8037  1: P
8038
8039 /(?1)X(?<abc>P)/I
8040 Capturing subpattern count = 1
8041 Named capturing subpatterns:
8042   abc   1
8043 No options
8044 No first char
8045 Need char = 'P'
8046     abcPXP123
8047  0: PXP
8048  1: P
8049
8050 /(?:a(?&abc)b)*(?<abc>x)/
8051     123axbaxbaxbx456
8052  0: axbaxbaxbx
8053  1: x
8054     123axbaxbaxb456
8055  0: x
8056  1: x
8057
8058 /(?:a(?&abc)b){1,5}(?<abc>x)/
8059     123axbaxbaxbx456
8060  0: axbaxbaxbx
8061  1: x
8062
8063 /(?:a(?&abc)b){2,5}(?<abc>x)/
8064     123axbaxbaxbx456
8065  0: axbaxbaxbx
8066  1: x
8067
8068 /(?:a(?&abc)b){2,}(?<abc>x)/
8069     123axbaxbaxbx456
8070  0: axbaxbaxbx
8071  1: x
8072
8073 /(abc)(?i:(?1))/
8074    defabcabcxyz
8075  0: abcabc
8076  1: abc
8077    DEFabcABCXYZ
8078 No match
8079
8080 /(abc)(?:(?i)(?1))/
8081    defabcabcxyz
8082  0: abcabc
8083  1: abc
8084    DEFabcABCXYZ
8085 No match
8086
8087 /^(a)\g-2/
8088 Failed: reference to non-existent subpattern at offset 7
8089
8090 /^(a)\g/
8091 Failed: a numbered reference must not be zero at offset 5
8092
8093 /^(a)\g{0}/
8094 Failed: a numbered reference must not be zero at offset 8
8095
8096 /^(a)\g{3/
8097 Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8098
8099 /^(a)\g{aa}/
8100 Failed: reference to non-existent subpattern at offset 9
8101
8102 /^a.b/<lf>
8103     a\rb
8104  0: a\x0db
8105     *** Failers
8106 No match
8107     a\nb
8108 No match
8109
8110 /.+foo/
8111     afoo
8112  0: afoo
8113     ** Failers
8114 No match
8115     \r\nfoo
8116 No match
8117     \nfoo
8118 No match
8119
8120 /.+foo/<crlf>
8121     afoo
8122  0: afoo
8123     \nfoo
8124  0: \x0afoo
8125     ** Failers
8126 No match
8127     \r\nfoo
8128 No match
8129
8130 /.+foo/<any>
8131     afoo
8132  0: afoo
8133     ** Failers
8134 No match
8135     \nfoo
8136 No match
8137     \r\nfoo
8138 No match
8139
8140 /.+foo/s
8141     afoo
8142  0: afoo
8143     \r\nfoo
8144  0: \x0d\x0afoo
8145     \nfoo
8146  0: \x0afoo
8147     
8148 /^$/mg<any>
8149     abc\r\rxyz
8150  0: 
8151     abc\n\rxyz  
8152  0: 
8153     ** Failers 
8154 No match
8155     abc\r\nxyz
8156 No match
8157
8158 /(?m)^$/<any>g+
8159     abc\r\n\r\n
8160  0: 
8161  0+ \x0d\x0a
8162
8163 /(?m)^$|^\r\n/<any>g+ 
8164     abc\r\n\r\n
8165  0: 
8166  0+ \x0d\x0a
8167  0: \x0d\x0a
8168  0+ 
8169     
8170 /(?m)$/<any>g+ 
8171     abc\r\n\r\n
8172  0: 
8173  0+ \x0d\x0a\x0d\x0a
8174  0: 
8175  0+ \x0d\x0a
8176  0: 
8177  0+ 
8178
8179 /abc.$/mgx<anycrlf>
8180     abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
8181  0: abc1
8182  0: abc4
8183  0: abc5
8184  0: abc9
8185
8186 /^X/m
8187     XABC
8188  0: X
8189     ** Failers 
8190 No match
8191     XABC\B
8192 No match
8193
8194 /(ab|c)(?-1)/BZ
8195 ------------------------------------------------------------------
8196         Bra
8197         CBra 1
8198         ab
8199         Alt
8200         c
8201         Ket
8202         Recurse
8203         Ket
8204         End
8205 ------------------------------------------------------------------
8206     abc
8207  0: abc
8208  1: ab
8209
8210 /xy(?+1)(abc)/BZ
8211 ------------------------------------------------------------------
8212         Bra
8213         xy
8214         Recurse
8215         CBra 1
8216         abc
8217         Ket
8218         Ket
8219         End
8220 ------------------------------------------------------------------
8221     xyabcabc
8222  0: xyabcabc
8223  1: abc
8224     ** Failers
8225 No match
8226     xyabc  
8227 No match
8228     
8229 /x(?-0)y/
8230 Failed: a numbered reference must not be zero at offset 5
8231
8232 /x(?-1)y/
8233 Failed: reference to non-existent subpattern at offset 5
8234
8235 /x(?+0)y/ 
8236 Failed: a numbered reference must not be zero at offset 5
8237
8238 /x(?+1)y/
8239 Failed: reference to non-existent subpattern at offset 5
8240
8241 /^(abc)?(?(-1)X|Y)/BZ
8242 ------------------------------------------------------------------
8243         Bra
8244         ^
8245         Brazero
8246         CBra 1
8247         abc
8248         Ket
8249         Cond
8250       1 Cond ref
8251         X
8252         Alt
8253         Y
8254         Ket
8255         Ket
8256         End
8257 ------------------------------------------------------------------
8258     abcX
8259  0: abcX
8260  1: abc
8261     Y
8262  0: Y
8263     ** Failers
8264 No match
8265     abcY   
8266 No match
8267     
8268 /^((?(+1)X|Y)(abc))+/BZ 
8269 ------------------------------------------------------------------
8270         Bra
8271         ^
8272         CBra 1
8273         Cond
8274       2 Cond ref
8275         X
8276         Alt
8277         Y
8278         Ket
8279         CBra 2
8280         abc
8281         Ket
8282         KetRmax
8283         Ket
8284         End
8285 ------------------------------------------------------------------
8286     YabcXabc
8287  0: YabcXabc
8288  1: Xabc
8289  2: abc
8290     YabcXabcXabc
8291  0: YabcXabcXabc
8292  1: Xabc
8293  2: abc
8294     ** Failers
8295 No match
8296     XabcXabc  
8297 No match
8298
8299 /(?(-1)a)/BZ
8300 Failed: reference to non-existent subpattern at offset 6
8301
8302 /((?(-1)a))/BZ
8303 ------------------------------------------------------------------
8304         Bra
8305         CBra 1
8306         Cond
8307       1 Cond ref
8308         a
8309         Ket
8310         Ket
8311         Ket
8312         End
8313 ------------------------------------------------------------------
8314
8315 /((?(-2)a))/BZ
8316 Failed: reference to non-existent subpattern at offset 7
8317
8318 /^(?(+1)X|Y)(.)/BZ
8319 ------------------------------------------------------------------
8320         Bra
8321         ^
8322         Cond
8323       1 Cond ref
8324         X
8325         Alt
8326         Y
8327         Ket
8328         CBra 1
8329         Any
8330         Ket
8331         Ket
8332         End
8333 ------------------------------------------------------------------
8334     Y!
8335  0: Y!
8336  1: !
8337
8338 /(?<A>tom|bon)-\k{A}/
8339     tom-tom
8340  0: tom-tom
8341  1: tom
8342     bon-bon 
8343  0: bon-bon
8344  1: bon
8345     ** Failers
8346 No match
8347     tom-bon  
8348 No match
8349
8350 /\g{A/ 
8351 Failed: syntax error in subpattern name (missing terminator) at offset 4
8352
8353 /(?|(abc)|(xyz))/BZ
8354 ------------------------------------------------------------------
8355         Bra
8356         Bra
8357         CBra 1
8358         abc
8359         Ket
8360         Alt
8361         CBra 1
8362         xyz
8363         Ket
8364         Ket
8365         Ket
8366         End
8367 ------------------------------------------------------------------
8368    >abc<
8369  0: abc
8370  1: abc
8371    >xyz< 
8372  0: xyz
8373  1: xyz
8374
8375 /(x)(?|(abc)|(xyz))(x)/BZ
8376 ------------------------------------------------------------------
8377         Bra
8378         CBra 1
8379         x
8380         Ket
8381         Bra
8382         CBra 2
8383         abc
8384         Ket
8385         Alt
8386         CBra 2
8387         xyz
8388         Ket
8389         Ket
8390         CBra 3
8391         x
8392         Ket
8393         Ket
8394         End
8395 ------------------------------------------------------------------
8396     xabcx
8397  0: xabcx
8398  1: x
8399  2: abc
8400  3: x
8401     xxyzx 
8402  0: xxyzx
8403  1: x
8404  2: xyz
8405  3: x
8406
8407 /(x)(?|(abc)(pqr)|(xyz))(x)/BZ
8408 ------------------------------------------------------------------
8409         Bra
8410         CBra 1
8411         x
8412         Ket
8413         Bra
8414         CBra 2
8415         abc
8416         Ket
8417         CBra 3
8418         pqr
8419         Ket
8420         Alt
8421         CBra 2
8422         xyz
8423         Ket
8424         Ket
8425         CBra 4
8426         x
8427         Ket
8428         Ket
8429         End
8430 ------------------------------------------------------------------
8431     xabcpqrx
8432  0: xabcpqrx
8433  1: x
8434  2: abc
8435  3: pqr
8436  4: x
8437     xxyzx 
8438  0: xxyzx
8439  1: x
8440  2: xyz
8441  3: <unset>
8442  4: x
8443
8444 /\H++X/BZ
8445 ------------------------------------------------------------------
8446         Bra
8447         \H++
8448         X
8449         Ket
8450         End
8451 ------------------------------------------------------------------
8452     ** Failers
8453 No match
8454     XXXX
8455 No match
8456     
8457 /\H+\hY/BZ
8458 ------------------------------------------------------------------
8459         Bra
8460         \H++
8461         \h
8462         Y
8463         Ket
8464         End
8465 ------------------------------------------------------------------
8466     XXXX Y 
8467  0: XXXX Y
8468
8469 /\H+ Y/BZ
8470 ------------------------------------------------------------------
8471         Bra
8472         \H++
8473          Y
8474         Ket
8475         End
8476 ------------------------------------------------------------------
8477
8478 /\h+A/BZ
8479 ------------------------------------------------------------------
8480         Bra
8481         \h++
8482         A
8483         Ket
8484         End
8485 ------------------------------------------------------------------
8486
8487 /\v*B/BZ
8488 ------------------------------------------------------------------
8489         Bra
8490         \v*+
8491         B
8492         Ket
8493         End
8494 ------------------------------------------------------------------
8495
8496 /\V+\x0a/BZ
8497 ------------------------------------------------------------------
8498         Bra
8499         \V++
8500         \x0a
8501         Ket
8502         End
8503 ------------------------------------------------------------------
8504
8505 /A+\h/BZ
8506 ------------------------------------------------------------------
8507         Bra
8508         A++
8509         \h
8510         Ket
8511         End
8512 ------------------------------------------------------------------
8513
8514 / *\H/BZ
8515 ------------------------------------------------------------------
8516         Bra
8517          *+
8518         \H
8519         Ket
8520         End
8521 ------------------------------------------------------------------
8522
8523 /A*\v/BZ
8524 ------------------------------------------------------------------
8525         Bra
8526         A*+
8527         \v
8528         Ket
8529         End
8530 ------------------------------------------------------------------
8531
8532 /\x0b*\V/BZ
8533 ------------------------------------------------------------------
8534         Bra
8535         \x0b*+
8536         \V
8537         Ket
8538         End
8539 ------------------------------------------------------------------
8540
8541 /\d+\h/BZ
8542 ------------------------------------------------------------------
8543         Bra
8544         \d++
8545         \h
8546         Ket
8547         End
8548 ------------------------------------------------------------------
8549
8550 /\d*\v/BZ
8551 ------------------------------------------------------------------
8552         Bra
8553         \d*+
8554         \v
8555         Ket
8556         End
8557 ------------------------------------------------------------------
8558
8559 /S+\h\S+\v/BZ
8560 ------------------------------------------------------------------
8561         Bra
8562         S++
8563         \h
8564         \S++
8565         \v
8566         Ket
8567         End
8568 ------------------------------------------------------------------
8569
8570 /\w{3,}\h\w+\v/BZ
8571 ------------------------------------------------------------------
8572         Bra
8573         \w{3}
8574         \w*+
8575         \h
8576         \w++
8577         \v
8578         Ket
8579         End
8580 ------------------------------------------------------------------
8581
8582 /\h+\d\h+\w\h+\S\h+\H/BZ
8583 ------------------------------------------------------------------
8584         Bra
8585         \h++
8586         \d
8587         \h++
8588         \w
8589         \h++
8590         \S
8591         \h++
8592         \H
8593         Ket
8594         End
8595 ------------------------------------------------------------------
8596
8597 /\v+\d\v+\w\v+\S\v+\V/BZ
8598 ------------------------------------------------------------------
8599         Bra
8600         \v++
8601         \d
8602         \v++
8603         \w
8604         \v++
8605         \S
8606         \v++
8607         \V
8608         Ket
8609         End
8610 ------------------------------------------------------------------
8611
8612 /\H+\h\H+\d/BZ
8613 ------------------------------------------------------------------
8614         Bra
8615         \H++
8616         \h
8617         \H+
8618         \d
8619         Ket
8620         End
8621 ------------------------------------------------------------------
8622
8623 /\V+\v\V+\w/BZ
8624 ------------------------------------------------------------------
8625         Bra
8626         \V++
8627         \v
8628         \V+
8629         \w
8630         Ket
8631         End
8632 ------------------------------------------------------------------
8633
8634 /\( (?: [^()]* | (?R) )* \)/x
8635 \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8636  0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8637
8638 /[\E]AAA/
8639 Failed: missing terminating ] for character class at offset 7
8640
8641 /[\Q\E]AAA/
8642 Failed: missing terminating ] for character class at offset 9
8643
8644 /[^\E]AAA/
8645 Failed: missing terminating ] for character class at offset 8
8646
8647 /[^\Q\E]AAA/
8648 Failed: missing terminating ] for character class at offset 10
8649
8650 /[\E^]AAA/
8651 Failed: missing terminating ] for character class at offset 8
8652
8653 /[\Q\E^]AAA/
8654 Failed: missing terminating ] for character class at offset 10
8655
8656 /A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
8657 ------------------------------------------------------------------
8658         Bra
8659         A
8660         *PRUNE
8661         B
8662         *SKIP
8663         C
8664         *THEN
8665         D
8666         *COMMIT
8667         E
8668         *FAIL
8669         F
8670         *FAIL
8671         G
8672         *FAIL
8673         H
8674         *ACCEPT
8675         I
8676         Ket
8677         End
8678 ------------------------------------------------------------------
8679
8680 /^a+(*FAIL)/C
8681     aaaaaa
8682 --->aaaaaa
8683  +0 ^          ^
8684  +1 ^          a+
8685  +3 ^     ^    (*FAIL)
8686  +3 ^    ^     (*FAIL)
8687  +3 ^   ^      (*FAIL)
8688  +3 ^  ^       (*FAIL)
8689  +3 ^ ^        (*FAIL)
8690  +3 ^^         (*FAIL)
8691 No match
8692     
8693 /a+b?c+(*FAIL)/C
8694     aaabccc
8695 --->aaabccc
8696  +0 ^           a+
8697  +2 ^  ^        b?
8698  +4 ^   ^       c+
8699  +6 ^      ^    (*FAIL)
8700  +6 ^     ^     (*FAIL)
8701  +6 ^    ^      (*FAIL)
8702  +0  ^          a+
8703  +2  ^ ^        b?
8704  +4  ^  ^       c+
8705  +6  ^     ^    (*FAIL)
8706  +6  ^    ^     (*FAIL)
8707  +6  ^   ^      (*FAIL)
8708  +0   ^         a+
8709  +2   ^^        b?
8710  +4   ^ ^       c+
8711  +6   ^    ^    (*FAIL)
8712  +6   ^   ^     (*FAIL)
8713  +6   ^  ^      (*FAIL)
8714 No match
8715
8716 /a+b?(*PRUNE)c+(*FAIL)/C
8717     aaabccc
8718 --->aaabccc
8719  +0 ^           a+
8720  +2 ^  ^        b?
8721  +4 ^   ^       (*PRUNE)
8722 +12 ^   ^       c+
8723 +14 ^      ^    (*FAIL)
8724 +14 ^     ^     (*FAIL)
8725 +14 ^    ^      (*FAIL)
8726  +0  ^          a+
8727  +2  ^ ^        b?
8728  +4  ^  ^       (*PRUNE)
8729 +12  ^  ^       c+
8730 +14  ^     ^    (*FAIL)
8731 +14  ^    ^     (*FAIL)
8732 +14  ^   ^      (*FAIL)
8733  +0   ^         a+
8734  +2   ^^        b?
8735  +4   ^ ^       (*PRUNE)
8736 +12   ^ ^       c+
8737 +14   ^    ^    (*FAIL)
8738 +14   ^   ^     (*FAIL)
8739 +14   ^  ^      (*FAIL)
8740 No match
8741
8742 /a+b?(*COMMIT)c+(*FAIL)/C
8743     aaabccc
8744 --->aaabccc
8745  +0 ^           a+
8746  +2 ^  ^        b?
8747  +4 ^   ^       (*COMMIT)
8748 +13 ^   ^       c+
8749 +15 ^      ^    (*FAIL)
8750 +15 ^     ^     (*FAIL)
8751 +15 ^    ^      (*FAIL)
8752 No match
8753     
8754 /a+b?(*SKIP)c+(*FAIL)/C
8755     aaabcccaaabccc
8756 --->aaabcccaaabccc
8757  +0 ^                  a+
8758  +2 ^  ^               b?
8759  +4 ^   ^              (*SKIP)
8760 +11 ^   ^              c+
8761 +13 ^      ^           (*FAIL)
8762 +13 ^     ^            (*FAIL)
8763 +13 ^    ^             (*FAIL)
8764  +0        ^           a+
8765  +2        ^  ^        b?
8766  +4        ^   ^       (*SKIP)
8767 +11        ^   ^       c+
8768 +13        ^      ^    (*FAIL)
8769 +13        ^     ^     (*FAIL)
8770 +13        ^    ^      (*FAIL)
8771 No match
8772
8773 /a+b?(*THEN)c+(*FAIL)/C
8774     aaabccc
8775 --->aaabccc
8776  +0 ^           a+
8777  +2 ^  ^        b?
8778  +4 ^   ^       (*THEN)
8779 +11 ^   ^       c+
8780 +13 ^      ^    (*FAIL)
8781 +13 ^     ^     (*FAIL)
8782 +13 ^    ^      (*FAIL)
8783  +0  ^          a+
8784  +2  ^ ^        b?
8785  +4  ^  ^       (*THEN)
8786 +11  ^  ^       c+
8787 +13  ^     ^    (*FAIL)
8788 +13  ^    ^     (*FAIL)
8789 +13  ^   ^      (*FAIL)
8790  +0   ^         a+
8791  +2   ^^        b?
8792  +4   ^ ^       (*THEN)
8793 +11   ^ ^       c+
8794 +13   ^    ^    (*FAIL)
8795 +13   ^   ^     (*FAIL)
8796 +13   ^  ^      (*FAIL)
8797 No match
8798     
8799 /a(*MARK)b/ 
8800 Failed: (*MARK) must have an argument at offset 7
8801
8802 /(?i:A{1,}\6666666666)/
8803 Failed: number is too big at offset 19
8804
8805 /\g6666666666/
8806 Failed: number is too big at offset 11
8807
8808 /[\g6666666666]/BZ
8809 ------------------------------------------------------------------
8810         Bra
8811         [6g]
8812         Ket
8813         End
8814 ------------------------------------------------------------------
8815
8816 /(?1)\c[/
8817 Failed: reference to non-existent subpattern at offset 3
8818
8819 /.+A/<crlf>
8820     \r\nA
8821 No match
8822     
8823 /\nA/<crlf>
8824     \r\nA 
8825  0: \x0aA
8826
8827 /[\r\n]A/<crlf>
8828     \r\nA 
8829  0: \x0aA
8830
8831 /(\r|\n)A/<crlf>
8832     \r\nA 
8833  0: \x0aA
8834  1: \x0a
8835
8836 /a(*CR)b/
8837 Failed: (*VERB) not recognized or malformed at offset 5
8838
8839 /(*CR)a.b/
8840     a\nb
8841  0: a\x0ab
8842     ** Failers
8843 No match
8844     a\rb  
8845 No match
8846
8847 /(*CR)a.b/<lf>
8848     a\nb
8849  0: a\x0ab
8850     ** Failers
8851 No match
8852     a\rb  
8853 No match
8854
8855 /(*LF)a.b/<CRLF>
8856     a\rb
8857  0: a\x0db
8858     ** Failers
8859 No match
8860     a\nb  
8861 No match
8862
8863 /(*CRLF)a.b/
8864     a\rb
8865  0: a\x0db
8866     a\nb  
8867  0: a\x0ab
8868     ** Failers
8869 No match
8870     a\r\nb  
8871 No match
8872
8873 /(*ANYCRLF)a.b/<CR>
8874     ** Failers
8875 No match
8876     a\rb
8877 No match
8878     a\nb  
8879 No match
8880     a\r\nb  
8881 No match
8882
8883 /(*ANY)a.b/<cr>
8884     ** Failers
8885 No match
8886     a\rb
8887 No match
8888     a\nb  
8889 No match
8890     a\r\nb  
8891 No match
8892     a\x85b 
8893 No match
8894     
8895 /(*ANY).*/g
8896     abc\r\ndef
8897  0: abc
8898  0: 
8899  0: def
8900  0: 
8901
8902 /(*ANYCRLF).*/g
8903     abc\r\ndef
8904  0: abc
8905  0: 
8906  0: def
8907  0: 
8908
8909 /(*CRLF).*/g
8910     abc\r\ndef
8911  0: abc
8912  0: 
8913  0: def
8914  0: 
8915
8916 /a\Rb/I<bsr_anycrlf>
8917 Capturing subpattern count = 0
8918 Options: bsr_anycrlf
8919 First char = 'a'
8920 Need char = 'b'
8921     a\rb
8922  0: a\x0db
8923     a\nb
8924  0: a\x0ab
8925     a\r\nb
8926  0: a\x0d\x0ab
8927     ** Failers
8928 No match
8929     a\x85b
8930 No match
8931     a\x0bb     
8932 No match
8933
8934 /a\Rb/I<bsr_unicode>
8935 Capturing subpattern count = 0
8936 Options: bsr_unicode
8937 First char = 'a'
8938 Need char = 'b'
8939     a\rb
8940  0: a\x0db
8941     a\nb
8942  0: a\x0ab
8943     a\r\nb
8944  0: a\x0d\x0ab
8945     a\x85b
8946  0: a\x85b
8947     a\x0bb     
8948  0: a\x0bb
8949     ** Failers 
8950 No match
8951     a\x85b\<bsr_anycrlf>
8952 No match
8953     a\x0bb\<bsr_anycrlf>
8954 No match
8955     
8956 /a\R?b/I<bsr_anycrlf>
8957 Capturing subpattern count = 0
8958 Options: bsr_anycrlf
8959 First char = 'a'
8960 Need char = 'b'
8961     a\rb
8962  0: a\x0db
8963     a\nb
8964  0: a\x0ab
8965     a\r\nb
8966  0: a\x0d\x0ab
8967     ** Failers
8968 No match
8969     a\x85b
8970 No match
8971     a\x0bb     
8972 No match
8973
8974 /a\R?b/I<bsr_unicode>
8975 Capturing subpattern count = 0
8976 Options: bsr_unicode
8977 First char = 'a'
8978 Need char = 'b'
8979     a\rb
8980  0: a\x0db
8981     a\nb
8982  0: a\x0ab
8983     a\r\nb
8984  0: a\x0d\x0ab
8985     a\x85b
8986  0: a\x85b
8987     a\x0bb     
8988  0: a\x0bb
8989     ** Failers 
8990 No match
8991     a\x85b\<bsr_anycrlf>
8992 No match
8993     a\x0bb\<bsr_anycrlf>
8994 No match
8995     
8996 /a\R{2,4}b/I<bsr_anycrlf>
8997 Capturing subpattern count = 0
8998 Options: bsr_anycrlf
8999 First char = 'a'
9000 Need char = 'b'
9001     a\r\n\nb
9002  0: a\x0d\x0a\x0ab
9003     a\n\r\rb
9004  0: a\x0a\x0d\x0db
9005     a\r\n\r\n\r\n\r\nb
9006  0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
9007     ** Failers
9008 No match
9009     a\x85\85b
9010 No match
9011     a\x0b\0bb     
9012 No match
9013
9014 /a\R{2,4}b/I<bsr_unicode>
9015 Capturing subpattern count = 0
9016 Options: bsr_unicode
9017 First char = 'a'
9018 Need char = 'b'
9019     a\r\rb
9020  0: a\x0d\x0db
9021     a\n\n\nb
9022  0: a\x0a\x0a\x0ab
9023     a\r\n\n\r\rb
9024  0: a\x0d\x0a\x0a\x0d\x0db
9025     a\x85\85b
9026 No match
9027     a\x0b\0bb     
9028 No match
9029     ** Failers 
9030 No match
9031     a\r\r\r\r\rb 
9032 No match
9033     a\x85\85b\<bsr_anycrlf>
9034 No match
9035     a\x0b\0bb\<bsr_anycrlf>
9036 No match
9037  
9038 /(*BSR_ANYCRLF)a\Rb/I
9039 Capturing subpattern count = 0
9040 Options: bsr_anycrlf
9041 First char = 'a'
9042 Need char = 'b'
9043     a\nb
9044  0: a\x0ab
9045     a\rb 
9046  0: a\x0db
9047
9048 /(*BSR_UNICODE)a\Rb/I
9049 Capturing subpattern count = 0
9050 Options: bsr_unicode
9051 First char = 'a'
9052 Need char = 'b'
9053     a\x85b
9054  0: a\x85b
9055
9056 /(*BSR_ANYCRLF)(*CRLF)a\Rb/I
9057 Capturing subpattern count = 0
9058 Options: bsr_anycrlf
9059 Forced newline sequence: CRLF
9060 First char = 'a'
9061 Need char = 'b'
9062     a\nb
9063  0: a\x0ab
9064     a\rb 
9065  0: a\x0db
9066
9067 /(*CRLF)(*BSR_UNICODE)a\Rb/I
9068 Capturing subpattern count = 0
9069 Options: bsr_unicode
9070 Forced newline sequence: CRLF
9071 First char = 'a'
9072 Need char = 'b'
9073     a\x85b
9074  0: a\x85b
9075
9076 /(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
9077 Capturing subpattern count = 0
9078 Options: bsr_anycrlf
9079 Forced newline sequence: CR
9080 First char = 'a'
9081 Need char = 'b'
9082
9083 /(?<a>)(?&)/
9084 Failed: subpattern name expected at offset 9
9085
9086 /(?<abc>)(?&a)/
9087 Failed: reference to non-existent subpattern at offset 12
9088
9089 /(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
9090 Failed: reference to non-existent subpattern at offset 32
9091
9092 /(?+-a)/
9093 Failed: digit expected after (?+ at offset 3
9094
9095 /(?-+a)/
9096 Failed: unrecognized character after (? or (?- at offset 3
9097
9098 /(?(-1))/
9099 Failed: reference to non-existent subpattern at offset 6
9100
9101 /(?(+10))/
9102 Failed: reference to non-existent subpattern at offset 7
9103
9104 /(?(10))/
9105 Failed: reference to non-existent subpattern at offset 6
9106
9107 /(?(+2))()()/
9108
9109 /(?(2))()()/
9110
9111 /\k''/
9112 Failed: subpattern name expected at offset 3
9113
9114 /\k<>/
9115 Failed: subpattern name expected at offset 3
9116
9117 /\k{}/
9118 Failed: subpattern name expected at offset 3
9119
9120 /\k/
9121 Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9122
9123 /\kabc/
9124 Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9125
9126 /(?P=)/
9127 Failed: subpattern name expected at offset 4
9128
9129 /(?P>)/
9130 Failed: subpattern name expected at offset 4
9131
9132 /(?!\w)(?R)/
9133 Failed: recursive call could loop indefinitely at offset 9
9134
9135 /(?=\w)(?R)/
9136 Failed: recursive call could loop indefinitely at offset 9
9137
9138 /(?<!\w)(?R)/
9139 Failed: recursive call could loop indefinitely at offset 10
9140
9141 /(?<=\w)(?R)/
9142 Failed: recursive call could loop indefinitely at offset 10
9143
9144 /[[:foo:]]/
9145 Failed: unknown POSIX class name at offset 3
9146
9147 /[[:1234:]]/
9148 Failed: unknown POSIX class name at offset 3
9149
9150 /[[:f\oo:]]/
9151 Failed: unknown POSIX class name at offset 3
9152
9153 /[[: :]]/
9154 Failed: unknown POSIX class name at offset 3
9155
9156 /[[:...:]]/
9157 Failed: unknown POSIX class name at offset 3
9158
9159 /[[:l\ower:]]/
9160 Failed: unknown POSIX class name at offset 3
9161
9162 /[[:abc\:]]/
9163 Failed: unknown POSIX class name at offset 3
9164
9165 /[abc[:x\]pqr:]]/
9166 Failed: unknown POSIX class name at offset 6
9167
9168 /[[:a\dz:]]/
9169 Failed: unknown POSIX class name at offset 3
9170
9171 /(^(a|b\g<-1'c))/
9172 Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9173
9174 /^(?+1)(?<a>x|y){0}z/
9175     xzxx
9176  0: xz
9177     yzyy 
9178  0: yz
9179     ** Failers
9180 No match
9181     xxz  
9182 No match
9183
9184 /(\3)(\1)(a)/
9185     cat
9186 No match
9187
9188 /(\3)(\1)(a)/<JS>
9189     cat
9190  0: a
9191  1: 
9192  2: 
9193  3: a
9194     
9195 /TA]/
9196     The ACTA] comes 
9197  0: TA]
9198
9199 /TA]/<JS>
9200 Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9201
9202 /(?2)[]a()b](abc)/
9203 Failed: reference to non-existent subpattern at offset 3
9204
9205 /(?2)[^]a()b](abc)/
9206 Failed: reference to non-existent subpattern at offset 3
9207
9208 /(?1)[]a()b](abc)/
9209     abcbabc
9210  0: abcbabc
9211  1: abc
9212     ** Failers 
9213 No match
9214     abcXabc
9215 No match
9216
9217 /(?1)[^]a()b](abc)/
9218     abcXabc
9219  0: abcXabc
9220  1: abc
9221     ** Failers 
9222 No match
9223     abcbabc
9224 No match
9225
9226 /(?2)[]a()b](abc)(xyz)/
9227     xyzbabcxyz
9228  0: xyzbabcxyz
9229  1: abc
9230  2: xyz
9231
9232 /(?&N)[]a(?<N>)](?<M>abc)/
9233 Failed: reference to non-existent subpattern at offset 4
9234
9235 /(?&N)[]a(?<N>)](abc)/
9236 Failed: reference to non-existent subpattern at offset 4
9237
9238 /a[]b/
9239 Failed: missing terminating ] for character class at offset 4
9240
9241 /a[^]b/
9242 Failed: missing terminating ] for character class at offset 5
9243
9244 /a[]b/<JS>
9245     ** Failers
9246 No match
9247     ab
9248 No match
9249
9250 /a[]+b/<JS>
9251     ** Failers
9252 No match
9253     ab 
9254 No match
9255
9256 /a[]*+b/<JS>
9257     ** Failers
9258 No match
9259     ab 
9260 No match
9261
9262 /a[^]b/<JS>
9263     aXb
9264  0: aXb
9265     a\nb 
9266  0: a\x0ab
9267     ** Failers
9268 No match
9269     ab  
9270 No match
9271     
9272 /a[^]+b/<JS> 
9273     aXb
9274  0: aXb
9275     a\nX\nXb 
9276  0: a\x0aX\x0aXb
9277     ** Failers
9278 No match
9279     ab  
9280 No match
9281
9282 /a(?!)b/BZ
9283 ------------------------------------------------------------------
9284         Bra
9285         a
9286         *FAIL
9287         b
9288         Ket
9289         End
9290 ------------------------------------------------------------------
9291
9292 /(?!)?a/BZ
9293 ------------------------------------------------------------------
9294         Bra
9295         Brazero
9296         Assert not
9297         Ket
9298         a
9299         Ket
9300         End
9301 ------------------------------------------------------------------
9302     ab
9303  0: a
9304
9305 /a(*FAIL)+b/
9306 Failed: nothing to repeat at offset 8
9307
9308 /(abc|pqr|123){0}[xyz]/SI
9309 Capturing subpattern count = 1
9310 No options
9311 No first char
9312 No need char
9313 Subject length lower bound = 1
9314 Starting chars: x y z 
9315
9316 /(?(?=.*b)b|^)/CI
9317 Capturing subpattern count = 0
9318 May match empty string
9319 Options:
9320 No first char
9321 No need char
9322    adc
9323 --->adc
9324  +0 ^       (?(?=.*b)b|^)
9325  +2 ^       (?=.*b)
9326  +5 ^       .*
9327  +7 ^  ^    b
9328  +7 ^ ^     b
9329  +7 ^^      b
9330  +7 ^       b
9331 +11 ^       ^
9332 +12 ^       )
9333 +13 ^       
9334  0: 
9335    abc 
9336 --->abc
9337  +0 ^       (?(?=.*b)b|^)
9338  +2 ^       (?=.*b)
9339  +5 ^       .*
9340  +7 ^  ^    b
9341  +7 ^ ^     b
9342  +7 ^^      b
9343  +8 ^ ^     )
9344  +9 ^       b
9345  +0  ^      (?(?=.*b)b|^)
9346  +2  ^      (?=.*b)
9347  +5  ^      .*
9348  +7  ^ ^    b
9349  +7  ^^     b
9350  +7  ^      b
9351  +8  ^^     )
9352  +9  ^      b
9353 +10  ^^     |
9354 +13  ^^     
9355  0: b
9356    
9357 /(?(?=b).*b|^d)/I
9358 Capturing subpattern count = 0
9359 No options
9360 No first char
9361 No need char
9362
9363 /(?(?=.*b).*b|^d)/I
9364 Capturing subpattern count = 0
9365 No options
9366 First char at start or follows newline
9367 No need char
9368
9369 /xyz/C
9370   xyz 
9371 --->xyz
9372  +0 ^       x
9373  +1 ^^      y
9374  +2 ^ ^     z
9375  +3 ^  ^    
9376  0: xyz
9377   abcxyz 
9378 --->abcxyz
9379  +0    ^       x
9380  +1    ^^      y
9381  +2    ^ ^     z
9382  +3    ^  ^    
9383  0: xyz
9384   abcxyz\Y
9385 --->abcxyz
9386  +0 ^          x
9387  +0  ^         x
9388  +0   ^        x
9389  +0    ^       x
9390  +1    ^^      y
9391  +2    ^ ^     z
9392  +3    ^  ^    
9393  0: xyz
9394   ** Failers 
9395 No match
9396   abc
9397 No match
9398   abc\Y
9399 --->abc
9400  +0 ^       x
9401  +0  ^      x
9402  +0   ^     x
9403  +0    ^    x
9404 No match
9405   abcxypqr  
9406 No match
9407   abcxypqr\Y  
9408 --->abcxypqr
9409  +0 ^            x
9410  +0  ^           x
9411  +0   ^          x
9412  +0    ^         x
9413  +1    ^^        y
9414  +2    ^ ^       z
9415  +0     ^        x
9416  +0      ^       x
9417  +0       ^      x
9418  +0        ^     x
9419  +0         ^    x
9420 No match
9421   
9422 /(*NO_START_OPT)xyz/C
9423   abcxyz
9424 --->abcxyz
9425 +15 ^          x
9426 +15  ^         x
9427 +15   ^        x
9428 +15    ^       x
9429 +16    ^^      y
9430 +17    ^ ^     z
9431 +18    ^  ^    
9432  0: xyz
9433   
9434 /(*NO_AUTO_POSSESS)a+b/BZ  
9435 ------------------------------------------------------------------
9436         Bra
9437         a+
9438         b
9439         Ket
9440         End
9441 ------------------------------------------------------------------
9442
9443 /xyz/CY
9444   abcxyz 
9445 --->abcxyz
9446  +0 ^          x
9447  +0  ^         x
9448  +0   ^        x
9449  +0    ^       x
9450  +1    ^^      y
9451  +2    ^ ^     z
9452  +3    ^  ^    
9453  0: xyz
9454
9455 /^"((?(?=[a])[^"])|b)*"$/C
9456     "ab"
9457 --->"ab"
9458  +0 ^        ^
9459  +1 ^        "
9460  +2 ^^       ((?(?=[a])[^"])|b)*
9461  +3 ^^       (?(?=[a])[^"])
9462  +5 ^^       (?=[a])
9463  +8 ^^       [a]
9464 +11 ^ ^      )
9465 +12 ^^       [^"]
9466 +16 ^ ^      )
9467 +17 ^ ^      |
9468  +3 ^ ^      (?(?=[a])[^"])
9469  +5 ^ ^      (?=[a])
9470  +8 ^ ^      [a]
9471 +17 ^ ^      |
9472 +21 ^ ^      "
9473 +18 ^ ^      b
9474 +19 ^  ^     )
9475  +3 ^  ^     (?(?=[a])[^"])
9476  +5 ^  ^     (?=[a])
9477  +8 ^  ^     [a]
9478 +17 ^  ^     |
9479 +21 ^  ^     "
9480 +22 ^   ^    $
9481 +23 ^   ^    
9482  0: "ab"
9483  1: 
9484
9485 /^"((?(?=[a])[^"])|b)*"$/
9486     "ab"
9487  0: "ab"
9488  1: 
9489
9490 /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9491 Failed: reference to non-existent subpattern at offset 5
9492
9493 /^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9494     XYabcdY
9495  0: XYabcdY
9496  1: a
9497  2: b
9498  3: c
9499  4: d
9500  5: Y
9501  
9502 /Xa{2,4}b/
9503     X\P
9504 Partial match: X
9505     Xa\P
9506 Partial match: Xa
9507     Xaa\P 
9508 Partial match: Xaa
9509     Xaaa\P
9510 Partial match: Xaaa
9511     Xaaaa\P 
9512 Partial match: Xaaaa
9513     
9514 /Xa{2,4}?b/
9515     X\P
9516 Partial match: X
9517     Xa\P
9518 Partial match: Xa
9519     Xaa\P 
9520 Partial match: Xaa
9521     Xaaa\P
9522 Partial match: Xaaa
9523     Xaaaa\P 
9524 Partial match: Xaaaa
9525     
9526 /Xa{2,4}+b/
9527     X\P
9528 Partial match: X
9529     Xa\P
9530 Partial match: Xa
9531     Xaa\P 
9532 Partial match: Xaa
9533     Xaaa\P
9534 Partial match: Xaaa
9535     Xaaaa\P 
9536 Partial match: Xaaaa
9537     
9538 /X\d{2,4}b/
9539     X\P
9540 Partial match: X
9541     X3\P
9542 Partial match: X3
9543     X33\P 
9544 Partial match: X33
9545     X333\P
9546 Partial match: X333
9547     X3333\P 
9548 Partial match: X3333
9549     
9550 /X\d{2,4}?b/
9551     X\P
9552 Partial match: X
9553     X3\P
9554 Partial match: X3
9555     X33\P 
9556 Partial match: X33
9557     X333\P
9558 Partial match: X333
9559     X3333\P 
9560 Partial match: X3333
9561     
9562 /X\d{2,4}+b/
9563     X\P
9564 Partial match: X
9565     X3\P
9566 Partial match: X3
9567     X33\P 
9568 Partial match: X33
9569     X333\P
9570 Partial match: X333
9571     X3333\P 
9572 Partial match: X3333
9573     
9574 /X\D{2,4}b/
9575     X\P
9576 Partial match: X
9577     Xa\P
9578 Partial match: Xa
9579     Xaa\P 
9580 Partial match: Xaa
9581     Xaaa\P
9582 Partial match: Xaaa
9583     Xaaaa\P 
9584 Partial match: Xaaaa
9585     
9586 /X\D{2,4}?b/
9587     X\P
9588 Partial match: X
9589     Xa\P
9590 Partial match: Xa
9591     Xaa\P 
9592 Partial match: Xaa
9593     Xaaa\P
9594 Partial match: Xaaa
9595     Xaaaa\P 
9596 Partial match: Xaaaa
9597     
9598 /X\D{2,4}+b/
9599     X\P
9600 Partial match: X
9601     Xa\P
9602 Partial match: Xa
9603     Xaa\P 
9604 Partial match: Xaa
9605     Xaaa\P
9606 Partial match: Xaaa
9607     Xaaaa\P 
9608 Partial match: Xaaaa
9609     
9610 /X[abc]{2,4}b/
9611     X\P
9612 Partial match: X
9613     Xa\P
9614 Partial match: Xa
9615     Xaa\P 
9616 Partial match: Xaa
9617     Xaaa\P
9618 Partial match: Xaaa
9619     Xaaaa\P 
9620 Partial match: Xaaaa
9621     
9622 /X[abc]{2,4}?b/
9623     X\P
9624 Partial match: X
9625     Xa\P
9626 Partial match: Xa
9627     Xaa\P 
9628 Partial match: Xaa
9629     Xaaa\P
9630 Partial match: Xaaa
9631     Xaaaa\P 
9632 Partial match: Xaaaa
9633     
9634 /X[abc]{2,4}+b/
9635     X\P
9636 Partial match: X
9637     Xa\P
9638 Partial match: Xa
9639     Xaa\P 
9640 Partial match: Xaa
9641     Xaaa\P
9642 Partial match: Xaaa
9643     Xaaaa\P 
9644 Partial match: Xaaaa
9645     
9646 /X[^a]{2,4}b/
9647     X\P
9648 Partial match: X
9649     Xz\P
9650 Partial match: Xz
9651     Xzz\P 
9652 Partial match: Xzz
9653     Xzzz\P
9654 Partial match: Xzzz
9655     Xzzzz\P 
9656 Partial match: Xzzzz
9657     
9658 /X[^a]{2,4}?b/
9659     X\P
9660 Partial match: X
9661     Xz\P
9662 Partial match: Xz
9663     Xzz\P 
9664 Partial match: Xzz
9665     Xzzz\P
9666 Partial match: Xzzz
9667     Xzzzz\P 
9668 Partial match: Xzzzz
9669     
9670 /X[^a]{2,4}+b/
9671     X\P
9672 Partial match: X
9673     Xz\P
9674 Partial match: Xz
9675     Xzz\P 
9676 Partial match: Xzz
9677     Xzzz\P
9678 Partial match: Xzzz
9679     Xzzzz\P 
9680 Partial match: Xzzzz
9681     
9682 /(Y)X\1{2,4}b/
9683     YX\P
9684 Partial match: YX
9685     YXY\P
9686 Partial match: YXY
9687     YXYY\P 
9688 Partial match: YXYY
9689     YXYYY\P
9690 Partial match: YXYYY
9691     YXYYYY\P 
9692 Partial match: YXYYYY
9693     
9694 /(Y)X\1{2,4}?b/
9695     YX\P
9696 Partial match: YX
9697     YXY\P
9698 Partial match: YXY
9699     YXYY\P 
9700 Partial match: YXYY
9701     YXYYY\P
9702 Partial match: YXYYY
9703     YXYYYY\P 
9704 Partial match: YXYYYY
9705     
9706 /(Y)X\1{2,4}+b/
9707     YX\P
9708 Partial match: YX
9709     YXY\P
9710 Partial match: YXY
9711     YXYY\P 
9712 Partial match: YXYY
9713     YXYYY\P
9714 Partial match: YXYYY
9715     YXYYYY\P 
9716 Partial match: YXYYYY
9717     
9718 /\++\KZ|\d+X|9+Y/
9719     ++++123999\P
9720 Partial match: 123999
9721     ++++123999Y\P
9722  0: 999Y
9723     ++++Z1234\P 
9724  0: Z
9725
9726 /Z(*F)/
9727     Z\P
9728 No match
9729     ZA\P 
9730 No match
9731     
9732 /Z(?!)/
9733     Z\P 
9734 No match
9735     ZA\P 
9736 No match
9737
9738 /dog(sbody)?/
9739     dogs\P
9740  0: dog
9741     dogs\P\P 
9742 Partial match: dogs
9743     
9744 /dog(sbody)??/
9745     dogs\P
9746  0: dog
9747     dogs\P\P 
9748  0: dog
9749
9750 /dog|dogsbody/
9751     dogs\P
9752  0: dog
9753     dogs\P\P 
9754  0: dog
9755  
9756 /dogsbody|dog/
9757     dogs\P
9758  0: dog
9759     dogs\P\P 
9760 Partial match: dogs
9761
9762 /\bthe cat\b/
9763     the cat\P
9764  0: the cat
9765     the cat\P\P
9766 Partial match: the cat
9767
9768 /abc/
9769    abc\P
9770  0: abc
9771    abc\P\P
9772  0: abc
9773    
9774 /abc\K123/
9775     xyzabc123pqr
9776  0: 123
9777     xyzabc12\P
9778 Partial match: abc12
9779     xyzabc12\P\P
9780 Partial match: abc12
9781     
9782 /(?<=abc)123/
9783     xyzabc123pqr 
9784  0: 123
9785     xyzabc12\P
9786 Partial match at offset 6: abc12
9787     xyzabc12\P\P
9788 Partial match at offset 6: abc12
9789
9790 /\babc\b/
9791     +++abc+++
9792  0: abc
9793     +++ab\P
9794 Partial match at offset 3: +ab
9795     +++ab\P\P  
9796 Partial match at offset 3: +ab
9797
9798 /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9799 ------------------------------------------------------------------
9800         Bra
9801         Recurse
9802         Recurse
9803         Cond
9804         Cond def
9805         CBra 1
9806         <
9807         [^m]
9808         [^>]
9809         >
9810         [^<]
9811         Ket
9812         CBra 2
9813         \w*+
9814         Ket
9815         Ket
9816         Ket
9817         End
9818 ------------------------------------------------------------------
9819
9820 /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9821 ------------------------------------------------------------------
9822         Bra
9823         Recurse
9824         Recurse
9825         Cond
9826         Cond def
9827         CBra 1
9828         <
9829         [\x00-/:-\xff] (neg)
9830         [^>]
9831         >
9832         [^<]
9833         Ket
9834         CBra 2
9835         \w*+
9836         Ket
9837         Ket
9838         Ket
9839         End
9840 ------------------------------------------------------------------
9841
9842 /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9843 ------------------------------------------------------------------
9844         Bra
9845         CBra 1
9846         ab
9847         Ket
9848         CBra 2
9849         x
9850         CBra 3
9851         y
9852         Ket
9853         z
9854         CBra 4
9855         cd
9856         Close 4
9857         Close 2
9858         *ACCEPT
9859         Ket
9860         Ket
9861         pq
9862         Ket
9863         End
9864 ------------------------------------------------------------------
9865
9866 /abc\K/+
9867     abcdef
9868  0: 
9869  0+ def
9870     abcdef\N\N
9871  0: 
9872  0+ def
9873     xyzabcdef\N\N
9874  0: 
9875  0+ def
9876     ** Failers
9877 No match
9878     abcdef\N 
9879 No match
9880     xyzabcdef\N
9881 No match
9882     
9883 /^(?:(?=abc)|abc\K)/+
9884     abcdef
9885  0: 
9886  0+ abcdef
9887     abcdef\N\N 
9888  0: 
9889  0+ def
9890     ** Failers 
9891 No match
9892     abcdef\N 
9893 No match
9894
9895 /a?b?/+
9896     xyz
9897  0: 
9898  0+ xyz
9899     xyzabc
9900  0: 
9901  0+ xyzabc
9902     xyzabc\N
9903  0: ab
9904  0+ c
9905     xyzabc\N\N
9906  0: 
9907  0+ yzabc
9908     xyz\N\N    
9909  0: 
9910  0+ yz
9911     ** Failers 
9912  0: 
9913  0+ ** Failers
9914     xyz\N 
9915 No match
9916
9917 /^a?b?/+
9918     xyz
9919  0: 
9920  0+ xyz
9921     xyzabc
9922  0: 
9923  0+ xyzabc
9924     ** Failers 
9925  0: 
9926  0+ ** Failers
9927     xyzabc\N
9928 No match
9929     xyzabc\N\N
9930 No match
9931     xyz\N\N    
9932 No match
9933     xyz\N 
9934 No match
9935     
9936 /^(?<name>a|b\g<name>c)/
9937     aaaa
9938  0: a
9939  1: a
9940     bacxxx
9941  0: bac
9942  1: bac
9943     bbaccxxx 
9944  0: bbacc
9945  1: bbacc
9946     bbbacccxx
9947  0: bbbaccc
9948  1: bbbaccc
9949
9950 /^(?<name>a|b\g'name'c)/
9951     aaaa
9952  0: a
9953  1: a
9954     bacxxx
9955  0: bac
9956  1: bac
9957     bbaccxxx 
9958  0: bbacc
9959  1: bbacc
9960     bbbacccxx
9961  0: bbbaccc
9962  1: bbbaccc
9963
9964 /^(a|b\g<1>c)/
9965     aaaa
9966  0: a
9967  1: a
9968     bacxxx
9969  0: bac
9970  1: bac
9971     bbaccxxx 
9972  0: bbacc
9973  1: bbacc
9974     bbbacccxx
9975  0: bbbaccc
9976  1: bbbaccc
9977
9978 /^(a|b\g'1'c)/
9979     aaaa
9980  0: a
9981  1: a
9982     bacxxx
9983  0: bac
9984  1: bac
9985     bbaccxxx 
9986  0: bbacc
9987  1: bbacc
9988     bbbacccxx
9989  0: bbbaccc
9990  1: bbbaccc
9991
9992 /^(a|b\g'-1'c)/
9993     aaaa
9994  0: a
9995  1: a
9996     bacxxx
9997  0: bac
9998  1: bac
9999     bbaccxxx 
10000  0: bbacc
10001  1: bbacc
10002     bbbacccxx
10003  0: bbbaccc
10004  1: bbbaccc
10005
10006 /(^(a|b\g<-1>c))/
10007     aaaa
10008  0: a
10009  1: a
10010  2: a
10011     bacxxx
10012  0: bac
10013  1: bac
10014  2: bac
10015     bbaccxxx 
10016  0: bbacc
10017  1: bbacc
10018  2: bbacc
10019     bbbacccxx
10020  0: bbbaccc
10021  1: bbbaccc
10022  2: bbbaccc
10023
10024 /(?-i:\g<name>)(?i:(?<name>a))/
10025     XaaX
10026  0: aa
10027  1: a
10028     XAAX 
10029  0: AA
10030  1: A
10031
10032 /(?i:\g<name>)(?-i:(?<name>a))/
10033     XaaX
10034  0: aa
10035  1: a
10036     ** Failers 
10037 No match
10038     XAAX 
10039 No match
10040
10041 /(?-i:\g<+1>)(?i:(a))/
10042     XaaX
10043  0: aa
10044  1: a
10045     XAAX 
10046  0: AA
10047  1: A
10048
10049 /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
10050
10051 /(?<n>a|b|c)\g<n>*/
10052    abc
10053  0: abc
10054  1: a
10055    accccbbb 
10056  0: accccbbb
10057  1: a
10058
10059 /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
10060     XYabcdY
10061  0: XYabcdY
10062  1: a
10063  2: b
10064  3: <unset>
10065  4: <unset>
10066  5: c
10067  6: d
10068  7: Y
10069
10070 /(?<=b(?1)|zzz)(a)/
10071     xbaax
10072  0: a
10073  1: a
10074     xzzzax 
10075  0: a
10076  1: a
10077
10078 /(a)(?<=b\1)/
10079 Failed: lookbehind assertion is not fixed length at offset 10
10080
10081 /(a)(?<=b+(?1))/
10082 Failed: lookbehind assertion is not fixed length at offset 13
10083
10084 /(a+)(?<=b(?1))/
10085 Failed: lookbehind assertion is not fixed length at offset 14
10086
10087 /(a(?<=b(?1)))/
10088 Failed: lookbehind assertion is not fixed length at offset 13
10089
10090 /(?<=b(?1))xyz/
10091 Failed: reference to non-existent subpattern at offset 8
10092
10093 /(?<=b(?1))xyz(b+)pqrstuvew/
10094 Failed: lookbehind assertion is not fixed length at offset 26
10095
10096 /(a|bc)\1/SI
10097 Capturing subpattern count = 1
10098 Max back reference = 1
10099 No options
10100 No first char
10101 No need char
10102 Subject length lower bound = 2
10103 Starting chars: a b 
10104
10105 /(a|bc)\1{2,3}/SI
10106 Capturing subpattern count = 1
10107 Max back reference = 1
10108 No options
10109 No first char
10110 No need char
10111 Subject length lower bound = 3
10112 Starting chars: a b 
10113
10114 /(a|bc)(?1)/SI
10115 Capturing subpattern count = 1
10116 No options
10117 No first char
10118 No need char
10119 Subject length lower bound = 2
10120 Starting chars: a b 
10121
10122 /(a|b\1)(a|b\1)/SI
10123 Capturing subpattern count = 2
10124 Max back reference = 1
10125 No options
10126 No first char
10127 No need char
10128 Subject length lower bound = 2
10129 Starting chars: a b 
10130
10131 /(a|b\1){2}/SI
10132 Capturing subpattern count = 1
10133 Max back reference = 1
10134 No options
10135 No first char
10136 No need char
10137 Subject length lower bound = 2
10138 Starting chars: a b 
10139
10140 /(a|bbbb\1)(a|bbbb\1)/SI
10141 Capturing subpattern count = 2
10142 Max back reference = 1
10143 No options
10144 No first char
10145 No need char
10146 Subject length lower bound = 2
10147 Starting chars: a b 
10148
10149 /(a|bbbb\1){2}/SI
10150 Capturing subpattern count = 1
10151 Max back reference = 1
10152 No options
10153 No first char
10154 No need char
10155 Subject length lower bound = 2
10156 Starting chars: a b 
10157
10158 /^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]/SI
10159 Capturing subpattern count = 1
10160 Options: anchored
10161 No first char
10162 Need char = ':'
10163 Subject length lower bound = 22
10164 No starting char list
10165
10166 /<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>/isIS
10167 Capturing subpattern count = 11
10168 Options: caseless dotall
10169 First char = '<'
10170 Need char = '>'
10171 Subject length lower bound = 47
10172 No starting char list
10173
10174 "(?>.*/)foo"SI
10175 Capturing subpattern count = 0
10176 No options
10177 No first char
10178 Need char = 'o'
10179 Subject length lower bound = 4
10180 No starting char list
10181
10182 /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10183 Capturing subpattern count = 0
10184 Options: extended
10185 No first char
10186 Need char = '-'
10187 Subject length lower bound = 8
10188 No starting char list
10189
10190 /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10191 Capturing subpattern count = 1
10192 Options: caseless
10193 No first char
10194 No need char
10195 Subject length lower bound = 1
10196 Starting chars: A B C a b c 
10197
10198 /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10199 Capturing subpattern count = 0
10200 No options
10201 No first char
10202 Need char = 'b'
10203 Subject length lower bound = 41
10204 Starting chars: c d 
10205
10206 /<a[\s]+href[\s]*=[\s]*          # find <a href=
10207  ([\"\'])?                       # find single or double quote
10208  (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10209                                  # quote, otherwise match up to next space
10210 /isxSI
10211 Capturing subpattern count = 3
10212 Max back reference = 1
10213 Options: caseless extended dotall
10214 First char = '<'
10215 Need char = '='
10216 Subject length lower bound = 9
10217 No starting char list
10218
10219 /^(?!:)                       # colon disallowed at start
10220   (?:                         # start of item
10221     (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10222     (?(1)0 | () ) )           # if null previously matched, fail; else null
10223     :                         # followed by colon
10224   ){1,7}                      # end item; 1-7 of them required               
10225   [0-9a-f]{1,4} $             # final hex number at end of string
10226   (?(1)|.)                    # check that there was an empty component
10227   /xiIS
10228 Capturing subpattern count = 1
10229 Options: anchored caseless extended
10230 No first char
10231 Need char = ':'
10232 Subject length lower bound = 2
10233 No starting char list
10234
10235 /(?|(?<a>A)|(?<a>B))/I
10236 Capturing subpattern count = 1
10237 Named capturing subpatterns:
10238   a   1
10239 No options
10240 No first char
10241 No need char
10242     AB\Ca
10243  0: A
10244  1: A
10245   C A (1) a
10246     BA\Ca
10247  0: B
10248  1: B
10249   C B (1) a
10250
10251 /(?|(?<a>A)|(?<b>B))/ 
10252 Failed: different names for subpatterns of the same number are not allowed at offset 15
10253
10254 /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10255     b(?<quote> (?<apostrophe>')|(?<realquote>")) ) 
10256     (?('quote')[a-z]+|[0-9]+)/JIx
10257 Capturing subpattern count = 6
10258 Named capturing subpatterns:
10259   apostrophe   2
10260   apostrophe   5
10261   quote        1
10262   quote        4
10263   realquote    3
10264   realquote    6
10265 Options: extended dupnames
10266 No first char
10267 No need char
10268     a"aaaaa
10269  0: a"aaaaa
10270  1: "
10271  2: <unset>
10272  3: "
10273     b"aaaaa 
10274  0: b"aaaaa
10275  1: <unset>
10276  2: <unset>
10277  3: <unset>
10278  4: "
10279  5: <unset>
10280  6: "
10281     ** Failers 
10282 No match
10283     b"11111
10284 No match
10285     a"11111 
10286 No match
10287     
10288 /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10289 ------------------------------------------------------------------
10290         Bra
10291         ^
10292         Bra
10293         CBra 1
10294         a
10295         Ket
10296         CBra 2
10297         b
10298         Ket
10299         CBra 3
10300         c
10301         Ket
10302         CBra 4
10303         d
10304         Ket
10305         Alt
10306         CBra 1
10307         e
10308         Ket
10309         Ket
10310         Cond
10311         Cond ref <D>2
10312         X
10313         Alt
10314         Y
10315         Ket
10316         Ket
10317         End
10318 ------------------------------------------------------------------
10319 Capturing subpattern count = 4
10320 Named capturing subpatterns:
10321   D   4
10322   D   1
10323 Options: anchored extended dupnames
10324 No first char
10325 No need char
10326     abcdX
10327  0: abcdX
10328  1: a
10329  2: b
10330  3: c
10331  4: d
10332     eX
10333  0: eX
10334  1: e
10335     ** Failers
10336 No match
10337     abcdY
10338 No match
10339     ey     
10340 No match
10341     
10342 /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10343 ------------------------------------------------------------------
10344         Bra
10345         CBra 1
10346         a
10347         Ket
10348         CBra 2
10349         b
10350         Ket
10351         CBra 3
10352         c
10353         Ket
10354         CBra 4
10355         d
10356         Cond
10357         Cond recurse <A>2
10358         $
10359         Alt
10360         Recurse
10361         Ket
10362         Ket
10363         Ket
10364         End
10365 ------------------------------------------------------------------
10366 Capturing subpattern count = 4
10367 Named capturing subpatterns:
10368   A   1
10369   A   4
10370 Options: extended dupnames
10371 First char = 'a'
10372 Need char = 'd'
10373     abcdd
10374  0: abcdd
10375  1: a
10376  2: b
10377  3: c
10378  4: dd
10379     ** Failers
10380 No match
10381     abcdde  
10382 No match
10383
10384 /abcd*/
10385     xxxxabcd\P
10386  0: abcd
10387     xxxxabcd\P\P
10388 Partial match: abcd
10389
10390 /abcd*/i
10391     xxxxabcd\P
10392  0: abcd
10393     xxxxabcd\P\P
10394 Partial match: abcd
10395     XXXXABCD\P
10396  0: ABCD
10397     XXXXABCD\P\P
10398 Partial match: ABCD
10399
10400 /abc\d*/
10401     xxxxabc1\P
10402  0: abc1
10403     xxxxabc1\P\P
10404 Partial match: abc1
10405
10406 /(a)bc\1*/
10407     xxxxabca\P
10408  0: abca
10409  1: a
10410     xxxxabca\P\P
10411 Partial match: abca
10412
10413 /abc[de]*/
10414     xxxxabcde\P
10415  0: abcde
10416     xxxxabcde\P\P
10417 Partial match: abcde
10418
10419 /-- This is not in the Perl-compatible test because Perl seems currently to be
10420     broken and not behaving as specified in that it *does* bumpalong after
10421     hitting (*COMMIT). --/
10422
10423 /(?1)(A(*COMMIT)|B)D/
10424     ABD
10425  0: ABD
10426  1: B
10427     XABD
10428  0: ABD
10429  1: B
10430     BAD
10431  0: BAD
10432  1: A
10433     ABXABD  
10434  0: ABD
10435  1: B
10436     ** Failers 
10437 No match
10438     ABX 
10439 No match
10440     BAXBAD  
10441 No match
10442
10443 /(\3)(\1)(a)/<JS>
10444     cat
10445  0: a
10446  1: 
10447  2: 
10448  3: a
10449
10450 /(\3)(\1)(a)/SI<JS>
10451 Capturing subpattern count = 3
10452 Max back reference = 3
10453 Options:
10454 No first char
10455 Need char = 'a'
10456 Subject length lower bound = 1
10457 No starting char list
10458     cat
10459  0: a
10460  1: 
10461  2: 
10462  3: a
10463
10464 /(\3)(\1)(a)/SI
10465 Capturing subpattern count = 3
10466 Max back reference = 3
10467 No options
10468 No first char
10469 Need char = 'a'
10470 Subject length lower bound = 3
10471 No starting char list
10472     cat
10473 No match
10474
10475 /i(?(DEFINE)(?<s>a))/SI
10476 Capturing subpattern count = 1
10477 Named capturing subpatterns:
10478   s   1
10479 No options
10480 First char = 'i'
10481 No need char
10482 Subject length lower bound = 1
10483 No starting char list
10484     i
10485  0: i
10486     
10487 /()i(?(1)a)/SI 
10488 Capturing subpattern count = 1
10489 No options
10490 No first char
10491 Need char = 'i'
10492 Subject length lower bound = 1
10493 Starting chars: i 
10494     ia
10495  0: ia
10496  1: 
10497
10498 /(?i)a(?-i)b|c/BZ
10499 ------------------------------------------------------------------
10500         Bra
10501      /i a
10502         b
10503         Alt
10504         c
10505         Ket
10506         End
10507 ------------------------------------------------------------------
10508     XabX
10509  0: ab
10510     XAbX
10511  0: Ab
10512     CcC 
10513  0: c
10514     ** Failers
10515 No match
10516     XABX   
10517 No match
10518
10519 /(?i)a(?s)b|c/BZ
10520 ------------------------------------------------------------------
10521         Bra
10522      /i ab
10523         Alt
10524      /i c
10525         Ket
10526         End
10527 ------------------------------------------------------------------
10528
10529 /(?i)a(?s-i)b|c/BZ
10530 ------------------------------------------------------------------
10531         Bra
10532      /i a
10533         b
10534         Alt
10535         c
10536         Ket
10537         End
10538 ------------------------------------------------------------------
10539
10540 /^(ab(c\1)d|x){2}$/BZ
10541 ------------------------------------------------------------------
10542         Bra
10543         ^
10544         Once
10545         CBra 1
10546         ab
10547         CBra 2
10548         c
10549         \1
10550         Ket
10551         d
10552         Alt
10553         x
10554         Ket
10555         Ket
10556         Once
10557         CBra 1
10558         ab
10559         CBra 2
10560         c
10561         \1
10562         Ket
10563         d
10564         Alt
10565         x
10566         Ket
10567         Ket
10568         $
10569         Ket
10570         End
10571 ------------------------------------------------------------------
10572     xabcxd
10573  0: xabcxd
10574  1: abcxd
10575  2: cx
10576     
10577 /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10578 ------------------------------------------------------------------
10579         Bra
10580         ^
10581         Braposzero
10582         SBraPos
10583         Recurse
10584         KetRpos
10585         Cond
10586         Cond def
10587         CBra 1
10588         Any
10589         Ket
10590         Ket
10591         $
10592         Ket
10593         End
10594 ------------------------------------------------------------------
10595
10596 /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10597 ------------------------------------------------------------------
10598         Bra
10599         ^
10600         Brazero
10601         Once
10602         Recurse
10603         KetRmax
10604         Cond
10605         Cond def
10606         CBra 1
10607         Any
10608         Ket
10609         Ket
10610         $
10611         Ket
10612         End
10613 ------------------------------------------------------------------
10614
10615 / -- This one is here because Perl gives the match as "b" rather than "ab". I
10616      believe this to be a Perl bug. --/  
10617       
10618 /(?>a\Kb)z|(ab)/
10619     ab 
10620  0: ab
10621  1: ab
10622
10623 /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10624 Failed: recursive call could loop indefinitely at offset 31
10625
10626 /abc(*MARK:)pqr/
10627 Failed: (*MARK) must have an argument at offset 10
10628
10629 /abc(*:)pqr/
10630 Failed: (*MARK) must have an argument at offset 6
10631
10632 /abc(*FAIL:123)xyz/
10633 Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10634
10635 /--- This should, and does, fail. In Perl, it does not, which I think is a 
10636      bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10637
10638 /A(*COMMIT)B/+K
10639     ACABX
10640 No match
10641
10642 /--- These should be different, but in Perl they are not, which I think
10643      is a bug in Perl. ---/
10644
10645 /A(*THEN)B|A(*THEN)C/K
10646     AC
10647  0: AC
10648
10649 /A(*PRUNE)B|A(*PRUNE)C/K
10650     AC
10651 No match
10652     
10653 /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10654 though PCRE does. ---/
10655
10656 /^A(*:A)B|^X(*:A)Y/K
10657     ** Failers
10658 No match
10659     XAQQ
10660 No match, mark = A
10661     
10662 /--- COMMIT at the start of a pattern should be the same as an anchor. Perl 
10663 optimizations defeat this. So does the PCRE optimization unless we disable it 
10664 with \Y. ---/
10665
10666 /(*COMMIT)ABC/
10667     ABCDEFG
10668  0: ABC
10669     ** Failers
10670 No match
10671     DEFGABC\Y  
10672 No match
10673     
10674 /^(ab (c+(*THEN)cd) | xyz)/x
10675     abcccd  
10676 No match
10677
10678 /^(ab (c+(*PRUNE)cd) | xyz)/x
10679     abcccd  
10680 No match
10681
10682 /^(ab (c+(*FAIL)cd) | xyz)/x
10683     abcccd  
10684 No match
10685     
10686 /--- Perl gets some of these wrong ---/ 
10687
10688 /(?>.(*ACCEPT))*?5/
10689     abcde
10690  0: a
10691
10692 /(.(*ACCEPT))*?5/
10693     abcde
10694  0: a
10695  1: a
10696
10697 /(.(*ACCEPT))5/
10698     abcde
10699  0: a
10700  1: a
10701
10702 /(.(*ACCEPT))*5/
10703     abcde
10704  0: a
10705  1: a
10706
10707 /A\NB./BZ
10708 ------------------------------------------------------------------
10709         Bra
10710         A
10711         Any
10712         B
10713         Any
10714         Ket
10715         End
10716 ------------------------------------------------------------------
10717     ACBD
10718  0: ACBD
10719     *** Failers
10720 No match
10721     A\nB
10722 No match
10723     ACB\n   
10724 No match
10725
10726 /A\NB./sBZ
10727 ------------------------------------------------------------------
10728         Bra
10729         A
10730         Any
10731         B
10732         AllAny
10733         Ket
10734         End
10735 ------------------------------------------------------------------
10736     ACBD
10737  0: ACBD
10738     ACB\n 
10739  0: ACB\x0a
10740     *** Failers
10741 No match
10742     A\nB  
10743 No match
10744   
10745 /A\NB/<crlf>
10746     A\nB
10747  0: A\x0aB
10748     A\rB
10749  0: A\x0dB
10750     ** Failers
10751 No match
10752     A\r\nB    
10753 No match
10754
10755 /\R+b/BZ
10756 ------------------------------------------------------------------
10757         Bra
10758         \R++
10759         b
10760         Ket
10761         End
10762 ------------------------------------------------------------------
10763
10764 /\R+\n/BZ
10765 ------------------------------------------------------------------
10766         Bra
10767         \R+
10768         \x0a
10769         Ket
10770         End
10771 ------------------------------------------------------------------
10772
10773 /\R+\d/BZ
10774 ------------------------------------------------------------------
10775         Bra
10776         \R++
10777         \d
10778         Ket
10779         End
10780 ------------------------------------------------------------------
10781
10782 /\d*\R/BZ
10783 ------------------------------------------------------------------
10784         Bra
10785         \d*+
10786         \R
10787         Ket
10788         End
10789 ------------------------------------------------------------------
10790
10791 /\s*\R/BZ
10792 ------------------------------------------------------------------
10793         Bra
10794         \s*
10795         \R
10796         Ket
10797         End
10798 ------------------------------------------------------------------
10799     \x20\x0a
10800  0:  \x0a
10801     \x20\x0d
10802  0:  \x0d
10803     \x20\x0d\x0a
10804  0:  \x0d\x0a
10805
10806 /\S*\R/BZ
10807 ------------------------------------------------------------------
10808         Bra
10809         \S*+
10810         \R
10811         Ket
10812         End
10813 ------------------------------------------------------------------
10814     a\x0a
10815  0: a\x0a
10816
10817 /X\h*\R/BZ
10818 ------------------------------------------------------------------
10819         Bra
10820         X
10821         \h*+
10822         \R
10823         Ket
10824         End
10825 ------------------------------------------------------------------
10826     X\x20\x0a
10827  0: X \x0a
10828
10829 /X\H*\R/BZ
10830 ------------------------------------------------------------------
10831         Bra
10832         X
10833         \H*
10834         \R
10835         Ket
10836         End
10837 ------------------------------------------------------------------
10838     X\x0d\x0a
10839  0: X\x0d\x0a
10840
10841 /X\H+\R/BZ
10842 ------------------------------------------------------------------
10843         Bra
10844         X
10845         \H+
10846         \R
10847         Ket
10848         End
10849 ------------------------------------------------------------------
10850     X\x0d\x0a
10851  0: X\x0d\x0a
10852
10853 /X\H++\R/BZ
10854 ------------------------------------------------------------------
10855         Bra
10856         X
10857         \H++
10858         \R
10859         Ket
10860         End
10861 ------------------------------------------------------------------
10862     X\x0d\x0a
10863 No match
10864
10865 /(?<=abc)def/
10866     abc\P\P
10867 Partial match at offset 3: abc
10868
10869 /abc$/
10870     abc
10871  0: abc
10872     abc\P
10873  0: abc
10874     abc\P\P
10875 Partial match: abc
10876
10877 /abc$/m
10878     abc
10879  0: abc
10880     abc\n
10881  0: abc
10882     abc\P\P
10883 Partial match: abc
10884     abc\n\P\P 
10885  0: abc
10886     abc\P
10887  0: abc
10888     abc\n\P
10889  0: abc
10890
10891 /abc\z/
10892     abc
10893  0: abc
10894     abc\P
10895  0: abc
10896     abc\P\P
10897 Partial match: abc
10898
10899 /abc\Z/
10900     abc
10901  0: abc
10902     abc\P
10903  0: abc
10904     abc\P\P
10905 Partial match: abc
10906
10907 /abc\b/
10908     abc
10909  0: abc
10910     abc\P
10911  0: abc
10912     abc\P\P
10913 Partial match: abc
10914
10915 /abc\B/
10916     abc
10917 No match
10918     abc\P
10919 Partial match: abc
10920     abc\P\P
10921 Partial match: abc
10922
10923 /.+/
10924     abc\>0
10925  0: abc
10926     abc\>1
10927  0: bc
10928     abc\>2
10929  0: c
10930     abc\>3
10931 No match
10932     abc\>4
10933 Error -24 (bad offset value)
10934     abc\>-4 
10935 Error -24 (bad offset value)
10936
10937 /^\cģ/
10938 Failed: \c must be followed by an ASCII character at offset 3
10939
10940 /(?P<abn>(?P=abn)xxx)/BZ
10941 ------------------------------------------------------------------
10942         Bra
10943         Once
10944         CBra 1
10945         \1
10946         xxx
10947         Ket
10948         Ket
10949         Ket
10950         End
10951 ------------------------------------------------------------------
10952
10953 /(a\1z)/BZ
10954 ------------------------------------------------------------------
10955         Bra
10956         Once
10957         CBra 1
10958         a
10959         \1
10960         z
10961         Ket
10962         Ket
10963         Ket
10964         End
10965 ------------------------------------------------------------------
10966
10967 /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10968 Failed: syntax error in subpattern name (missing terminator) at offset 29
10969
10970 /(?P<abn>(?P=axn)xxx)/BZ
10971 Failed: reference to non-existent subpattern at offset 15
10972
10973 /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10974 ------------------------------------------------------------------
10975         Bra
10976         CBra 1
10977         \2
10978         xxx
10979         Ket
10980         CBra 2
10981         yy
10982         Ket
10983         Ket
10984         End
10985 ------------------------------------------------------------------
10986
10987 /-- These tests are here because Perl gets the first one wrong. --/
10988
10989 /(\R*)(.)/s
10990     \r\n
10991  0: \x0d
10992  1: 
10993  2: \x0d
10994     \r\r\n\n\r 
10995  0: \x0d\x0d\x0a\x0a\x0d
10996  1: \x0d\x0d\x0a\x0a
10997  2: \x0d
10998     \r\r\n\n\r\n 
10999  0: \x0d\x0d\x0a\x0a\x0d
11000  1: \x0d\x0d\x0a\x0a
11001  2: \x0d
11002
11003 /(\R)*(.)/s
11004     \r\n
11005  0: \x0d
11006  1: <unset>
11007  2: \x0d
11008     \r\r\n\n\r 
11009  0: \x0d\x0d\x0a\x0a\x0d
11010  1: \x0a
11011  2: \x0d
11012     \r\r\n\n\r\n 
11013  0: \x0d\x0d\x0a\x0a\x0d
11014  1: \x0a
11015  2: \x0d
11016
11017 /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11018     \r\n
11019  0: \x0d
11020  1: 
11021  2: \x0d
11022     \r\r\n\n\r 
11023  0: \x0d\x0d\x0a\x0a\x0d
11024  1: \x0d\x0d\x0a\x0a
11025  2: \x0d
11026     \r\r\n\n\r\n 
11027  0: \x0d\x0d\x0a\x0a\x0d
11028  1: \x0d\x0d\x0a\x0a
11029  2: \x0d
11030
11031 /-- --/
11032
11033 /^abc$/BZ
11034 ------------------------------------------------------------------
11035         Bra
11036         ^
11037         abc
11038         $
11039         Ket
11040         End
11041 ------------------------------------------------------------------
11042
11043 /^abc$/BZm
11044 ------------------------------------------------------------------
11045         Bra
11046      /m ^
11047         abc
11048      /m $
11049         Ket
11050         End
11051 ------------------------------------------------------------------
11052
11053 /^(a)*+(\w)/S
11054     aaaaX
11055  0: aaaaX
11056  1: a
11057  2: X
11058     ** Failers 
11059 No match
11060     aaaa
11061 No match
11062
11063 /^(?:a)*+(\w)/S
11064     aaaaX
11065  0: aaaaX
11066  1: X
11067     ** Failers 
11068 No match
11069     aaaa
11070 No match
11071
11072 /(a)++1234/SDZ
11073 ------------------------------------------------------------------
11074         Bra
11075         CBraPos 1
11076         a
11077         KetRpos
11078         1234
11079         Ket
11080         End
11081 ------------------------------------------------------------------
11082 Capturing subpattern count = 1
11083 No options
11084 First char = 'a'
11085 Need char = '4'
11086 Subject length lower bound = 5
11087 No starting char list
11088
11089 /([abc])++1234/SI
11090 Capturing subpattern count = 1
11091 No options
11092 No first char
11093 Need char = '4'
11094 Subject length lower bound = 5
11095 Starting chars: a b c 
11096
11097 /(?<=(abc)+)X/
11098 Failed: lookbehind assertion is not fixed length at offset 10
11099
11100 /(^ab)/I
11101 Capturing subpattern count = 1
11102 Options: anchored
11103 No first char
11104 No need char
11105
11106 /(^ab)++/I
11107 Capturing subpattern count = 1
11108 Options: anchored
11109 No first char
11110 No need char
11111
11112 /(^ab|^)+/I
11113 Capturing subpattern count = 1
11114 May match empty string
11115 Options: anchored
11116 No first char
11117 No need char
11118
11119 /(^ab|^)++/I
11120 Capturing subpattern count = 1
11121 May match empty string
11122 Options: anchored
11123 No first char
11124 No need char
11125
11126 /(?:^ab)/I
11127 Capturing subpattern count = 0
11128 Options: anchored
11129 No first char
11130 No need char
11131
11132 /(?:^ab)++/I
11133 Capturing subpattern count = 0
11134 Options: anchored
11135 No first char
11136 No need char
11137
11138 /(?:^ab|^)+/I
11139 Capturing subpattern count = 0
11140 May match empty string
11141 Options: anchored
11142 No first char
11143 No need char
11144
11145 /(?:^ab|^)++/I
11146 Capturing subpattern count = 0
11147 May match empty string
11148 Options: anchored
11149 No first char
11150 No need char
11151
11152 /(.*ab)/I
11153 Capturing subpattern count = 1
11154 No options
11155 First char at start or follows newline
11156 Need char = 'b'
11157
11158 /(.*ab)++/I
11159 Capturing subpattern count = 1
11160 No options
11161 First char at start or follows newline
11162 Need char = 'b'
11163
11164 /(.*ab|.*)+/I
11165 Capturing subpattern count = 1
11166 May match empty string
11167 No options
11168 First char at start or follows newline
11169 No need char
11170
11171 /(.*ab|.*)++/I
11172 Capturing subpattern count = 1
11173 May match empty string
11174 No options
11175 First char at start or follows newline
11176 No need char
11177
11178 /(?:.*ab)/I
11179 Capturing subpattern count = 0
11180 No options
11181 First char at start or follows newline
11182 Need char = 'b'
11183
11184 /(?:.*ab)++/I
11185 Capturing subpattern count = 0
11186 No options
11187 First char at start or follows newline
11188 Need char = 'b'
11189
11190 /(?:.*ab|.*)+/I
11191 Capturing subpattern count = 0
11192 May match empty string
11193 No options
11194 First char at start or follows newline
11195 No need char
11196
11197 /(?:.*ab|.*)++/I
11198 Capturing subpattern count = 0
11199 May match empty string
11200 No options
11201 First char at start or follows newline
11202 No need char
11203
11204 /(?=a)[bcd]/I
11205 Capturing subpattern count = 0
11206 No options
11207 First char = 'a'
11208 No need char
11209
11210 /((?=a))[bcd]/I
11211 Capturing subpattern count = 1
11212 No options
11213 First char = 'a'
11214 No need char
11215
11216 /((?=a))+[bcd]/I
11217 Capturing subpattern count = 1
11218 No options
11219 First char = 'a'
11220 No need char
11221
11222 /((?=a))++[bcd]/I
11223 Capturing subpattern count = 1
11224 No options
11225 First char = 'a'
11226 No need char
11227
11228 /(?=a+)[bcd]/iI
11229 Capturing subpattern count = 0
11230 Options: caseless
11231 First char = 'a' (caseless)
11232 No need char
11233
11234 /(?=a+?)[bcd]/iI
11235 Capturing subpattern count = 0
11236 Options: caseless
11237 First char = 'a' (caseless)
11238 No need char
11239
11240 /(?=a++)[bcd]/iI
11241 Capturing subpattern count = 0
11242 Options: caseless
11243 First char = 'a' (caseless)
11244 No need char
11245
11246 /(?=a{3})[bcd]/iI
11247 Capturing subpattern count = 0
11248 Options: caseless
11249 First char = 'a' (caseless)
11250 Need char = 'a' (caseless)
11251
11252 /(abc)\1+/S
11253
11254 /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11255
11256 /(?1)(?:(b(*ACCEPT))){0}/
11257     b
11258  0: b
11259
11260 /(?1)(?:(b(*ACCEPT))){0}c/
11261     bc
11262  0: bc
11263     ** Failers 
11264 No match
11265     b 
11266 No match
11267
11268 /(?1)(?:((*ACCEPT))){0}c/
11269     c
11270  0: c
11271     c\N 
11272  0: c
11273
11274 /^.*?(?(?=a)a|b(*THEN)c)/
11275     ba
11276 No match
11277
11278 /^.*?(?(?=a)a|bc)/
11279     ba
11280  0: ba
11281
11282 /^.*?(?(?=a)a(*THEN)b|c)/
11283     ac
11284 No match
11285
11286 /^.*?(?(?=a)a(*THEN)b)c/
11287     ac
11288 No match
11289
11290 /^.*?(a(*THEN)b)c/
11291     aabc
11292 No match
11293     
11294 /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11295     aabc
11296  0: aabc
11297
11298 /^.*?(a(*THEN)b|z)c/
11299     aabc
11300  0: aabc
11301  1: ab
11302
11303 /^.*?(z|a(*THEN)b)c/
11304     aabc
11305  0: aabc
11306  1: ab
11307
11308 /-- --/
11309
11310 /-- These studied versions are here because they are not Perl-compatible; the
11311     studying means the mark is not seen. --/
11312
11313 /(*MARK:A)(*SKIP:B)(C|X)/KS
11314     C
11315  0: C
11316  1: C
11317 MK: A
11318     D
11319 No match, mark = A
11320      
11321 /(*:A)A+(*SKIP:A)(B|Z)/KS
11322     AAAC
11323 No match, mark = A
11324
11325 /-- --/
11326
11327 "(?=a*(*ACCEPT)b)c"
11328     c
11329  0: c
11330     c\N 
11331  0: c
11332     
11333 /(?1)c(?(DEFINE)((*ACCEPT)b))/
11334     c
11335  0: c
11336     c\N  
11337  0: c
11338     
11339 /(?>(*ACCEPT)b)c/
11340     c
11341  0: 
11342     c\N  
11343 No match
11344
11345 /(?:(?>(a)))+a%/++
11346     %aa%
11347  0: aa%
11348  0+ 
11349  1: a
11350  1+ a%
11351
11352 /(a)b|ac/++SS
11353     ac\O3
11354  0: ac
11355  0+ 
11356     
11357 /(a)(b)x|abc/++
11358      abc\O6
11359  0: abc
11360  0+ 
11361
11362 /(a)bc|(a)(b)\2/
11363     \O3abc
11364 Matched, but too many substrings
11365  0: abc
11366     \O4abc 
11367 Matched, but too many substrings
11368  0: abc
11369
11370 /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11371 Capturing subpattern count = 2
11372 No options
11373 No first char
11374 No need char
11375 Subject length lower bound = 1
11376 No starting char list
11377
11378 /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11379 Capturing subpattern count = 2
11380 No options
11381 No first char
11382 No need char
11383 Subject length lower bound = 3
11384 Starting chars: a b 
11385
11386 /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11387 Capturing subpattern count = 2
11388 No options
11389 No first char
11390 No need char
11391 Subject length lower bound = 4
11392 Starting chars: a b 
11393
11394 /(abc)(?1)/SI
11395 Capturing subpattern count = 1
11396 No options
11397 First char = 'a'
11398 Need char = 'c'
11399 Subject length lower bound = 6
11400 No starting char list
11401
11402 /^(?>a)++/
11403     aa\M
11404 Minimum match() limit = 5
11405 Minimum match() recursion limit = 2
11406  0: aa
11407     aaaaaaaaa\M 
11408 Minimum match() limit = 12
11409 Minimum match() recursion limit = 2
11410  0: aaaaaaaaa
11411     
11412 /(a)(?1)++/
11413     aa\M
11414 Minimum match() limit = 7
11415 Minimum match() recursion limit = 4
11416  0: aa
11417  1: a
11418     aaaaaaaaa\M  
11419 Minimum match() limit = 21
11420 Minimum match() recursion limit = 4
11421  0: aaaaaaaaa
11422  1: a
11423
11424 /(?:(foo)|(bar)|(baz))X/SS=
11425     bazfooX
11426  0: fooX
11427  1: foo
11428  2: <unset>
11429  3: <unset>
11430     foobazbarX
11431  0: barX
11432  1: <unset>
11433  2: bar
11434  3: <unset>
11435     barfooX
11436  0: fooX
11437  1: foo
11438  2: <unset>
11439  3: <unset>
11440     bazX
11441  0: bazX
11442  1: <unset>
11443  2: <unset>
11444  3: baz
11445     foobarbazX    
11446  0: bazX
11447  1: <unset>
11448  2: <unset>
11449  3: baz
11450     bazfooX\O0
11451 Matched, but too many substrings
11452     bazfooX\O2
11453 Matched, but too many substrings
11454  0: fooX
11455     bazfooX\O4
11456 Matched, but too many substrings
11457  0: fooX
11458  1: <unset>
11459     bazfooX\O6
11460 Matched, but too many substrings
11461  0: fooX
11462  1: foo
11463  2: <unset>
11464     bazfooX\O8
11465 Matched, but too many substrings
11466  0: fooX
11467  1: foo
11468  2: <unset>
11469  3: <unset>
11470     bazfooX\O10
11471  0: fooX
11472  1: foo
11473  2: <unset>
11474  3: <unset>
11475
11476 /(?=abc){3}abc/BZ
11477 ------------------------------------------------------------------
11478         Bra
11479         Assert
11480         abc
11481         Ket
11482         abc
11483         Ket
11484         End
11485 ------------------------------------------------------------------
11486
11487 /(?=abc)+abc/BZ
11488 ------------------------------------------------------------------
11489         Bra
11490         Assert
11491         abc
11492         Ket
11493         abc
11494         Ket
11495         End
11496 ------------------------------------------------------------------
11497
11498 /(?=abc)++abc/BZ
11499 ------------------------------------------------------------------
11500         Bra
11501         Assert
11502         abc
11503         Ket
11504         abc
11505         Ket
11506         End
11507 ------------------------------------------------------------------
11508
11509 /(?=abc){0}xyz/BZ
11510 ------------------------------------------------------------------
11511         Bra
11512         Skip zero
11513         Assert
11514         abc
11515         Ket
11516         xyz
11517         Ket
11518         End
11519 ------------------------------------------------------------------
11520
11521 /(?=(a))?./BZ
11522 ------------------------------------------------------------------
11523         Bra
11524         Brazero
11525         Assert
11526         CBra 1
11527         a
11528         Ket
11529         Ket
11530         Any
11531         Ket
11532         End
11533 ------------------------------------------------------------------
11534
11535 /(?=(a))??./BZ
11536 ------------------------------------------------------------------
11537         Bra
11538         Braminzero
11539         Assert
11540         CBra 1
11541         a
11542         Ket
11543         Ket
11544         Any
11545         Ket
11546         End
11547 ------------------------------------------------------------------
11548
11549 /^(?=(a)){0}b(?1)/BZ
11550 ------------------------------------------------------------------
11551         Bra
11552         ^
11553         Skip zero
11554         Assert
11555         CBra 1
11556         a
11557         Ket
11558         Ket
11559         b
11560         Recurse
11561         Ket
11562         End
11563 ------------------------------------------------------------------
11564
11565 /(?(DEFINE)(a))?b(?1)/BZ
11566 ------------------------------------------------------------------
11567         Bra
11568         Cond
11569         Cond def
11570         CBra 1
11571         a
11572         Ket
11573         Ket
11574         b
11575         Recurse
11576         Ket
11577         End
11578 ------------------------------------------------------------------
11579
11580 /^(?=(?1))?[az]([abc])d/BZ
11581 ------------------------------------------------------------------
11582         Bra
11583         ^
11584         Brazero
11585         Assert
11586         Recurse
11587         Ket
11588         [az]
11589         CBra 1
11590         [a-c]
11591         Ket
11592         d
11593         Ket
11594         End
11595 ------------------------------------------------------------------
11596
11597 /^(?!a){0}\w+/BZ
11598 ------------------------------------------------------------------
11599         Bra
11600         ^
11601         Skip zero
11602         Assert not
11603         a
11604         Ket
11605         \w++
11606         Ket
11607         End
11608 ------------------------------------------------------------------
11609
11610 /(?<=(abc))?xyz/BZ
11611 ------------------------------------------------------------------
11612         Bra
11613         Brazero
11614         AssertB
11615         Reverse
11616         CBra 1
11617         abc
11618         Ket
11619         Ket
11620         xyz
11621         Ket
11622         End
11623 ------------------------------------------------------------------
11624
11625 /[:a[:abc]b:]/BZ
11626 ------------------------------------------------------------------
11627         Bra
11628         [:[a-c]
11629         b:]
11630         Ket
11631         End
11632 ------------------------------------------------------------------
11633
11634 /((?2))((?1))/SS
11635     abc
11636 Error -26 (nested recursion at the same subject position)
11637
11638 /((?(R2)a+|(?1)b))/SS
11639     aaaabcde
11640 Error -26 (nested recursion at the same subject position)
11641
11642 /(?(R)a*(?1)|((?R))b)/SS
11643     aaaabcde
11644 Error -26 (nested recursion at the same subject position)
11645
11646 /(a+|(?R)b)/
11647 Failed: recursive call could loop indefinitely at offset 7
11648
11649 /^(a(*:A)(d|e(*:B))z|aeq)/C
11650     adz
11651 --->adz
11652  +0 ^       ^
11653  +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11654  +2 ^       a
11655  +3 ^^      (*:A)
11656  +8 ^^      (d|e(*:B))
11657 Latest Mark: A
11658  +9 ^^      d
11659 +10 ^ ^     |
11660 +18 ^ ^     z
11661 +19 ^  ^    |
11662 +24 ^  ^    
11663  0: adz
11664  1: adz
11665  2: d
11666     aez
11667 --->aez
11668  +0 ^       ^
11669  +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11670  +2 ^       a
11671  +3 ^^      (*:A)
11672  +8 ^^      (d|e(*:B))
11673 Latest Mark: A
11674  +9 ^^      d
11675 +11 ^^      e
11676 +12 ^ ^     (*:B)
11677 +17 ^ ^     )
11678 Latest Mark: B
11679 +18 ^ ^     z
11680 +19 ^  ^    |
11681 +24 ^  ^    
11682  0: aez
11683  1: aez
11684  2: e
11685     aeqwerty
11686 --->aeqwerty
11687  +0 ^            ^
11688  +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11689  +2 ^            a
11690  +3 ^^           (*:A)
11691  +8 ^^           (d|e(*:B))
11692 Latest Mark: A
11693  +9 ^^           d
11694 +11 ^^           e
11695 +12 ^ ^          (*:B)
11696 +17 ^ ^          )
11697 Latest Mark: B
11698 +18 ^ ^          z
11699 +20 ^            a
11700 +21 ^^           e
11701 +22 ^ ^          q
11702 +23 ^  ^         )
11703 +24 ^  ^         
11704  0: aeq
11705  1: aeq
11706
11707 /.(*F)/
11708     \P\Pabc
11709 No match
11710
11711 /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11712 Capturing subpattern count = 0
11713 Max lookbehind = 1
11714 No options
11715 First char = 't'
11716 Need char = 't'
11717 Subject length lower bound = 18
11718 No starting char list
11719
11720 /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11721 Capturing subpattern count = 0
11722 Max lookbehind = 1
11723 No options
11724 No first char
11725 No need char
11726 Subject length lower bound = 8
11727 Starting chars: < o t u 
11728
11729 /a(*SKIP)c|b(*ACCEPT)|/+S!I
11730 Capturing subpattern count = 0
11731 May match empty string
11732 No options
11733 No first char
11734 No need char
11735 Subject length lower bound = -1
11736 No starting char list
11737     a
11738  0: 
11739  0+ 
11740
11741 /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11742 Capturing subpattern count = 0
11743 No options
11744 No first char
11745 No need char
11746 Subject length lower bound = -1
11747 Starting chars: a b x 
11748     ax
11749  0: x
11750
11751 'a*(*ACCEPT)b'+
11752     \N\N
11753 No match
11754     abc\N\N
11755  0: a
11756  0+ bc
11757     bbb\N\N 
11758  0: 
11759  0+ bb
11760
11761 /(*ACCEPT)a/+I
11762 Capturing subpattern count = 0
11763 No options
11764 No first char
11765 No need char
11766     bax
11767  0: 
11768  0+ bax
11769
11770 /z(*ACCEPT)a/+I
11771 Capturing subpattern count = 0
11772 No options
11773 First char = 'z'
11774 No need char
11775     baxzbx
11776  0: z
11777  0+ bx
11778
11779 /a(?:.)*?a/ims                                                                  
11780     \Mabbbbbbbbbbbbbbbbbbbbba
11781 Minimum match() limit = 65
11782 Minimum match() recursion limit = 2
11783  0: abbbbbbbbbbbbbbbbbbbbba
11784     
11785 /a(?:.(*THEN))*?a/ims
11786     \Mabbbbbbbbbbbbbbbbbbbbba
11787 Minimum match() limit = 86
11788 Minimum match() recursion limit = 45
11789  0: abbbbbbbbbbbbbbbbbbbbba
11790
11791 /a(?:.(*THEN:ABC))*?a/ims
11792     \Mabbbbbbbbbbbbbbbbbbbbba
11793 Minimum match() limit = 86
11794 Minimum match() recursion limit = 45
11795  0: abbbbbbbbbbbbbbbbbbbbba
11796
11797 /^(?>a+)(?>(z+))\w/BZ
11798 ------------------------------------------------------------------
11799         Bra
11800         ^
11801         Once_NC
11802         a++
11803         Ket
11804         Once
11805         CBra 1
11806         z++
11807         Ket
11808         Ket
11809         \w
11810         Ket
11811         End
11812 ------------------------------------------------------------------
11813     aaaazzzzb
11814  0: aaaazzzzb
11815  1: zzzz
11816     ** Failers
11817 No match
11818     aazz  
11819 No match
11820
11821 /(.)(\1|a(?2))/
11822     bab
11823  0: bab
11824  1: b
11825  2: ab
11826     
11827 /\1|(.)(?R)\1/
11828     cbbbc
11829  0: cbbbc
11830  1: c
11831     
11832 /(.)((?(1)c|a)|a(?2))/
11833     baa  
11834 No match
11835
11836 /(?P<abn>(?P=abn)xxx)/BZ
11837 ------------------------------------------------------------------
11838         Bra
11839         Once
11840         CBra 1
11841         \1
11842         xxx
11843         Ket
11844         Ket
11845         Ket
11846         End
11847 ------------------------------------------------------------------
11848
11849 /(a\1z)/BZ
11850 ------------------------------------------------------------------
11851         Bra
11852         Once
11853         CBra 1
11854         a
11855         \1
11856         z
11857         Ket
11858         Ket
11859         Ket
11860         End
11861 ------------------------------------------------------------------
11862
11863 /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11864      \Maabbccddee
11865 Minimum match() limit = 7
11866 Minimum match() recursion limit = 2
11867  0: aabbccddee
11868
11869 /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11870      \Maabbccddee
11871 Minimum match() limit = 17
11872 Minimum match() recursion limit = 16
11873  0: aabbccddee
11874  1: aa
11875  2: bb
11876  3: cc
11877  4: dd
11878  5: ee
11879
11880 /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11881      \Maabbccddee
11882 Minimum match() limit = 13
11883 Minimum match() recursion limit = 10
11884  0: aabbccddee
11885  1: aa
11886  2: cc
11887  3: ee
11888
11889 /^a\x41z/<JS>
11890     aAz
11891  0: aAz
11892     *** Failers
11893 No match
11894     ax41z
11895 No match
11896
11897 /^a[m\x41]z/<JS>
11898     aAz
11899  0: aAz
11900
11901 /^a\x1z/<JS>
11902     ax1z
11903  0: ax1z
11904
11905 /^a\u0041z/<JS>
11906     aAz
11907  0: aAz
11908     *** Failers
11909 No match
11910     au0041z
11911 No match
11912
11913 /^a[m\u0041]z/<JS>
11914     aAz
11915  0: aAz
11916
11917 /^a\u041z/<JS>
11918     au041z
11919  0: au041z
11920     *** Failers
11921 No match
11922     aAz
11923 No match
11924
11925 /^a\U0041z/<JS>
11926     aU0041z
11927  0: aU0041z
11928     *** Failers
11929 No match
11930     aAz
11931 No match
11932
11933 /(?(?=c)c|d)++Y/BZ
11934 ------------------------------------------------------------------
11935         Bra
11936         BraPos
11937         Cond
11938         Assert
11939         c
11940         Ket
11941         c
11942         Alt
11943         d
11944         Ket
11945         KetRpos
11946         Y
11947         Ket
11948         End
11949 ------------------------------------------------------------------
11950
11951 /(?(?=c)c|d)*+Y/BZ
11952 ------------------------------------------------------------------
11953         Bra
11954         Braposzero
11955         BraPos
11956         Cond
11957         Assert
11958         c
11959         Ket
11960         c
11961         Alt
11962         d
11963         Ket
11964         KetRpos
11965         Y
11966         Ket
11967         End
11968 ------------------------------------------------------------------
11969
11970 /a[\NB]c/
11971 Failed: \N is not supported in a class at offset 3
11972
11973 /a[B-\Nc]/ 
11974 Failed: invalid range in character class at offset 5
11975
11976 /a[B\Nc]/ 
11977 Failed: \N is not supported in a class at offset 4
11978
11979 /(a)(?2){0,1999}?(b)/
11980
11981 /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11982
11983 /--- This test, with something more complicated than individual letters, causes
11984 different behaviour in Perl. Perhaps it disables some optimization; no tag is
11985 passed back for the failures, whereas in PCRE there is a tag. ---/
11986     
11987 /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11988     AABC
11989  0: AB
11990  1: A
11991  2: B
11992 MK: A
11993     XXYZ 
11994  0: XXY
11995  1: <unset>
11996  2: <unset>
11997  3: X
11998  4: X
11999  5: Y
12000 MK: B
12001     ** Failers
12002 No match
12003     XAQQ  
12004 No match, mark = A
12005     XAQQXZZ  
12006 No match, mark = A
12007     AXQQQ 
12008 No match, mark = A
12009     AXXQQQ 
12010 No match, mark = B
12011
12012 /-- Perl doesn't give marks for these, though it does if the alternatives are
12013 replaced by single letters. --/
12014     
12015 /(b|q)(*:m)f|a(*:n)w/K
12016     aw 
12017  0: aw
12018 MK: n
12019     ** Failers 
12020 No match, mark = n
12021     abc
12022 No match, mark = m
12023
12024 /(q|b)(*:m)f|a(*:n)w/K
12025     aw 
12026  0: aw
12027 MK: n
12028     ** Failers 
12029 No match, mark = n
12030     abc
12031 No match, mark = m
12032
12033 /-- After a partial match, the behaviour is as for a failure. --/
12034
12035 /^a(*:X)bcde/K
12036    abc\P
12037 Partial match, mark=X: abc
12038    
12039 /-- These are here because Perl doesn't return a mark, except for the first --/
12040
12041 /(?=(*:x))(q|)/K+
12042     abc
12043  0: 
12044  0+ abc
12045  1: 
12046 MK: x
12047
12048 /(?=(*:x))((*:y)q|)/K+
12049     abc
12050  0: 
12051  0+ abc
12052  1: 
12053 MK: x
12054
12055 /(?=(*:x))(?:(*:y)q|)/K+
12056     abc
12057  0: 
12058  0+ abc
12059 MK: x
12060
12061 /(?=(*:x))(?>(*:y)q|)/K+
12062     abc
12063  0: 
12064  0+ abc
12065 MK: x
12066
12067 /(?=a(*:x))(?!a(*:y)c)/K+
12068     ab
12069  0: 
12070  0+ ab
12071 MK: x
12072
12073 /(?=a(*:x))(?=a(*:y)c|)/K+
12074     ab
12075  0: 
12076  0+ ab
12077 MK: x
12078
12079 /(..)\1/
12080     ab\P
12081 Partial match: ab
12082     aba\P
12083 Partial match: aba
12084     abab\P
12085  0: abab
12086  1: ab
12087
12088 /(..)\1/i
12089     ab\P
12090 Partial match: ab
12091     abA\P
12092 Partial match: abA
12093     aBAb\P
12094  0: aBAb
12095  1: aB
12096
12097 /(..)\1{2,}/
12098     ab\P
12099 Partial match: ab
12100     aba\P
12101 Partial match: aba
12102     abab\P
12103 Partial match: abab
12104     ababa\P
12105 Partial match: ababa
12106     ababab\P
12107  0: ababab
12108  1: ab
12109     ababab\P\P
12110 Partial match: ababab
12111     abababa\P
12112  0: ababab
12113  1: ab
12114     abababa\P\P
12115 Partial match: abababa
12116
12117 /(..)\1{2,}/i
12118     ab\P
12119 Partial match: ab
12120     aBa\P
12121 Partial match: aBa
12122     aBAb\P
12123 Partial match: aBAb
12124     AbaBA\P
12125 Partial match: AbaBA
12126     abABAb\P
12127  0: abABAb
12128  1: ab
12129     aBAbaB\P\P
12130 Partial match: aBAbaB
12131     abABabA\P
12132  0: abABab
12133  1: ab
12134     abaBABa\P\P
12135 Partial match: abaBABa
12136
12137 /(..)\1{2,}?x/i
12138     ab\P
12139 Partial match: ab
12140     abA\P
12141 Partial match: abA
12142     aBAb\P
12143 Partial match: aBAb
12144     abaBA\P
12145 Partial match: abaBA
12146     abAbaB\P
12147 Partial match: abAbaB
12148     abaBabA\P
12149 Partial match: abaBabA
12150     abAbABaBx\P
12151  0: abAbABaBx
12152  1: ab
12153
12154 /^(..)\1/
12155     aba\P
12156 Partial match: aba
12157
12158 /^(..)\1{2,3}x/
12159     aba\P
12160 Partial match: aba
12161     ababa\P
12162 Partial match: ababa
12163     ababa\P\P
12164 Partial match: ababa
12165     abababx
12166  0: abababx
12167  1: ab
12168     ababababx  
12169  0: ababababx
12170  1: ab
12171
12172 /^(..)\1{2,3}?x/
12173     aba\P
12174 Partial match: aba
12175     ababa\P
12176 Partial match: ababa
12177     ababa\P\P
12178 Partial match: ababa
12179     abababx
12180  0: abababx
12181  1: ab
12182     ababababx  
12183  0: ababababx
12184  1: ab
12185     
12186 /^(..)(\1{2,3})ab/
12187     abababab
12188  0: abababab
12189  1: ab
12190  2: abab
12191
12192 /^\R/
12193     \r\P
12194  0: \x0d
12195     \r\P\P
12196 Partial match: \x0d
12197     
12198 /^\R{2,3}x/
12199     \r\P
12200 Partial match: \x0d
12201     \r\P\P
12202 Partial match: \x0d
12203     \r\r\P 
12204 Partial match: \x0d\x0d
12205     \r\r\P\P
12206 Partial match: \x0d\x0d
12207     \r\r\r\P  
12208 Partial match: \x0d\x0d\x0d
12209     \r\r\r\P\P
12210 Partial match: \x0d\x0d\x0d
12211     \r\rx
12212  0: \x0d\x0dx
12213     \r\r\rx    
12214  0: \x0d\x0d\x0dx
12215
12216 /^\R{2,3}?x/
12217     \r\P
12218 Partial match: \x0d
12219     \r\P\P
12220 Partial match: \x0d
12221     \r\r\P 
12222 Partial match: \x0d\x0d
12223     \r\r\P\P
12224 Partial match: \x0d\x0d
12225     \r\r\r\P  
12226 Partial match: \x0d\x0d\x0d
12227     \r\r\r\P\P
12228 Partial match: \x0d\x0d\x0d
12229     \r\rx
12230  0: \x0d\x0dx
12231     \r\r\rx    
12232  0: \x0d\x0d\x0dx
12233     
12234 /^\R?x/
12235     \r\P
12236 Partial match: \x0d
12237     \r\P\P 
12238 Partial match: \x0d
12239     x
12240  0: x
12241     \rx  
12242  0: \x0dx
12243
12244 /^\R+x/
12245     \r\P
12246 Partial match: \x0d
12247     \r\P\P 
12248 Partial match: \x0d
12249     \r\n\P
12250 Partial match: \x0d\x0a
12251     \r\n\P\P  
12252 Partial match: \x0d\x0a
12253     \rx  
12254  0: \x0dx
12255
12256 /^a$/<CRLF>
12257     a\r\P
12258 Partial match: a\x0d
12259     a\r\P\P 
12260 Partial match: a\x0d
12261
12262 /^a$/m<CRLF>
12263     a\r\P
12264 Partial match: a\x0d
12265     a\r\P\P 
12266 Partial match: a\x0d
12267
12268 /^(a$|a\r)/<CRLF>
12269     a\r\P
12270  0: a\x0d
12271  1: a\x0d
12272     a\r\P\P 
12273 Partial match: a\x0d
12274
12275 /^(a$|a\r)/m<CRLF>
12276     a\r\P
12277  0: a\x0d
12278  1: a\x0d
12279     a\r\P\P 
12280 Partial match: a\x0d
12281
12282 /./<CRLF>
12283     \r\P
12284  0: \x0d
12285     \r\P\P 
12286 Partial match: \x0d
12287   
12288 /.{2,3}/<CRLF>
12289     \r\P 
12290 Partial match: \x0d
12291     \r\P\P
12292 Partial match: \x0d
12293     \r\r\P
12294  0: \x0d\x0d
12295     \r\r\P\P
12296 Partial match: \x0d\x0d
12297     \r\r\r\P
12298  0: \x0d\x0d\x0d
12299     \r\r\r\P\P     
12300 Partial match: \x0d\x0d\x0d
12301
12302 /.{2,3}?/<CRLF>
12303     \r\P 
12304 Partial match: \x0d
12305     \r\P\P
12306 Partial match: \x0d
12307     \r\r\P
12308  0: \x0d\x0d
12309     \r\r\P\P
12310 Partial match: \x0d\x0d
12311     \r\r\r\P
12312  0: \x0d\x0d
12313     \r\r\r\P\P     
12314  0: \x0d\x0d
12315
12316 "AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12317     ABCDGHI\O03
12318 Matched, but too many substrings
12319  0: ABCD
12320     
12321 /-- These are all run as real matches in test 1; here we are just checking the
12322 settings of the anchored and startline bits. --/ 
12323
12324 /(?>.*?a)(?<=ba)/I
12325 Capturing subpattern count = 0
12326 Max lookbehind = 2
12327 No options
12328 No first char
12329 Need char = 'a'
12330
12331 /(?:.*?a)(?<=ba)/I
12332 Capturing subpattern count = 0
12333 Max lookbehind = 2
12334 No options
12335 First char at start or follows newline
12336 Need char = 'a'
12337
12338 /.*?a(*PRUNE)b/I
12339 Capturing subpattern count = 0
12340 No options
12341 No first char
12342 Need char = 'b'
12343
12344 /.*?a(*PRUNE)b/sI
12345 Capturing subpattern count = 0
12346 Options: dotall
12347 No first char
12348 Need char = 'b'
12349
12350 /^a(*PRUNE)b/sI
12351 Capturing subpattern count = 0
12352 Options: anchored dotall
12353 No first char
12354 No need char
12355
12356 /.*?a(*SKIP)b/I
12357 Capturing subpattern count = 0
12358 No options
12359 No first char
12360 Need char = 'b'
12361
12362 /(?>.*?a)b/sI
12363 Capturing subpattern count = 0
12364 Options: dotall
12365 No first char
12366 Need char = 'b'
12367
12368 /(?>.*?a)b/I
12369 Capturing subpattern count = 0
12370 No options
12371 No first char
12372 Need char = 'b'
12373
12374 /(?>^a)b/sI
12375 Capturing subpattern count = 0
12376 Options: anchored dotall
12377 No first char
12378 No need char
12379
12380 /(?>.*?)(?<=(abcd)|(wxyz))/I
12381 Capturing subpattern count = 2
12382 Max lookbehind = 4
12383 May match empty string
12384 No options
12385 No first char
12386 No need char
12387
12388 /(?>.*)(?<=(abcd)|(wxyz))/I
12389 Capturing subpattern count = 2
12390 Max lookbehind = 4
12391 May match empty string
12392 No options
12393 No first char
12394 No need char
12395
12396 "(?>.*)foo"I
12397 Capturing subpattern count = 0
12398 No options
12399 No first char
12400 Need char = 'o'
12401
12402 "(?>.*?)foo"I
12403 Capturing subpattern count = 0
12404 No options
12405 No first char
12406 Need char = 'o'
12407
12408 /(?>^abc)/mI
12409 Capturing subpattern count = 0
12410 Options: multiline
12411 First char at start or follows newline
12412 Need char = 'c'
12413
12414 /(?>.*abc)/mI
12415 Capturing subpattern count = 0
12416 Options: multiline
12417 No first char
12418 Need char = 'c'
12419
12420 /(?:.*abc)/mI
12421 Capturing subpattern count = 0
12422 Options: multiline
12423 First char at start or follows newline
12424 Need char = 'c'
12425
12426 /-- Check PCRE_STUDY_EXTRA_NEEDED --/
12427
12428 /.?/S-I
12429 Capturing subpattern count = 0
12430 May match empty string
12431 No options
12432 No first char
12433 No need char
12434 Study returned NULL
12435
12436 /.?/S!I
12437 Capturing subpattern count = 0
12438 May match empty string
12439 No options
12440 No first char
12441 No need char
12442 Subject length lower bound = -1
12443 No starting char list
12444
12445 /(?:(a)+(?C1)bb|aa(?C2)b)/
12446     aab\C+
12447 Callout 1: last capture = 1
12448  0: <unset>
12449  1: a
12450 --->aab
12451     ^ ^     b
12452 Callout 1: last capture = 1
12453  0: <unset>
12454  1: a
12455 --->aab
12456     ^^      b
12457 Callout 2: last capture = -1
12458  0: <unset>
12459 --->aab
12460     ^ ^     b
12461  0: aab
12462    
12463 /(?:(a)++(?C1)bb|aa(?C2)b)/
12464     aab\C+ 
12465 Callout 1: last capture = 1
12466  0: <unset>
12467  1: a
12468 --->aab
12469     ^ ^     b
12470 Callout 2: last capture = -1
12471  0: <unset>
12472 --->aab
12473     ^ ^     b
12474  0: aab
12475     
12476 /(?:(?>(a))(?C1)bb|aa(?C2)b)/
12477     aab\C+ 
12478 Callout 1: last capture = 1
12479  0: <unset>
12480  1: a
12481 --->aab
12482     ^^      b
12483 Callout 2: last capture = -1
12484  0: <unset>
12485 --->aab
12486     ^ ^     b
12487  0: aab
12488
12489 /(?:(?1)(?C1)x|ab(?C2))((a)){0}/                                                
12490     aab\C+ 
12491 Callout 1: last capture = -1
12492  0: <unset>
12493 --->aab
12494     ^^      x
12495 Callout 1: last capture = -1
12496  0: <unset>
12497 --->aab
12498      ^^     x
12499 Callout 2: last capture = -1
12500  0: <unset>
12501 --->aab
12502      ^ ^    )
12503  0: ab
12504
12505 /(?1)(?C1)((a)(?C2)){0}/   
12506     aab\C+ 
12507 Callout 2: last capture = 2
12508  0: <unset>
12509  1: <unset>
12510  2: a
12511 --->aab
12512     ^^      )
12513 Callout 1: last capture = -1
12514  0: <unset>
12515 --->aab
12516     ^^      ((a)(?C2)){0}
12517  0: a
12518
12519 /(?:(a)+(?C1)bb|aa(?C2)b)++/
12520     aab\C+
12521 Callout 1: last capture = 1
12522  0: <unset>
12523  1: a
12524 --->aab
12525     ^ ^     b
12526 Callout 1: last capture = 1
12527  0: <unset>
12528  1: a
12529 --->aab
12530     ^^      b
12531 Callout 2: last capture = -1
12532  0: <unset>
12533 --->aab
12534     ^ ^     b
12535  0: aab
12536     aab\C+\O2
12537 Callout 1: last capture = 1
12538  0: <unset>
12539 --->aab
12540     ^ ^     b
12541 Callout 1: last capture = 1
12542  0: <unset>
12543 --->aab
12544     ^^      b
12545 Callout 2: last capture = -1
12546  0: <unset>
12547 --->aab
12548     ^ ^     b
12549  0: aab
12550
12551 /(ab)x|ab/
12552     ab\O3
12553  0: ab
12554     ab\O2 
12555  0: ab
12556   
12557 /(ab)/
12558     ab\O3
12559 Matched, but too many substrings
12560  0: ab
12561     ab\O2 
12562 Matched, but too many substrings
12563  0: ab
12564     
12565 /(?<=123)(*MARK:xx)abc/K
12566     xxxx123a\P\P
12567 Partial match at offset 7, mark=xx: 123a
12568     xxxx123a\P
12569 Partial match at offset 7, mark=xx: 123a
12570     
12571 /123\Kabc/
12572     xxxx123a\P\P
12573 Partial match: 123a
12574     xxxx123a\P
12575 Partial match: 123a
12576
12577 /^(?(?=a)aa|bb)/C
12578     bb
12579 --->bb
12580  +0 ^      ^
12581  +1 ^      (?(?=a)aa|bb)
12582  +3 ^      (?=a)
12583  +6 ^      a
12584 +11 ^      b
12585 +12 ^^     b
12586 +13 ^ ^    )
12587 +14 ^ ^    
12588  0: bb
12589
12590 /(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
12591     bb
12592 --->bb
12593   1 ^      ^
12594   2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
12595  99 ^      (?=(?C3)a(?C4))
12596   3 ^      a
12597   8 ^      b
12598   9 ^^     b
12599  10 ^ ^    )
12600  11 ^ ^    
12601  0: bb
12602
12603 /-- Perl seems to have a bug with this one --/
12604
12605 /aaaaa(*COMMIT)(*PRUNE)b|a+c/
12606     aaaaaac
12607  0: aaaac
12608     
12609 /-- Here are some that Perl treats differently because of the way it handles
12610 backtracking verbs. --/
12611
12612  /(?!a(*COMMIT)b)ac|ad/
12613      ac
12614  0: ac
12615      ad 
12616  0: ad
12617
12618 /^(?!a(*THEN)b|ac)../
12619      ac
12620 No match
12621      ad 
12622  0: ad
12623
12624 /^(?=a(*THEN)b|ac)/
12625     ac
12626  0: 
12627     
12628 /\A.*?(?:a|b(*THEN)c)/
12629     ba
12630  0: ba
12631
12632 /\A.*?(?:a|b(*THEN)c)++/
12633     ba
12634  0: ba
12635
12636 /\A.*?(?:a|b(*THEN)c|d)/
12637     ba
12638  0: ba
12639
12640 /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
12641     aac 
12642  0: aac
12643
12644 /\A.*?(a|b(*THEN)c)/
12645     ba
12646  0: ba
12647  1: a
12648
12649 /^(A(*THEN)B|A(*THEN)D)/
12650     AD           
12651  0: AD
12652  1: AD
12653     
12654 /(?!b(*THEN)a)bn|bnn/
12655     bnn
12656  0: bn
12657
12658 /(?(?=b(*SKIP)a)bn|bnn)/
12659     bnn
12660 No match
12661
12662 /(?=b(*THEN)a|)bn|bnn/
12663     bnn
12664  0: bn
12665
12666 /-------------------------/ 
12667
12668 /(*LIMIT_MATCH=12bc)abc/
12669 Failed: (*VERB) not recognized or malformed at offset 7
12670
12671 /(*LIMIT_MATCH=4294967290)abc/
12672 Failed: (*VERB) not recognized or malformed at offset 7
12673
12674 /(*LIMIT_RECURSION=4294967280)abc/I
12675 Capturing subpattern count = 0
12676 Recursion limit = 4294967280
12677 No options
12678 First char = 'a'
12679 Need char = 'c'
12680
12681 /(a+)*zz/
12682     aaaaaaaaaaaaaz
12683 No match
12684     aaaaaaaaaaaaaz\q3000
12685 Error -8 (match limit exceeded)
12686
12687 /(a+)*zz/S-
12688     aaaaaaaaaaaaaz\Q10 
12689 Error -21 (recursion limit exceeded)
12690
12691 /(*LIMIT_MATCH=3000)(a+)*zz/I
12692 Capturing subpattern count = 1
12693 Match limit = 3000
12694 No options
12695 No first char
12696 Need char = 'z'
12697     aaaaaaaaaaaaaz
12698 Error -8 (match limit exceeded)
12699     aaaaaaaaaaaaaz\q60000
12700 Error -8 (match limit exceeded)
12701
12702 /(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
12703 Capturing subpattern count = 1
12704 Match limit = 3000
12705 No options
12706 No first char
12707 Need char = 'z'
12708     aaaaaaaaaaaaaz
12709 Error -8 (match limit exceeded)
12710
12711 /(*LIMIT_MATCH=60000)(a+)*zz/I
12712 Capturing subpattern count = 1
12713 Match limit = 60000
12714 No options
12715 No first char
12716 Need char = 'z'
12717     aaaaaaaaaaaaaz
12718 No match
12719     aaaaaaaaaaaaaz\q3000
12720 Error -8 (match limit exceeded)
12721
12722 /(*LIMIT_RECURSION=10)(a+)*zz/IS-
12723 Capturing subpattern count = 1
12724 Recursion limit = 10
12725 No options
12726 No first char
12727 Need char = 'z'
12728 Subject length lower bound = 2
12729 Starting chars: a z 
12730     aaaaaaaaaaaaaz
12731 Error -21 (recursion limit exceeded)
12732     aaaaaaaaaaaaaz\Q1000
12733 Error -21 (recursion limit exceeded)
12734
12735 /(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12736 Capturing subpattern count = 1
12737 Recursion limit = 10
12738 No options
12739 No first char
12740 Need char = 'z'
12741 Subject length lower bound = 2
12742 Starting chars: a z 
12743     aaaaaaaaaaaaaz
12744 Error -21 (recursion limit exceeded)
12745
12746 /(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12747 Capturing subpattern count = 1
12748 Recursion limit = 1000
12749 No options
12750 No first char
12751 Need char = 'z'
12752 Subject length lower bound = 2
12753 Starting chars: a z 
12754     aaaaaaaaaaaaaz
12755 No match
12756     aaaaaaaaaaaaaz\Q10
12757 Error -21 (recursion limit exceeded)
12758
12759 /-- This test causes a segfault with Perl 5.18.0 --/
12760
12761 /^(?=(a)){0}b(?1)/
12762     backgammon
12763  0: ba
12764
12765 /(?|(?<n>f)|(?<n>b))/JI
12766 Capturing subpattern count = 1
12767 Named capturing subpatterns:
12768   n   1
12769 Options: dupnames
12770 No first char
12771 No need char
12772
12773 /(?<a>abc)(?<a>z)\k<a>()/JDZS
12774 ------------------------------------------------------------------
12775         Bra
12776         CBra 1
12777         abc
12778         Ket
12779         CBra 2
12780         z
12781         Ket
12782         \k<a>2
12783         CBra 3
12784         Ket
12785         Ket
12786         End
12787 ------------------------------------------------------------------
12788 Capturing subpattern count = 3
12789 Max back reference = 2
12790 Named capturing subpatterns:
12791   a   1
12792   a   2
12793 Options: dupnames
12794 First char = 'a'
12795 Need char = 'z'
12796 Subject length lower bound = 5
12797 No starting char list
12798
12799 /a*[bcd]/BZ
12800 ------------------------------------------------------------------
12801         Bra
12802         a*+
12803         [b-d]
12804         Ket
12805         End
12806 ------------------------------------------------------------------
12807
12808 /[bcd]*a/BZ
12809 ------------------------------------------------------------------
12810         Bra
12811         [b-d]*+
12812         a
12813         Ket
12814         End
12815 ------------------------------------------------------------------
12816
12817 /-- A complete set of tests for auto-possessification of character types --/
12818
12819 /\D+\D \D+\d \D+\S \D+\s \D+\W \D+\w \D+. \D+\C \D+\R \D+\H \D+\h \D+\V \D+\v \D+\Z \D+\z \D+$/BZx
12820 ------------------------------------------------------------------
12821         Bra
12822         \D+
12823         \D
12824         \D++
12825         \d
12826         \D+
12827         \S
12828         \D+
12829         \s
12830         \D+
12831         \W
12832         \D+
12833         \w
12834         \D+
12835         Any
12836         \D+
12837         AllAny
12838         \D+
12839         \R
12840         \D+
12841         \H
12842         \D+
12843         \h
12844         \D+
12845         \V
12846         \D+
12847         \v
12848         \D+
12849         \Z
12850         \D++
12851         \z
12852         \D+
12853         $
12854         Ket
12855         End
12856 ------------------------------------------------------------------
12857
12858 /\d+\D \d+\d \d+\S \d+\s \d+\W \d+\w \d+. \d+\C \d+\R \d+\H \d+\h \d+\V \d+\v \d+\Z \d+\z \d+$/BZx
12859 ------------------------------------------------------------------
12860         Bra
12861         \d++
12862         \D
12863         \d+
12864         \d
12865         \d+
12866         \S
12867         \d++
12868         \s
12869         \d++
12870         \W
12871         \d+
12872         \w
12873         \d+
12874         Any
12875         \d+
12876         AllAny
12877         \d++
12878         \R
12879         \d+
12880         \H
12881         \d++
12882         \h
12883         \d+
12884         \V
12885         \d++
12886         \v
12887         \d++
12888         \Z
12889         \d++
12890         \z
12891         \d++
12892         $
12893         Ket
12894         End
12895 ------------------------------------------------------------------
12896
12897 /\S+\D \S+\d \S+\S \S+\s \S+\W \S+\w \S+. \S+\C \S+\R \S+\H \S+\h \S+\V \S+\v \S+\Z \S+\z \S+$/BZx
12898 ------------------------------------------------------------------
12899         Bra
12900         \S+
12901         \D
12902         \S+
12903         \d
12904         \S+
12905         \S
12906         \S++
12907         \s
12908         \S+
12909         \W
12910         \S+
12911         \w
12912         \S+
12913         Any
12914         \S+
12915         AllAny
12916         \S++
12917         \R
12918         \S+
12919         \H
12920         \S++
12921         \h
12922         \S+
12923         \V
12924         \S++
12925         \v
12926         \S++
12927         \Z
12928         \S++
12929         \z
12930         \S++
12931         $
12932         Ket
12933         End
12934 ------------------------------------------------------------------
12935
12936 /\s+\D \s+\d \s+\S \s+\s \s+\W \s+\w \s+. \s+\C \s+\R \s+\H \s+\h \s+\V \s+\v \s+\Z \s+\z \s+$/BZx
12937 ------------------------------------------------------------------
12938         Bra
12939         \s+
12940         \D
12941         \s++
12942         \d
12943         \s++
12944         \S
12945         \s+
12946         \s
12947         \s+
12948         \W
12949         \s++
12950         \w
12951         \s+
12952         Any
12953         \s+
12954         AllAny
12955         \s+
12956         \R
12957         \s+
12958         \H
12959         \s+
12960         \h
12961         \s+
12962         \V
12963         \s+
12964         \v
12965         \s+
12966         \Z
12967         \s++
12968         \z
12969         \s+
12970         $
12971         Ket
12972         End
12973 ------------------------------------------------------------------
12974
12975 /\W+\D \W+\d \W+\S \W+\s \W+\W \W+\w \W+. \W+\C \W+\R \W+\H \W+\h \W+\V \W+\v \W+\Z \W+\z \W+$/BZx
12976 ------------------------------------------------------------------
12977         Bra
12978         \W+
12979         \D
12980         \W++
12981         \d
12982         \W+
12983         \S
12984         \W+
12985         \s
12986         \W+
12987         \W
12988         \W++
12989         \w
12990         \W+
12991         Any
12992         \W+
12993         AllAny
12994         \W+
12995         \R
12996         \W+
12997         \H
12998         \W+
12999         \h
13000         \W+
13001         \V
13002         \W+
13003         \v
13004         \W+
13005         \Z
13006         \W++
13007         \z
13008         \W+
13009         $
13010         Ket
13011         End
13012 ------------------------------------------------------------------
13013
13014 /\w+\D \w+\d \w+\S \w+\s \w+\W \w+\w \w+. \w+\C \w+\R \w+\H \w+\h \w+\V \w+\v \w+\Z \w+\z \w+$/BZx
13015 ------------------------------------------------------------------
13016         Bra
13017         \w+
13018         \D
13019         \w+
13020         \d
13021         \w+
13022         \S
13023         \w++
13024         \s
13025         \w++
13026         \W
13027         \w+
13028         \w
13029         \w+
13030         Any
13031         \w+
13032         AllAny
13033         \w++
13034         \R
13035         \w+
13036         \H
13037         \w++
13038         \h
13039         \w+
13040         \V
13041         \w++
13042         \v
13043         \w++
13044         \Z
13045         \w++
13046         \z
13047         \w++
13048         $
13049         Ket
13050         End
13051 ------------------------------------------------------------------
13052
13053 /\C+\D \C+\d \C+\S \C+\s \C+\W \C+\w \C+. \C+\C \C+\R \C+\H \C+\h \C+\V \C+\v \C+\Z \C+\z \C+$/BZx
13054 ------------------------------------------------------------------
13055         Bra
13056         AllAny+
13057         \D
13058         AllAny+
13059         \d
13060         AllAny+
13061         \S
13062         AllAny+
13063         \s
13064         AllAny+
13065         \W
13066         AllAny+
13067         \w
13068         AllAny+
13069         Any
13070         AllAny+
13071         AllAny
13072         AllAny+
13073         \R
13074         AllAny+
13075         \H
13076         AllAny+
13077         \h
13078         AllAny+
13079         \V
13080         AllAny+
13081         \v
13082         AllAny+
13083         \Z
13084         AllAny++
13085         \z
13086         AllAny+
13087         $
13088         Ket
13089         End
13090 ------------------------------------------------------------------
13091
13092 /\R+\D \R+\d \R+\S \R+\s \R+\W \R+\w \R+. \R+\C \R+\R \R+\H \R+\h \R+\V \R+\v \R+\Z \R+\z \R+$/BZx
13093 ------------------------------------------------------------------
13094         Bra
13095         \R+
13096         \D
13097         \R++
13098         \d
13099         \R+
13100         \S
13101         \R++
13102         \s
13103         \R+
13104         \W
13105         \R++
13106         \w
13107         \R++
13108         Any
13109         \R+
13110         AllAny
13111         \R+
13112         \R
13113         \R+
13114         \H
13115         \R++
13116         \h
13117         \R+
13118         \V
13119         \R+
13120         \v
13121         \R+
13122         \Z
13123         \R++
13124         \z
13125         \R+
13126         $
13127         Ket
13128         End
13129 ------------------------------------------------------------------
13130
13131 /\H+\D \H+\d \H+\S \H+\s \H+\W \H+\w \H+. \H+\C \H+\R \H+\H \H+\h \H+\V \H+\v \H+\Z \H+\z \H+$/BZx
13132 ------------------------------------------------------------------
13133         Bra
13134         \H+
13135         \D
13136         \H+
13137         \d
13138         \H+
13139         \S
13140         \H+
13141         \s
13142         \H+
13143         \W
13144         \H+
13145         \w
13146         \H+
13147         Any
13148         \H+
13149         AllAny
13150         \H+
13151         \R
13152         \H+
13153         \H
13154         \H++
13155         \h
13156         \H+
13157         \V
13158         \H+
13159         \v
13160         \H+
13161         \Z
13162         \H++
13163         \z
13164         \H+
13165         $
13166         Ket
13167         End
13168 ------------------------------------------------------------------
13169
13170 /\h+\D \h+\d \h+\S \h+\s \h+\W \h+\w \h+. \h+\C \h+\R \h+\H \h+\h \h+\V \h+\v \h+\Z \h+\z \h+$/BZx
13171 ------------------------------------------------------------------
13172         Bra
13173         \h+
13174         \D
13175         \h++
13176         \d
13177         \h++
13178         \S
13179         \h+
13180         \s
13181         \h+
13182         \W
13183         \h++
13184         \w
13185         \h+
13186         Any
13187         \h+
13188         AllAny
13189         \h++
13190         \R
13191         \h++
13192         \H
13193         \h+
13194         \h
13195         \h+
13196         \V
13197         \h++
13198         \v
13199         \h+
13200         \Z
13201         \h++
13202         \z
13203         \h+
13204         $
13205         Ket
13206         End
13207 ------------------------------------------------------------------
13208
13209 /\V+\D \V+\d \V+\S \V+\s \V+\W \V+\w \V+. \V+\C \V+\R \V+\H \V+\h \V+\V \V+\v \V+\Z \V+\z \V+$/BZx
13210 ------------------------------------------------------------------
13211         Bra
13212         \V+
13213         \D
13214         \V+
13215         \d
13216         \V+
13217         \S
13218         \V+
13219         \s
13220         \V+
13221         \W
13222         \V+
13223         \w
13224         \V+
13225         Any
13226         \V+
13227         AllAny
13228         \V++
13229         \R
13230         \V+
13231         \H
13232         \V+
13233         \h
13234         \V+
13235         \V
13236         \V++
13237         \v
13238         \V+
13239         \Z
13240         \V++
13241         \z
13242         \V+
13243         $
13244         Ket
13245         End
13246 ------------------------------------------------------------------
13247
13248 /\v+\D \v+\d \v+\S \v+\s \v+\W \v+\w \v+. \v+\C \v+\R \v+\H \v+\h \v+\V \v+\v \v+\Z \v+\z \v+$/BZx
13249 ------------------------------------------------------------------
13250         Bra
13251         \v+
13252         \D
13253         \v++
13254         \d
13255         \v++
13256         \S
13257         \v+
13258         \s
13259         \v+
13260         \W
13261         \v++
13262         \w
13263         \v+
13264         Any
13265         \v+
13266         AllAny
13267         \v+
13268         \R
13269         \v+
13270         \H
13271         \v++
13272         \h
13273         \v++
13274         \V
13275         \v+
13276         \v
13277         \v+
13278         \Z
13279         \v++
13280         \z
13281         \v+
13282         $
13283         Ket
13284         End
13285 ------------------------------------------------------------------
13286
13287 / a+\D  a+\d  a+\S  a+\s  a+\W  a+\w  a+.  a+\C  a+\R  a+\H  a+\h  a+\V  a+\v  a+\Z  a+\z  a+$/BZx
13288 ------------------------------------------------------------------
13289         Bra
13290         a+
13291         \D
13292         a++
13293         \d
13294         a+
13295         \S
13296         a++
13297         \s
13298         a++
13299         \W
13300         a+
13301         \w
13302         a+
13303         Any
13304         a+
13305         AllAny
13306         a++
13307         \R
13308         a+
13309         \H
13310         a++
13311         \h
13312         a+
13313         \V
13314         a++
13315         \v
13316         a++
13317         \Z
13318         a++
13319         \z
13320         a++
13321         $
13322         Ket
13323         End
13324 ------------------------------------------------------------------
13325
13326 /\n+\D \n+\d \n+\S \n+\s \n+\W \n+\w \n+. \n+\C \n+\R \n+\H \n+\h \n+\V \n+\v \n+\Z \n+\z \n+$/BZx
13327 ------------------------------------------------------------------
13328         Bra
13329         \x0a+
13330         \D
13331         \x0a++
13332         \d
13333         \x0a++
13334         \S
13335         \x0a+
13336         \s
13337         \x0a+
13338         \W
13339         \x0a++
13340         \w
13341         \x0a+
13342         Any
13343         \x0a+
13344         AllAny
13345         \x0a+
13346         \R
13347         \x0a+
13348         \H
13349         \x0a++
13350         \h
13351         \x0a++
13352         \V
13353         \x0a+
13354         \v
13355         \x0a+
13356         \Z
13357         \x0a++
13358         \z
13359         \x0a+
13360         $
13361         Ket
13362         End
13363 ------------------------------------------------------------------
13364
13365 / .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZx
13366 ------------------------------------------------------------------
13367         Bra
13368         Any+
13369         \D
13370         Any+
13371         \d
13372         Any+
13373         \S
13374         Any+
13375         \s
13376         Any+
13377         \W
13378         Any+
13379         \w
13380         Any+
13381         Any
13382         Any+
13383         AllAny
13384         Any++
13385         \R
13386         Any+
13387         \H
13388         Any+
13389         \h
13390         Any+
13391         \V
13392         Any+
13393         \v
13394         Any+
13395         \Z
13396         Any++
13397         \z
13398         Any+
13399         $
13400         Ket
13401         End
13402 ------------------------------------------------------------------
13403
13404 / .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZxs
13405 ------------------------------------------------------------------
13406         Bra
13407         AllAny+
13408         \D
13409         AllAny+
13410         \d
13411         AllAny+
13412         \S
13413         AllAny+
13414         \s
13415         AllAny+
13416         \W
13417         AllAny+
13418         \w
13419         AllAny+
13420         AllAny
13421         AllAny+
13422         AllAny
13423         AllAny+
13424         \R
13425         AllAny+
13426         \H
13427         AllAny+
13428         \h
13429         AllAny+
13430         \V
13431         AllAny+
13432         \v
13433         AllAny+
13434         \Z
13435         AllAny++
13436         \z
13437         AllAny+
13438         $
13439         Ket
13440         End
13441 ------------------------------------------------------------------
13442
13443 /\D+$  \d+$  \S+$  \s+$  \W+$  \w+$  \C+$  \R+$  \H+$  \h+$  \V+$  \v+$   a+$  \n+$   .+$  .+$/BZxm
13444 ------------------------------------------------------------------
13445         Bra
13446         \D+
13447      /m $
13448         \d++
13449      /m $
13450         \S++
13451      /m $
13452         \s+
13453      /m $
13454         \W+
13455      /m $
13456         \w++
13457      /m $
13458         AllAny+
13459      /m $
13460         \R+
13461      /m $
13462         \H+
13463      /m $
13464         \h+
13465      /m $
13466         \V+
13467      /m $
13468         \v+
13469      /m $
13470         a+
13471      /m $
13472         \x0a+
13473      /m $
13474         Any+
13475      /m $
13476         Any+
13477      /m $
13478         Ket
13479         End
13480 ------------------------------------------------------------------
13481
13482 /(?=a+)a(a+)++a/BZ
13483 ------------------------------------------------------------------
13484         Bra
13485         Assert
13486         a++
13487         Ket
13488         a
13489         CBraPos 1
13490         a++
13491         KetRpos
13492         a
13493         Ket
13494         End
13495 ------------------------------------------------------------------
13496
13497 /a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ
13498 ------------------------------------------------------------------
13499         Bra
13500         a++
13501         CBra 1
13502         bb
13503         Alt
13504         cc
13505         Ket
13506         a++
13507         Bra
13508         bb
13509         Alt
13510         cc
13511         Ket
13512         a++
13513         Once_NC
13514         bb
13515         Alt
13516         cc
13517         Ket
13518         a++
13519         Bra
13520         bb
13521         Alt
13522         cc
13523         KetRmax
13524         a+
13525         CBra 2
13526         aa
13527         Ket
13528         a+
13529         Bra
13530         bb
13531         Alt
13532         aa
13533         Ket
13534         Ket
13535         End
13536 ------------------------------------------------------------------
13537
13538 /a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ
13539 ------------------------------------------------------------------
13540         Bra
13541         a++
13542         Brazero
13543         CBra 1
13544         bb
13545         Alt
13546         cc
13547         Ket
13548         #
13549         a++
13550         Braminzero
13551         Bra
13552         bb
13553         Alt
13554         cc
13555         Ket
13556         #
13557         a++
13558         Once
13559         Brazero
13560         Bra
13561         bb
13562         Alt
13563         cc
13564         Ket
13565         Ket
13566         #
13567         a++
13568         Brazero
13569         Bra
13570         bb
13571         Alt
13572         cc
13573         KetRmax
13574         #
13575         a+
13576         Brazero
13577         CBra 2
13578         bb
13579         Alt
13580         cc
13581         Ket
13582         a#
13583         a+
13584         Brazero
13585         Bra
13586         aa
13587         Ket
13588         Ket
13589         End
13590 ------------------------------------------------------------------
13591
13592 /a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ
13593 ------------------------------------------------------------------
13594         Bra
13595         a+
13596         Brazero
13597         Bra
13598         bb
13599         Ket
13600         a#
13601         a++
13602         Bra
13603         Alt
13604         Alt
13605         Alt
13606         Ket
13607         #
13608         a+
13609         Bra
13610         Alt
13611         b
13612         Ket
13613         a#
13614         a+
13615         Brazero
13616         Bra
13617         Alt
13618         Alt
13619         Alt
13620         Ket
13621         a
13622         Ket
13623         End
13624 ------------------------------------------------------------------
13625
13626 /[ab]*/BZ
13627 ------------------------------------------------------------------
13628         Bra
13629         [ab]*+
13630         Ket
13631         End
13632 ------------------------------------------------------------------
13633     aaaa
13634  0: aaaa
13635
13636 /[ab]*?/BZ
13637 ------------------------------------------------------------------
13638         Bra
13639         [ab]*?
13640         Ket
13641         End
13642 ------------------------------------------------------------------
13643     aaaa
13644  0: 
13645
13646 /[ab]?/BZ
13647 ------------------------------------------------------------------
13648         Bra
13649         [ab]?+
13650         Ket
13651         End
13652 ------------------------------------------------------------------
13653     aaaa
13654  0: a
13655
13656 /[ab]??/BZ
13657 ------------------------------------------------------------------
13658         Bra
13659         [ab]??
13660         Ket
13661         End
13662 ------------------------------------------------------------------
13663     aaaa
13664  0: 
13665
13666 /[ab]+/BZ
13667 ------------------------------------------------------------------
13668         Bra
13669         [ab]++
13670         Ket
13671         End
13672 ------------------------------------------------------------------
13673     aaaa
13674  0: aaaa
13675
13676 /[ab]+?/BZ
13677 ------------------------------------------------------------------
13678         Bra
13679         [ab]+?
13680         Ket
13681         End
13682 ------------------------------------------------------------------
13683     aaaa
13684  0: a
13685
13686 /[ab]{2,3}/BZ
13687 ------------------------------------------------------------------
13688         Bra
13689         [ab]{2,3}+
13690         Ket
13691         End
13692 ------------------------------------------------------------------
13693     aaaa
13694  0: aaa
13695
13696 /[ab]{2,3}?/BZ
13697 ------------------------------------------------------------------
13698         Bra
13699         [ab]{2,3}?
13700         Ket
13701         End
13702 ------------------------------------------------------------------
13703     aaaa
13704  0: aa
13705
13706 /[ab]{2,}/BZ
13707 ------------------------------------------------------------------
13708         Bra
13709         [ab]{2,}+
13710         Ket
13711         End
13712 ------------------------------------------------------------------
13713     aaaa
13714  0: aaaa
13715
13716 /[ab]{2,}?/BZ
13717 ------------------------------------------------------------------
13718         Bra
13719         [ab]{2,}?
13720         Ket
13721         End
13722 ------------------------------------------------------------------
13723     aaaa
13724  0: aa
13725
13726 /\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ
13727 ------------------------------------------------------------------
13728         Bra
13729         \d++
13730         \s{0,5}+
13731         =
13732         \s*+
13733         \S?
13734         =
13735         \w{0,4}+
13736         \W*+
13737         Ket
13738         End
13739 ------------------------------------------------------------------
13740
13741 /[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ
13742 ------------------------------------------------------------------
13743         Bra
13744         [a-d]{5,12}+
13745         [0-9e-z]*+
13746         #
13747         [\x00-`{-\xff] (neg)++
13748         [b-y]*+
13749         a
13750         [2-7]?+
13751         [\x00-/:-`{-\xff] (neg)++
13752         Ket
13753         End
13754 ------------------------------------------------------------------
13755
13756 /[a-z]*\s#[ \t]?\S#[a-c]*\S#[C-G]+?\d#[4-8]*\D#[4-9,]*\D#[!$]{0,5}\w#[M-Xf-l]+\W#[a-c,]?\W/BZ
13757 ------------------------------------------------------------------
13758         Bra
13759         [a-z]*+
13760         \s
13761         #
13762         [\x09 ]?+
13763         \S
13764         #
13765         [a-c]*
13766         \S
13767         #
13768         [C-G]++
13769         \d
13770         #
13771         [4-8]*+
13772         \D
13773         #
13774         [,4-9]*
13775         \D
13776         #
13777         [!$]{0,5}+
13778         \w
13779         #
13780         [M-Xf-l]++
13781         \W
13782         #
13783         [,a-c]?
13784         \W
13785         Ket
13786         End
13787 ------------------------------------------------------------------
13788
13789 /a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ
13790 ------------------------------------------------------------------
13791         Bra
13792         a+
13793         Brazero
13794         CBra 1
13795         aa
13796         Alt
13797         bb
13798         KetRmax
13799         c#
13800         a*
13801         Brazero
13802         CBra 2
13803         bb
13804         Alt
13805         cc
13806         KetRmax
13807         a#
13808         a?+
13809         Brazero
13810         CBra 3
13811         bb
13812         Alt
13813         cc
13814         KetRmax
13815         d#
13816         [a-f]*
13817         Brazero
13818         CBra 4
13819         g
13820         Alt
13821         hh
13822         KetRmax
13823         f
13824         Ket
13825         End
13826 ------------------------------------------------------------------
13827
13828 /[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ
13829 ------------------------------------------------------------------
13830         Bra
13831         [a-f]*+
13832         Brazero
13833         CBra 1
13834         g
13835         Alt
13836         hh
13837         Alt
13838         i
13839         KetRmax
13840         i#
13841         [a-x]{4,}
13842         Brazero
13843         SCBra 2
13844         y{0,6}
13845         KetRmax
13846         y#
13847         [a-k]++
13848         CBra 3
13849         ll
13850         Alt
13851         mm
13852         KetRmax
13853         n
13854         Ket
13855         End
13856 ------------------------------------------------------------------
13857
13858 /[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ
13859 ------------------------------------------------------------------
13860         Bra
13861         [a-f]*+
13862         Once_NC
13863         gg
13864         Alt
13865         hh
13866         KetRmax
13867         #
13868         [a-f]*+
13869         Brazero
13870         Once_NC
13871         gg
13872         Alt
13873         hh
13874         Ket
13875         #
13876         [a-f]*
13877         Brazero
13878         Once_NC
13879         gg
13880         Alt
13881         hh
13882         KetRmax
13883         a#
13884         [a-f]*+
13885         Brazero
13886         Once_NC
13887         gg
13888         Alt
13889         hh
13890         KetRmax
13891         h
13892         Ket
13893         End
13894 ------------------------------------------------------------------
13895
13896 /[a-c]*d/DZS
13897 ------------------------------------------------------------------
13898         Bra
13899         [a-c]*+
13900         d
13901         Ket
13902         End
13903 ------------------------------------------------------------------
13904 Capturing subpattern count = 0
13905 No options
13906 No first char
13907 Need char = 'd'
13908 Subject length lower bound = 1
13909 Starting chars: a b c d 
13910
13911 /[a-c]+d/DZS
13912 ------------------------------------------------------------------
13913         Bra
13914         [a-c]++
13915         d
13916         Ket
13917         End
13918 ------------------------------------------------------------------
13919 Capturing subpattern count = 0
13920 No options
13921 No first char
13922 Need char = 'd'
13923 Subject length lower bound = 2
13924 Starting chars: a b c 
13925
13926 /[a-c]?d/DZS
13927 ------------------------------------------------------------------
13928         Bra
13929         [a-c]?+
13930         d
13931         Ket
13932         End
13933 ------------------------------------------------------------------
13934 Capturing subpattern count = 0
13935 No options
13936 No first char
13937 Need char = 'd'
13938 Subject length lower bound = 1
13939 Starting chars: a b c d 
13940
13941 /[a-c]{4,6}d/DZS
13942 ------------------------------------------------------------------
13943         Bra
13944         [a-c]{4,6}+
13945         d
13946         Ket
13947         End
13948 ------------------------------------------------------------------
13949 Capturing subpattern count = 0
13950 No options
13951 No first char
13952 Need char = 'd'
13953 Subject length lower bound = 5
13954 Starting chars: a b c 
13955
13956 /[a-c]{0,6}d/DZS
13957 ------------------------------------------------------------------
13958         Bra
13959         [a-c]{0,6}+
13960         d
13961         Ket
13962         End
13963 ------------------------------------------------------------------
13964 Capturing subpattern count = 0
13965 No options
13966 No first char
13967 Need char = 'd'
13968 Subject length lower bound = 1
13969 Starting chars: a b c d 
13970
13971 /-- End of special auto-possessive tests --/
13972
13973 /^A\o{1239}B/
13974 Failed: non-octal character in \o{} (closing brace missing?) at offset 8
13975
13976 /^A\oB/
13977 Failed: missing opening brace after \o at offset 3
13978
13979 /^A\x{zz}B/ 
13980 Failed: non-hex character in \x{} (closing brace missing?) at offset 5
13981
13982 /^A\x{12Z/
13983 Failed: non-hex character in \x{} (closing brace missing?) at offset 7
13984
13985 /^A\x{/
13986 Failed: non-hex character in \x{} (closing brace missing?) at offset 5
13987
13988 /[ab]++/BZO
13989 ------------------------------------------------------------------
13990         Bra
13991         [ab]++
13992         Ket
13993         End
13994 ------------------------------------------------------------------
13995
13996 /[^ab]*+/BZO
13997 ------------------------------------------------------------------
13998         Bra
13999         [\x00-`c-\xff] (neg)*+
14000         Ket
14001         End
14002 ------------------------------------------------------------------
14003
14004 /a{4}+/BZO
14005 ------------------------------------------------------------------
14006         Bra
14007         a{4}
14008         Ket
14009         End
14010 ------------------------------------------------------------------
14011
14012 /a{4}+/BZOi
14013 ------------------------------------------------------------------
14014         Bra
14015      /i a{4}
14016         Ket
14017         End
14018 ------------------------------------------------------------------
14019
14020 /[a-[:digit:]]+/
14021 Failed: invalid range in character class at offset 3
14022
14023 /[A-[:digit:]]+/
14024 Failed: invalid range in character class at offset 3
14025
14026 /[a-[.xxx.]]+/
14027 Failed: invalid range in character class at offset 3
14028
14029 /[a-[=xxx=]]+/
14030 Failed: invalid range in character class at offset 3
14031
14032 /[a-[!xxx!]]+/
14033 Failed: range out of order in character class at offset 3
14034
14035 /[A-[!xxx!]]+/
14036     A]]]
14037  0: A]]]
14038
14039 /[a-\d]+/
14040 Failed: invalid range in character class at offset 4
14041
14042 /(?<0abc>xx)/
14043 Failed: group name must start with a non-digit at offset 3
14044
14045 /(?&1abc)xx(?<1abc>y)/
14046 Failed: group name must start with a non-digit at offset 3
14047
14048 /(?<ab-cd>xx)/
14049 Failed: syntax error in subpattern name (missing terminator) at offset 5
14050
14051 /(?'0abc'xx)/
14052 Failed: group name must start with a non-digit at offset 3
14053
14054 /(?P<0abc>xx)/
14055 Failed: group name must start with a non-digit at offset 4
14056
14057 /\k<5ghj>/
14058 Failed: group name must start with a non-digit at offset 3
14059
14060 /\k'5ghj'/
14061 Failed: group name must start with a non-digit at offset 3
14062
14063 /\k{2fgh}/
14064 Failed: group name must start with a non-digit at offset 3
14065
14066 /(?P=8yuki)/
14067 Failed: group name must start with a non-digit at offset 4
14068
14069 /\g{4df}/
14070 Failed: group name must start with a non-digit at offset 3
14071
14072 /(?&1abc)xx(?<1abc>y)/
14073 Failed: group name must start with a non-digit at offset 3
14074
14075 /(?P>1abc)xx(?<1abc>y)/
14076 Failed: group name must start with a non-digit at offset 4
14077
14078 /\g'3gh'/
14079 Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7
14080
14081 /\g<5fg>/
14082 Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 7
14083
14084 /(?(<4gh>)abc)/
14085 Failed: group name must start with a non-digit at offset 4
14086
14087 /(?('4gh')abc)/
14088 Failed: group name must start with a non-digit at offset 4
14089
14090 /(?(4gh)abc)/
14091 Failed: malformed number or name after (?( at offset 4
14092
14093 /(?(R&6yh)abc)/
14094 Failed: group name must start with a non-digit at offset 5
14095
14096 /-- Test the ugly "start or end of word" compatibility syntax --/
14097
14098 /[[:<:]]red[[:>:]]/BZ
14099 ------------------------------------------------------------------
14100         Bra
14101         \b
14102         Assert
14103         \w
14104         Ket
14105         red
14106         \b
14107         AssertB
14108         Reverse
14109         \w
14110         Ket
14111         Ket
14112         End
14113 ------------------------------------------------------------------
14114     little red riding hood
14115  0: red
14116     a /red/ thing 
14117  0: red
14118     red is a colour
14119  0: red
14120     put it all on red  
14121  0: red
14122     ** Failers
14123 No match
14124     no reduction
14125 No match
14126     Alfred Winifred
14127 No match
14128     
14129 /[a[:<:]] should give error/ 
14130 Failed: unknown POSIX class name at offset 4
14131
14132 /(?=ab\K)/+
14133     abcd
14134 Start of matched string is beyond its end - displaying from end to start.
14135  0: ab
14136  0+ abcd
14137
14138 /abcd/f<lf>
14139     xx\nxabcd
14140 No match
14141     
14142 / -- Test stack check external calls --/ 
14143
14144 /(((((a)))))/Q0
14145
14146 /(((((a)))))/Q1
14147 Failed: parentheses are too deeply nested (stack check) at offset 0
14148
14149 /(((((a)))))/Q
14150 ** Missing 0 or 1 after /Q
14151
14152 /-- End of testinput2 --/