xref: /PHP-5.4/ext/pcre/pcrelib/testdata/testoutput2 (revision 23917b45)
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
14Capturing subpattern count = 1
15May match empty string
16No options
17No first char
18No need char
19
20/abc/I
21Capturing subpattern count = 0
22No options
23First char = 'a'
24Need char = 'c'
25    abc
26 0: abc
27    defabc
28 0: abc
29    \Aabc
30 0: abc
31    *** Failers
32No match
33    \Adefabc
34No match
35    ABC
36No match
37
38/^abc/I
39Capturing subpattern count = 0
40Options: anchored
41No first char
42No need char
43    abc
44 0: abc
45    \Aabc
46 0: abc
47    *** Failers
48No match
49    defabc
50No match
51    \Adefabc
52No match
53
54/a+bc/I
55Capturing subpattern count = 0
56No options
57First char = 'a'
58Need char = 'c'
59
60/a*bc/I
61Capturing subpattern count = 0
62No options
63No first char
64Need char = 'c'
65
66/a{3}bc/I
67Capturing subpattern count = 0
68No options
69First char = 'a'
70Need char = 'c'
71
72/(abc|a+z)/I
73Capturing subpattern count = 1
74No options
75First char = 'a'
76No need char
77
78/^abc$/I
79Capturing subpattern count = 0
80Options: anchored
81No first char
82No need char
83    abc
84 0: abc
85    *** Failers
86No match
87    def\nabc
88No match
89
90/ab\idef/X
91Failed: unrecognized character follows \ at offset 3
92
93/(?X)ab\idef/X
94Failed: unrecognized character follows \ at offset 7
95
96/x{5,4}/
97Failed: numbers out of order in {} quantifier at offset 5
98
99/z{65536}/
100Failed: number too big in {} quantifier at offset 7
101
102/[abcd/
103Failed: missing terminating ] for character class at offset 5
104
105/(?X)[\B]/
106Failed: invalid escape sequence in character class at offset 6
107
108/(?X)[\R]/
109Failed: invalid escape sequence in character class at offset 6
110
111/(?X)[\X]/
112Failed: 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]/
139Failed: range out of order in character class at offset 3
140
141/^*/
142Failed: nothing to repeat at offset 1
143
144/(abc/
145Failed: missing ) at offset 4
146
147/(?# abc/
148Failed: missing ) after comment at offset 7
149
150/(?z)abc/
151Failed: unrecognized character after (? or (?- at offset 2
152
153/.*b/I
154Capturing subpattern count = 0
155No options
156First char at start or follows newline
157Need char = 'b'
158
159/.*?b/I
160Capturing subpattern count = 0
161No options
162First char at start or follows newline
163Need char = 'b'
164
165/cat|dog|elephant/I
166Capturing subpattern count = 0
167No options
168No first char
169No 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
176Capturing subpattern count = 0
177No options
178No first char
179No need char
180Subject length lower bound = 3
181Starting 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
188Capturing subpattern count = 0
189Options: caseless
190No first char
191No need char
192Subject length lower bound = 3
193Starting 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
200Capturing subpattern count = 0
201No options
202No first char
203No need char
204Subject length lower bound = 1
205Starting chars: a b c d
206
207/(a|[^\dZ])/IS
208Capturing subpattern count = 1
209No options
210No first char
211No need char
212Subject length lower bound = 1
213Starting 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
229Capturing subpattern count = 1
230No options
231No first char
232No need char
233Subject length lower bound = 1
234Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 a b
235
236/(ab\2)/
237Failed: reference to non-existent subpattern at offset 6
238
239/{4,5}abc/
240Failed: nothing to repeat at offset 4
241
242/(a)(b)(c)\2/I
243Capturing subpattern count = 3
244Max back reference = 2
245No options
246First char = 'a'
247Need char = 'c'
248    abcb
249 0: abcb
250 1: a
251 2: b
252 3: c
253    \O0abcb
254Matched, but too many substrings
255    \O3abcb
256Matched, but too many substrings
257 0: abcb
258    \O6abcb
259Matched, but too many substrings
260 0: abcb
261 1: a
262    \O9abcb
263Matched, 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
274Capturing subpattern count = 3
275Max back reference = 2
276No options
277First char = 'a'
278No need char
279    abc
280 0: abc
281 1: a
282    \O0abc
283Matched, but too many substrings
284    \O3abc
285Matched, 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
296Matched, but too many substrings
297    \O3aba
298Matched, but too many substrings
299 0: aba
300    \O6aba
301Matched, but too many substrings
302 0: aba
303 1: <unset>
304    \O9aba
305Matched, 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
316Capturing subpattern count = 0
317Options: dollar_endonly
318First char = 'a'
319Need char = 'c'
320    abc
321 0: abc
322    *** Failers
323No match
324    abc\n
325No match
326    abc\ndef
327No match
328
329/(a)(b)(c)(d)(e)\6/
330Failed: reference to non-existent subpattern at offset 17
331
332/the quick brown fox/I
333Capturing subpattern count = 0
334No options
335First char = 't'
336Need 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
343Capturing subpattern count = 0
344Options: anchored
345No first char
346No need char
347    the quick brown fox
348 0: the quick brown fox
349    *** Failers
350No match
351    this is a line with the quick brown fox
352No match
353
354/ab(?z)cd/
355Failed: unrecognized character after (? or (?- at offset 4
356
357/^abc|def/I
358Capturing subpattern count = 0
359No options
360No first char
361No need char
362    abcdef
363 0: abc
364    abcdef\B
365 0: def
366
367/.*((abc)$|(def))/I
368Capturing subpattern count = 3
369No options
370First char at start or follows newline
371No 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/)/
383Failed: unmatched parentheses at offset 0
384
385/a[]b/
386Failed: missing terminating ] for character class at offset 4
387
388/[^aeiou ]{3,}/I
389Capturing subpattern count = 0
390No options
391No first char
392No need char
393    co-processors, and for
394 0: -pr
395
396/<.*>/I
397Capturing subpattern count = 0
398No options
399First char = '<'
400Need char = '>'
401    abc<def>ghi<klm>nop
402 0: <def>ghi<klm>
403
404/<.*?>/I
405Capturing subpattern count = 0
406No options
407First char = '<'
408Need char = '>'
409    abc<def>ghi<klm>nop
410 0: <def>
411
412/<.*>/IU
413Capturing subpattern count = 0
414Options: ungreedy
415First char = '<'
416Need char = '>'
417    abc<def>ghi<klm>nop
418 0: <def>
419
420/(?U)<.*>/I
421Capturing subpattern count = 0
422Options: ungreedy
423First char = '<'
424Need char = '>'
425    abc<def>ghi<klm>nop
426 0: <def>
427
428/<.*?>/IU
429Capturing subpattern count = 0
430Options: ungreedy
431First char = '<'
432Need char = '>'
433    abc<def>ghi<klm>nop
434 0: <def>ghi<klm>
435
436/={3,}/IU
437Capturing subpattern count = 0
438Options: ungreedy
439First char = '='
440Need char = '='
441    abc========def
442 0: ===
443
444/(?U)={3,}?/I
445Capturing subpattern count = 0
446Options: ungreedy
447First char = '='
448Need char = '='
449    abc========def
450 0: ========
451
452/(?<!bar|cattle)foo/I
453Capturing subpattern count = 0
454Max lookbehind = 6
455No options
456First char = 'f'
457Need char = 'o'
458    foo
459 0: foo
460    catfoo
461 0: foo
462    *** Failers
463No match
464    the barfoo
465No match
466    and cattlefoo
467No match
468
469/(?<=a+)b/
470Failed: lookbehind assertion is not fixed length at offset 6
471
472/(?<=aaa|b{0,3})b/
473Failed: lookbehind assertion is not fixed length at offset 14
474
475/(?<!(foo)a\1)bar/
476Failed: lookbehind assertion is not fixed length at offset 12
477
478/(?i)abc/I
479Capturing subpattern count = 0
480Options: caseless
481First char = 'a' (caseless)
482Need char = 'c' (caseless)
483
484/(a|(?m)a)/I
485Capturing subpattern count = 1
486No options
487First char = 'a'
488No need char
489
490/(?i)^1234/I
491Capturing subpattern count = 0
492Options: anchored caseless
493No first char
494No need char
495
496/(^b|(?i)^d)/I
497Capturing subpattern count = 1
498Options: anchored
499No first char
500No need char
501
502/(?s).*/I
503Capturing subpattern count = 0
504May match empty string
505Options: anchored dotall
506No first char
507No need char
508
509/[abcd]/IS
510Capturing subpattern count = 0
511No options
512No first char
513No need char
514Subject length lower bound = 1
515Starting chars: a b c d
516
517/(?i)[abcd]/IS
518Capturing subpattern count = 0
519Options: caseless
520No first char
521No need char
522Subject length lower bound = 1
523Starting chars: A B C D a b c d
524
525/(?m)[xy]|(b|c)/IS
526Capturing subpattern count = 1
527Options: multiline
528No first char
529No need char
530Subject length lower bound = 1
531Starting chars: b c x y
532
533/(^a|^b)/Im
534Capturing subpattern count = 1
535Options: multiline
536First char at start or follows newline
537No need char
538
539/(?i)(^a|^b)/Im
540Capturing subpattern count = 1
541Options: caseless multiline
542First char at start or follows newline
543No need char
544
545/(a)(?(1)a|b|c)/
546Failed: conditional group contains more than two branches at offset 13
547
548/(?(?=a)a|b|c)/
549Failed: conditional group contains more than two branches at offset 12
550
551/(?(1a)/
552Failed: malformed number or name after (?( at offset 4
553
554/(?(1a))/
555Failed: malformed number or name after (?( at offset 4
556
557/(?(?i))/
558Failed: assertion expected after (?( at offset 3
559
560/(?(abc))/
561Failed: reference to non-existent subpattern at offset 7
562
563/(?(?<ab))/
564Failed: syntax error in subpattern name (missing terminator) at offset 7
565
566/((?s)blah)\s+\1/I
567Capturing subpattern count = 1
568Max back reference = 1
569No options
570First char = 'b'
571Need char = 'h'
572
573/((?i)blah)\s+\1/I
574Capturing subpattern count = 1
575Max back reference = 1
576No options
577First char = 'b' (caseless)
578Need char = 'h' (caseless)
579
580/((?i)b)/IDZS
581------------------------------------------------------------------
582        Bra
583        CBra 1
584     /i b
585        Ket
586        Ket
587        End
588------------------------------------------------------------------
589Capturing subpattern count = 1
590No options
591First char = 'b' (caseless)
592No need char
593Subject length lower bound = 1
594No starting char list
595
596/(a*b|(?i:c*(?-i)d))/IS
597Capturing subpattern count = 1
598No options
599No first char
600No need char
601Subject length lower bound = 1
602Starting chars: C a b c d
603
604/a$/I
605Capturing subpattern count = 0
606No options
607First char = 'a'
608No need char
609    a
610 0: a
611    a\n
612 0: a
613    *** Failers
614No match
615    \Za
616No match
617    \Za\n
618No match
619
620/a$/Im
621Capturing subpattern count = 0
622Options: multiline
623First char = 'a'
624No need char
625    a
626 0: a
627    a\n
628 0: a
629    \Za\n
630 0: a
631    *** Failers
632No match
633    \Za
634No match
635
636/\Aabc/Im
637Capturing subpattern count = 0
638Max lookbehind = 1
639Options: anchored multiline
640No first char
641No need char
642
643/^abc/Im
644Capturing subpattern count = 0
645Options: multiline
646First char at start or follows newline
647Need char = 'c'
648
649/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
650Capturing subpattern count = 5
651Options: anchored
652No first char
653No 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
663Capturing subpattern count = 0
664Max lookbehind = 3
665No options
666No first char
667No need char
668Subject length lower bound = 1
669Starting chars: a b
670
671/(?<!foo)(alpha|omega)/IS
672Capturing subpattern count = 1
673Max lookbehind = 3
674No options
675No first char
676Need char = 'a'
677Subject length lower bound = 5
678Starting chars: a o
679
680/(?!alphabet)[ab]/IS
681Capturing subpattern count = 0
682No options
683No first char
684No need char
685Subject length lower bound = 1
686Starting chars: a b
687
688/(?<=foo\n)^bar/Im
689Capturing subpattern count = 0
690Max lookbehind = 4
691Contains explicit CR or LF match
692Options: multiline
693No first char
694Need char = 'r'
695    foo\nbarbar
696 0: bar
697    ***Failers
698No match
699    rhubarb
700No match
701    barbell
702No match
703    abc\nbarton
704No match
705
706/^(?<=foo\n)bar/Im
707Capturing subpattern count = 0
708Max lookbehind = 4
709Contains explicit CR or LF match
710Options: multiline
711First char at start or follows newline
712Need char = 'r'
713    foo\nbarbar
714 0: bar
715    ***Failers
716No match
717    rhubarb
718No match
719    barbell
720No match
721    abc\nbarton
722No match
723
724/(?>^abc)/Im
725Capturing subpattern count = 0
726Options: multiline
727First char at start or follows newline
728Need char = 'c'
729    abc
730 0: abc
731    def\nabc
732 0: abc
733    *** Failers
734No match
735    defabc
736No match
737
738/(?<=ab(c+)d)ef/
739Failed: lookbehind assertion is not fixed length at offset 11
740
741/(?<=ab(?<=c+)d)ef/
742Failed: lookbehind assertion is not fixed length at offset 12
743
744/(?<=ab(c|de)f)g/
745Failed: 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
750Capturing subpattern count = 0
751Max lookbehind = 7
752No options
753First char = '-'
754Need char = 't'
755    the bullock-cart
756 0: -cart
757    a donkey-cart race
758 0: -cart
759    *** Failers
760No match
761    cart
762No match
763    horse-and-cart
764No match
765
766/(?<=ab(?i)x|y|z)/I
767Capturing subpattern count = 0
768Max lookbehind = 3
769May match empty string
770No options
771No first char
772No need char
773
774/(?>.*)(?<=(abcd)|(xyz))/I
775Capturing subpattern count = 2
776Max lookbehind = 4
777May match empty string
778No options
779No first char
780No 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
790Capturing subpattern count = 0
791Max lookbehind = 4
792No options
793First char = 'Z'
794Need 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
808No match
809    ZZ
810No match
811    abXYZZ
812No match
813    zzz
814No match
815    bzz
816No match
817
818/(?<!(foo)a)bar/I
819Capturing subpattern count = 1
820Max lookbehind = 4
821No options
822First char = 'b'
823Need char = 'r'
824    bar
825 0: bar
826    foobbar
827 0: bar
828    *** Failers
829No match
830    fooabar
831No match
832
833/This one is here because Perl behaves differently; see also the following/I
834Capturing subpattern count = 0
835No options
836First char = 'T'
837Need char = 'g'
838
839/^(a\1?){4}$/I
840Capturing subpattern count = 1
841Max back reference = 1
842Options: anchored
843No first char
844No need char
845    aaaa
846No match
847    aaaaaa
848No 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/
852No match
853/a recursive reference to itself. PCRE has now made these into atomic patterns./
854No match
855
856/^(xa|=?\1a){2}$/
857    xa=xaa
858 0: xa=xaa
859 1: =xaa
860    ** Failers
861No match
862    xa=xaaa
863No match
864
865/^(xa|=?\1a)+$/
866    xa=xaa
867 0: xa=xaa
868 1: =xaa
869    ** Failers
870No match
871    xa=xaaa
872No match
873
874/These are syntax tests from Perl 5.005/I
875Capturing subpattern count = 0
876No options
877First char = 'T'
878Need char = '5'
879
880/a[b-a]/
881Failed: range out of order in character class at offset 4
882
883/a[]b/
884Failed: missing terminating ] for character class at offset 4
885
886/a[/
887Failed: missing terminating ] for character class at offset 2
888
889/*a/
890Failed: nothing to repeat at offset 0
891
892/(*)b/
893Failed: nothing to repeat at offset 1
894
895/abc)/
896Failed: unmatched parentheses at offset 3
897
898/(abc/
899Failed: missing ) at offset 4
900
901/a**/
902Failed: nothing to repeat at offset 2
903
904/)(/
905Failed: unmatched parentheses at offset 0
906
907/\1/
908Failed: reference to non-existent subpattern at offset 2
909
910/\2/
911Failed: reference to non-existent subpattern at offset 2
912
913/(a)|\2/
914Failed: reference to non-existent subpattern at offset 6
915
916/a[b-a]/Ii
917Failed: range out of order in character class at offset 4
918
919/a[]b/Ii
920Failed: missing terminating ] for character class at offset 4
921
922/a[/Ii
923Failed: missing terminating ] for character class at offset 2
924
925/*a/Ii
926Failed: nothing to repeat at offset 0
927
928/(*)b/Ii
929Failed: nothing to repeat at offset 1
930
931/abc)/Ii
932Failed: unmatched parentheses at offset 3
933
934/(abc/Ii
935Failed: missing ) at offset 4
936
937/a**/Ii
938Failed: nothing to repeat at offset 2
939
940/)(/Ii
941Failed: unmatched parentheses at offset 0
942
943/:(?:/
944Failed: missing ) at offset 4
945
946/(?<%)b/
947Failed: unrecognized character after (?< at offset 3
948
949/a(?{)b/
950Failed: unrecognized character after (? or (?- at offset 3
951
952/a(?{{})b/
953Failed: unrecognized character after (? or (?- at offset 3
954
955/a(?{}})b/
956Failed: unrecognized character after (? or (?- at offset 3
957
958/a(?{"{"})b/
959Failed: unrecognized character after (? or (?- at offset 3
960
961/a(?{"{"}})b/
962Failed: unrecognized character after (? or (?- at offset 3
963
964/(?(1?)a|b)/
965Failed: malformed number or name after (?( at offset 4
966
967/[a[:xyz:/
968Failed: missing terminating ] for character class at offset 8
969
970/(?<=x+)y/
971Failed: lookbehind assertion is not fixed length at offset 6
972
973/a{37,17}/
974Failed: numbers out of order in {} quantifier at offset 7
975
976/abc/\
977Failed: \ at end of pattern at offset 4
978
979/abc/\i
980Failed: \ at end of pattern at offset 4
981
982/(a)bc(d)/I
983Capturing subpattern count = 2
984No options
985First char = 'a'
986Need 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
1000copy substring 5 failed -7
1001
1002/(.{20})/I
1003Capturing subpattern count = 1
1004No options
1005No first char
1006No 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
1020Capturing subpattern count = 1
1021No options
1022No first char
1023No 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
1034Capturing subpattern count = 1
1035No options
1036No first char
1037No 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
1050Capturing subpattern count = 3
1051Options: anchored
1052No first char
1053No 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)
1062get 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)
1075get 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
1088Capturing subpattern count = 0
1089Options: anchored
1090No first char
1091No 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
1100Capturing subpattern count = 8
1101Contains explicit CR or LF match
1102No options
1103First char = 'w'
1104Need char = 'd'
1105
1106/.*X/IDZ
1107------------------------------------------------------------------
1108        Bra
1109        Any*
1110        X
1111        Ket
1112        End
1113------------------------------------------------------------------
1114Capturing subpattern count = 0
1115No options
1116First char at start or follows newline
1117Need char = 'X'
1118
1119/.*X/IDZs
1120------------------------------------------------------------------
1121        Bra
1122        AllAny*
1123        X
1124        Ket
1125        End
1126------------------------------------------------------------------
1127Capturing subpattern count = 0
1128Options: anchored dotall
1129No first char
1130Need 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------------------------------------------------------------------
1145Capturing subpattern count = 1
1146No options
1147First char at start or follows newline
1148No 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------------------------------------------------------------------
1163Capturing subpattern count = 1
1164Options: anchored dotall
1165No first char
1166No 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------------------------------------------------------------------
1181Capturing subpattern count = 1
1182Options: anchored dotall
1183No first char
1184No 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------------------------------------------------------------------
1199Capturing subpattern count = 0
1200Options: anchored
1201No first char
1202No need char
1203
1204/\Biss\B/I+
1205Capturing subpattern count = 0
1206Max lookbehind = 1
1207No options
1208First char = 'i'
1209Need char = 's'
1210    Mississippi
1211 0: iss
1212 0+ issippi
1213
1214/iss/IG+
1215Capturing subpattern count = 0
1216No options
1217First char = 'i'
1218Need char = 's'
1219    Mississippi
1220 0: iss
1221 0+ issippi
1222 0: iss
1223 0+ ippi
1224
1225/\Biss\B/IG+
1226Capturing subpattern count = 0
1227Max lookbehind = 1
1228No options
1229First char = 'i'
1230Need char = 's'
1231    Mississippi
1232 0: iss
1233 0+ issippi
1234
1235/\Biss\B/Ig+
1236Capturing subpattern count = 0
1237Max lookbehind = 1
1238No options
1239First char = 'i'
1240Need char = 's'
1241    Mississippi
1242 0: iss
1243 0+ issippi
1244 0: iss
1245 0+ ippi
1246    *** Failers
1247No match
1248    Mississippi\A
1249No match
1250
1251/(?<=[Ms])iss/Ig+
1252Capturing subpattern count = 0
1253Max lookbehind = 1
1254No options
1255First char = 'i'
1256Need char = 's'
1257    Mississippi
1258 0: iss
1259 0+ issippi
1260 0: iss
1261 0+ ippi
1262
1263/(?<=[Ms])iss/IG+
1264Capturing subpattern count = 0
1265Max lookbehind = 1
1266No options
1267First char = 'i'
1268Need char = 's'
1269    Mississippi
1270 0: iss
1271 0+ issippi
1272
1273/^iss/Ig+
1274Capturing subpattern count = 0
1275Options: anchored
1276No first char
1277No need char
1278    ississippi
1279 0: iss
1280 0+ issippi
1281
1282/.*iss/Ig+
1283Capturing subpattern count = 0
1284No options
1285First char at start or follows newline
1286Need char = 's'
1287    abciss\nxyzisspqr
1288 0: abciss
1289 0+ \x0axyzisspqr
1290 0: xyziss
1291 0+ pqr
1292
1293/.i./I+g
1294Capturing subpattern count = 0
1295No options
1296No first char
1297Need 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
1324Capturing subpattern count = 0
1325Options: anchored
1326No first char
1327No need char
1328    Mississippi
1329 0: Mis
1330 0+ sissippi
1331
1332/^ab\n/Ig+
1333Capturing subpattern count = 0
1334Contains explicit CR or LF match
1335Options: anchored
1336No first char
1337No need char
1338    ab\nab\ncd
1339 0: ab\x0a
1340 0+ ab\x0acd
1341
1342/^ab\n/Img+
1343Capturing subpattern count = 0
1344Contains explicit CR or LF match
1345Options: multiline
1346First char at start or follows newline
1347Need 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
1355Capturing subpattern count = 0
1356No options
1357First char = 'a'
1358Need char = 'c'
1359
1360/abc|bac/I
1361Capturing subpattern count = 0
1362No options
1363No first char
1364Need char = 'c'
1365
1366/(abc|bac)/I
1367Capturing subpattern count = 1
1368No options
1369No first char
1370Need char = 'c'
1371
1372/(abc|(c|dc))/I
1373Capturing subpattern count = 2
1374No options
1375No first char
1376Need char = 'c'
1377
1378/(abc|(d|de)c)/I
1379Capturing subpattern count = 2
1380No options
1381No first char
1382Need char = 'c'
1383
1384/a*/I
1385Capturing subpattern count = 0
1386May match empty string
1387No options
1388No first char
1389No need char
1390
1391/a+/I
1392Capturing subpattern count = 0
1393No options
1394First char = 'a'
1395No need char
1396
1397/(baa|a+)/I
1398Capturing subpattern count = 1
1399No options
1400No first char
1401Need char = 'a'
1402
1403/a{0,3}/I
1404Capturing subpattern count = 0
1405May match empty string
1406No options
1407No first char
1408No need char
1409
1410/baa{3,}/I
1411Capturing subpattern count = 0
1412No options
1413First char = 'b'
1414Need char = 'a'
1415
1416/"([^\\"]+|\\.)*"/I
1417Capturing subpattern count = 1
1418No options
1419First char = '"'
1420Need char = '"'
1421
1422/(abc|ab[cd])/I
1423Capturing subpattern count = 1
1424No options
1425First char = 'a'
1426No need char
1427
1428/(a|.)/I
1429Capturing subpattern count = 1
1430No options
1431No first char
1432No need char
1433
1434/a|ba|\w/I
1435Capturing subpattern count = 0
1436No options
1437No first char
1438No need char
1439
1440/abc(?=pqr)/I
1441Capturing subpattern count = 0
1442No options
1443First char = 'a'
1444Need char = 'r'
1445
1446/...(?<=abc)/I
1447Capturing subpattern count = 0
1448Max lookbehind = 3
1449No options
1450No first char
1451No need char
1452
1453/abc(?!pqr)/I
1454Capturing subpattern count = 0
1455No options
1456First char = 'a'
1457Need char = 'c'
1458
1459/ab./I
1460Capturing subpattern count = 0
1461No options
1462First char = 'a'
1463Need char = 'b'
1464
1465/ab[xyz]/I
1466Capturing subpattern count = 0
1467No options
1468First char = 'a'
1469Need char = 'b'
1470
1471/abc*/I
1472Capturing subpattern count = 0
1473No options
1474First char = 'a'
1475Need char = 'b'
1476
1477/ab.c*/I
1478Capturing subpattern count = 0
1479No options
1480First char = 'a'
1481Need char = 'b'
1482
1483/a.c*/I
1484Capturing subpattern count = 0
1485No options
1486First char = 'a'
1487No need char
1488
1489/.c*/I
1490Capturing subpattern count = 0
1491No options
1492No first char
1493No need char
1494
1495/ac*/I
1496Capturing subpattern count = 0
1497No options
1498First char = 'a'
1499No need char
1500
1501/(a.c*|b.c*)/I
1502Capturing subpattern count = 1
1503No options
1504No first char
1505No need char
1506
1507/a.c*|aba/I
1508Capturing subpattern count = 0
1509No options
1510First char = 'a'
1511No need char
1512
1513/.+a/I
1514Capturing subpattern count = 0
1515No options
1516No first char
1517Need char = 'a'
1518
1519/(?=abcda)a.*/I
1520Capturing subpattern count = 0
1521No options
1522First char = 'a'
1523Need char = 'a'
1524
1525/(?=a)a.*/I
1526Capturing subpattern count = 0
1527No options
1528First char = 'a'
1529No need char
1530
1531/a(b)*/I
1532Capturing subpattern count = 1
1533No options
1534First char = 'a'
1535No need char
1536
1537/a\d*/I
1538Capturing subpattern count = 0
1539No options
1540First char = 'a'
1541No need char
1542
1543/ab\d*/I
1544Capturing subpattern count = 0
1545No options
1546First char = 'a'
1547Need char = 'b'
1548
1549/a(\d)*/I
1550Capturing subpattern count = 1
1551No options
1552First char = 'a'
1553No need char
1554
1555/abcde{0,0}/I
1556Capturing subpattern count = 0
1557No options
1558First char = 'a'
1559Need char = 'd'
1560
1561/ab\d+/I
1562Capturing subpattern count = 0
1563No options
1564First char = 'a'
1565Need char = 'b'
1566
1567/a(?(1)b)(.)/I
1568Capturing subpattern count = 1
1569No options
1570First char = 'a'
1571No need char
1572
1573/a(?(1)bag|big)(.)/I
1574Capturing subpattern count = 1
1575No options
1576First char = 'a'
1577Need char = 'g'
1578
1579/a(?(1)bag|big)*(.)/I
1580Capturing subpattern count = 1
1581No options
1582First char = 'a'
1583No need char
1584
1585/a(?(1)bag|big)+(.)/I
1586Capturing subpattern count = 1
1587No options
1588First char = 'a'
1589Need char = 'g'
1590
1591/a(?(1)b..|b..)(.)/I
1592Capturing subpattern count = 1
1593No options
1594First char = 'a'
1595Need char = 'b'
1596
1597/ab\d{0}e/I
1598Capturing subpattern count = 0
1599No options
1600First char = 'a'
1601Need char = 'e'
1602
1603/a?b?/I
1604Capturing subpattern count = 0
1605May match empty string
1606No options
1607No first char
1608No 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
1620No match
1621
1622/|-/I
1623Capturing subpattern count = 0
1624May match empty string
1625No options
1626No first char
1627No need char
1628    abcd
1629 0:
1630    -abc
1631 0:
1632    \Nab-c
1633 0: -
1634    *** Failers
1635 0:
1636    \Nabc
1637No match
1638
1639/^.?abcd/IS
1640Capturing subpattern count = 0
1641Options: anchored
1642No first char
1643Need char = 'd'
1644Subject length lower bound = 4
1645No 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
1655Capturing subpattern count = 0
1656Options: extended
1657First char = '('
1658Need 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
1674No match
1675    abcd
1676No match
1677    abcd)
1678No match
1679    (abcd
1680No match
1681
1682/\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1683Capturing subpattern count = 1
1684Options: extended
1685First char = '('
1686Need 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
1697Capturing subpattern count = 0
1698Options: extended
1699First char = '('
1700Need 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
1710No match
1711    ()
1712No match
1713
1714/\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1715Capturing subpattern count = 0
1716Options: extended
1717First char = '('
1718Need char = ')'
1719    ()
1720 0: ()
1721    12(abcde(fsh)xyz(foo(bar))lmno)89
1722 0: (fsh)
1723
1724/\(  ( (?>[^()]+) | (?R) )* \) /Ix
1725Capturing subpattern count = 1
1726Options: extended
1727First char = '('
1728Need char = ')'
1729    (ab(xy)cd)
1730 0: (ab(xy)cd)
1731 1: cd
1732
1733/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1734Capturing subpattern count = 2
1735Options: extended
1736First char = '('
1737Need char = ')'
1738    (ab(xy)cd)
1739 0: (ab(xy)cd)
1740 1: ab(xy)cd
1741 2: cd
1742
1743/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1744Capturing subpattern count = 3
1745Options: extended
1746First char = '('
1747Need 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
1760Capturing subpattern count = 3
1761Options: extended
1762First char = '('
1763Need 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
1776Capturing subpattern count = 11
1777Options: extended
1778First char = '('
1779Need 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
179110: ab(xy)cd
179211: cd
1793
1794/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1795Capturing subpattern count = 3
1796Options: extended
1797First char = '('
1798Need 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
1805Capturing subpattern count = 3
1806Options: extended
1807First char = '('
1808Need 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------------------------------------------------------------------
1828Capturing subpattern count = 0
1829Options: anchored
1830No first char
1831No need char
1832
1833/^[[:^alnum:]]/DZ
1834------------------------------------------------------------------
1835        Bra
1836        ^
1837        [\x00-/:-@[-`{-\xff] (neg)
1838        Ket
1839        End
1840------------------------------------------------------------------
1841Capturing subpattern count = 0
1842Options: anchored
1843No first char
1844No need char
1845
1846/^[[:alpha:]]/DZ
1847------------------------------------------------------------------
1848        Bra
1849        ^
1850        [A-Za-z]
1851        Ket
1852        End
1853------------------------------------------------------------------
1854Capturing subpattern count = 0
1855Options: anchored
1856No first char
1857No need char
1858
1859/^[[:^alpha:]]/DZ
1860------------------------------------------------------------------
1861        Bra
1862        ^
1863        [\x00-@[-`{-\xff] (neg)
1864        Ket
1865        End
1866------------------------------------------------------------------
1867Capturing subpattern count = 0
1868Options: anchored
1869No first char
1870No need char
1871
1872/[_[:alpha:]]/IS
1873Capturing subpattern count = 0
1874No options
1875No first char
1876No need char
1877Subject length lower bound = 1
1878Starting 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------------------------------------------------------------------
1889Capturing subpattern count = 0
1890Options: anchored
1891No first char
1892No need char
1893
1894/^[[:^ascii:]]/DZ
1895------------------------------------------------------------------
1896        Bra
1897        ^
1898        [\x80-\xff] (neg)
1899        Ket
1900        End
1901------------------------------------------------------------------
1902Capturing subpattern count = 0
1903Options: anchored
1904No first char
1905No need char
1906
1907/^[[:blank:]]/DZ
1908------------------------------------------------------------------
1909        Bra
1910        ^
1911        [\x09 ]
1912        Ket
1913        End
1914------------------------------------------------------------------
1915Capturing subpattern count = 0
1916Options: anchored
1917No first char
1918No need char
1919
1920/^[[:^blank:]]/DZ
1921------------------------------------------------------------------
1922        Bra
1923        ^
1924        [\x00-\x08\x0a-\x1f!-\xff] (neg)
1925        Ket
1926        End
1927------------------------------------------------------------------
1928Capturing subpattern count = 0
1929Options: anchored
1930No first char
1931No need char
1932
1933/[\n\x0b\x0c\x0d[:blank:]]/IS
1934Capturing subpattern count = 0
1935Contains explicit CR or LF match
1936No options
1937No first char
1938No need char
1939Subject length lower bound = 1
1940Starting chars: \x09 \x0a \x0b \x0c \x0d \x20
1941
1942/^[[:cntrl:]]/DZ
1943------------------------------------------------------------------
1944        Bra
1945        ^
1946        [\x00-\x1f\x7f]
1947        Ket
1948        End
1949------------------------------------------------------------------
1950Capturing subpattern count = 0
1951Options: anchored
1952No first char
1953No need char
1954
1955/^[[:digit:]]/DZ
1956------------------------------------------------------------------
1957        Bra
1958        ^
1959        [0-9]
1960        Ket
1961        End
1962------------------------------------------------------------------
1963Capturing subpattern count = 0
1964Options: anchored
1965No first char
1966No need char
1967
1968/^[[:graph:]]/DZ
1969------------------------------------------------------------------
1970        Bra
1971        ^
1972        [!-~]
1973        Ket
1974        End
1975------------------------------------------------------------------
1976Capturing subpattern count = 0
1977Options: anchored
1978No first char
1979No need char
1980
1981/^[[:lower:]]/DZ
1982------------------------------------------------------------------
1983        Bra
1984        ^
1985        [a-z]
1986        Ket
1987        End
1988------------------------------------------------------------------
1989Capturing subpattern count = 0
1990Options: anchored
1991No first char
1992No need char
1993
1994/^[[:print:]]/DZ
1995------------------------------------------------------------------
1996        Bra
1997        ^
1998        [ -~]
1999        Ket
2000        End
2001------------------------------------------------------------------
2002Capturing subpattern count = 0
2003Options: anchored
2004No first char
2005No need char
2006
2007/^[[:punct:]]/DZ
2008------------------------------------------------------------------
2009        Bra
2010        ^
2011        [!-/:-@[-`{-~]
2012        Ket
2013        End
2014------------------------------------------------------------------
2015Capturing subpattern count = 0
2016Options: anchored
2017No first char
2018No need char
2019
2020/^[[:space:]]/DZ
2021------------------------------------------------------------------
2022        Bra
2023        ^
2024        [\x09-\x0d ]
2025        Ket
2026        End
2027------------------------------------------------------------------
2028Capturing subpattern count = 0
2029Options: anchored
2030No first char
2031No need char
2032
2033/^[[:upper:]]/DZ
2034------------------------------------------------------------------
2035        Bra
2036        ^
2037        [A-Z]
2038        Ket
2039        End
2040------------------------------------------------------------------
2041Capturing subpattern count = 0
2042Options: anchored
2043No first char
2044No need char
2045
2046/^[[:xdigit:]]/DZ
2047------------------------------------------------------------------
2048        Bra
2049        ^
2050        [0-9A-Fa-f]
2051        Ket
2052        End
2053------------------------------------------------------------------
2054Capturing subpattern count = 0
2055Options: anchored
2056No first char
2057No need char
2058
2059/^[[:word:]]/DZ
2060------------------------------------------------------------------
2061        Bra
2062        ^
2063        [0-9A-Z_a-z]
2064        Ket
2065        End
2066------------------------------------------------------------------
2067Capturing subpattern count = 0
2068Options: anchored
2069No first char
2070No need char
2071
2072/^[[:^cntrl:]]/DZ
2073------------------------------------------------------------------
2074        Bra
2075        ^
2076        [ -~\x80-\xff] (neg)
2077        Ket
2078        End
2079------------------------------------------------------------------
2080Capturing subpattern count = 0
2081Options: anchored
2082No first char
2083No need char
2084
2085/^[12[:^digit:]]/DZ
2086------------------------------------------------------------------
2087        Bra
2088        ^
2089        [\x00-/12:-\xff] (neg)
2090        Ket
2091        End
2092------------------------------------------------------------------
2093Capturing subpattern count = 0
2094Options: anchored
2095No first char
2096No need char
2097
2098/^[[:^blank:]]/DZ
2099------------------------------------------------------------------
2100        Bra
2101        ^
2102        [\x00-\x08\x0a-\x1f!-\xff] (neg)
2103        Ket
2104        End
2105------------------------------------------------------------------
2106Capturing subpattern count = 0
2107Options: anchored
2108No first char
2109No need char
2110
2111/[01[:alpha:]%]/DZ
2112------------------------------------------------------------------
2113        Bra
2114        [%01A-Za-z]
2115        Ket
2116        End
2117------------------------------------------------------------------
2118Capturing subpattern count = 0
2119No options
2120No first char
2121No need char
2122
2123/[[.ch.]]/I
2124Failed: POSIX collating elements are not supported at offset 1
2125
2126/[[=ch=]]/I
2127Failed: POSIX collating elements are not supported at offset 1
2128
2129/[[:rhubarb:]]/I
2130Failed: unknown POSIX class name at offset 3
2131
2132/[[:upper:]]/Ii
2133Capturing subpattern count = 0
2134Options: caseless
2135No first char
2136No need char
2137    A
2138 0: A
2139    a
2140 0: a
2141
2142/[[:lower:]]/Ii
2143Capturing subpattern count = 0
2144Options: caseless
2145No first char
2146No need char
2147    A
2148 0: A
2149    a
2150 0: a
2151
2152/((?-i)[[:lower:]])[[:lower:]]/Ii
2153Capturing subpattern count = 1
2154Options: caseless
2155No first char
2156No 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
2167No match
2168    AB
2169No match
2170
2171/[\200-\110]/I
2172Failed: range out of order in character class at offset 9
2173
2174/^(?(0)f|b)oo/I
2175Failed: invalid condition (?(0) at offset 6
2176
2177/This one's here because of the large output vector needed/I
2178Capturing subpattern count = 0
2179No options
2180First char = 'T'
2181Need 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
2184Capturing subpattern count = 271
2185Max back reference = 270
2186No options
2187No first char
2188No 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
220010: 10
220111: 11
220212: 12
220313: 13
220414: 14
220515: 15
220616: 16
220717: 17
220818: 18
220919: 19
221020: 20
221121: 21
221222: 22
221323: 23
221424: 24
221525: 25
221626: 26
221727: 27
221828: 28
221929: 29
222030: 30
222131: 31
222232: 32
222333: 33
222434: 34
222535: 35
222636: 36
222737: 37
222838: 38
222939: 39
223040: 40
223141: 41
223242: 42
223343: 43
223444: 44
223545: 45
223646: 46
223747: 47
223848: 48
223949: 49
224050: 50
224151: 51
224252: 52
224353: 53
224454: 54
224555: 55
224656: 56
224757: 57
224858: 58
224959: 59
225060: 60
225161: 61
225262: 62
225363: 63
225464: 64
225565: 65
225666: 66
225767: 67
225868: 68
225969: 69
226070: 70
226171: 71
226272: 72
226373: 73
226474: 74
226575: 75
226676: 76
226777: 77
226878: 78
226979: 79
227080: 80
227181: 81
227282: 82
227383: 83
227484: 84
227585: 85
227686: 86
227787: 87
227888: 88
227989: 89
228090: 90
228191: 91
228292: 92
228393: 93
228494: 94
228595: 95
228696: 96
228797: 97
228898: 98
228999: 99
2290100: 100
2291101: 101
2292102: 102
2293103: 103
2294104: 104
2295105: 105
2296106: 106
2297107: 107
2298108: 108
2299109: 109
2300110: 110
2301111: 111
2302112: 112
2303113: 113
2304114: 114
2305115: 115
2306116: 116
2307117: 117
2308118: 118
2309119: 119
2310120: 120
2311121: 121
2312122: 122
2313123: 123
2314124: 124
2315125: 125
2316126: 126
2317127: 127
2318128: 128
2319129: 129
2320130: 130
2321131: 131
2322132: 132
2323133: 133
2324134: 134
2325135: 135
2326136: 136
2327137: 137
2328138: 138
2329139: 139
2330140: 140
2331141: 141
2332142: 142
2333143: 143
2334144: 144
2335145: 145
2336146: 146
2337147: 147
2338148: 148
2339149: 149
2340150: 150
2341151: 151
2342152: 152
2343153: 153
2344154: 154
2345155: 155
2346156: 156
2347157: 157
2348158: 158
2349159: 159
2350160: 160
2351161: 161
2352162: 162
2353163: 163
2354164: 164
2355165: 165
2356166: 166
2357167: 167
2358168: 168
2359169: 169
2360170: 170
2361171: 171
2362172: 172
2363173: 173
2364174: 174
2365175: 175
2366176: 176
2367177: 177
2368178: 178
2369179: 179
2370180: 180
2371181: 181
2372182: 182
2373183: 183
2374184: 184
2375185: 185
2376186: 186
2377187: 187
2378188: 188
2379189: 189
2380190: 190
2381191: 191
2382192: 192
2383193: 193
2384194: 194
2385195: 195
2386196: 196
2387197: 197
2388198: 198
2389199: 199
2390200: 200
2391201: 201
2392202: 202
2393203: 203
2394204: 204
2395205: 205
2396206: 206
2397207: 207
2398208: 208
2399209: 209
2400210: 210
2401211: 211
2402212: 212
2403213: 213
2404214: 214
2405215: 215
2406216: 216
2407217: 217
2408218: 218
2409219: 219
2410220: 220
2411221: 221
2412222: 222
2413223: 223
2414224: 224
2415225: 225
2416226: 226
2417227: 227
2418228: 228
2419229: 229
2420230: 230
2421231: 231
2422232: 232
2423233: 233
2424234: 234
2425235: 235
2426236: 236
2427237: 237
2428238: 238
2429239: 239
2430240: 240
2431241: 241
2432242: 242
2433243: 243
2434244: 244
2435245: 245
2436246: 246
2437247: 247
2438248: 248
2439249: 249
2440250: 250
2441251: 251
2442252: 252
2443253: 253
2444254: 254
2445255: 255
2446256: 256
2447257: 257
2448258: 258
2449259: 259
2450260: 260
2451261: 261
2452262: 262
2453263: 263
2454264: 264
2455265: 265
2456266: 266
2457267: 267
2458268: 268
2459269: 269
2460270: ABC
2461271: ABC
2462
2463/This one's here because Perl does this differently and PCRE can't at present/I
2464Capturing subpattern count = 0
2465No options
2466First char = 'T'
2467Need char = 't'
2468
2469/(main(O)?)+/I
2470Capturing subpattern count = 2
2471No options
2472First char = 'm'
2473Need 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
2483Capturing subpattern count = 1
2484No options
2485First char = 'T'
2486Need char = 's'
2487
2488/^(a(b)?)+$/I
2489Capturing subpattern count = 2
2490Options: anchored
2491No first char
2492No need char
2493    aba
2494 0: aba
2495 1: a
2496 2: b
2497
2498/^(aa(bb)?)+$/I
2499Capturing subpattern count = 2
2500Options: anchored
2501No first char
2502No need char
2503    aabbaa
2504 0: aabbaa
2505 1: aa
2506 2: bb
2507
2508/^(aa|aa(bb))+$/I
2509Capturing subpattern count = 2
2510Options: anchored
2511No first char
2512No need char
2513    aabbaa
2514 0: aabbaa
2515 1: aa
2516 2: bb
2517
2518/^(aa(bb)??)+$/I
2519Capturing subpattern count = 2
2520Options: anchored
2521No first char
2522No need char
2523    aabbaa
2524 0: aabbaa
2525 1: aa
2526 2: bb
2527
2528/^(?:aa(bb)?)+$/I
2529Capturing subpattern count = 1
2530Options: anchored
2531No first char
2532No need char
2533    aabbaa
2534 0: aabbaa
2535 1: bb
2536
2537/^(aa(b(b))?)+$/I
2538Capturing subpattern count = 3
2539Options: anchored
2540No first char
2541No need char
2542    aabbaa
2543 0: aabbaa
2544 1: aa
2545 2: bb
2546 3: b
2547
2548/^(?:aa(b(b))?)+$/I
2549Capturing subpattern count = 2
2550Options: anchored
2551No first char
2552No need char
2553    aabbaa
2554 0: aabbaa
2555 1: bb
2556 2: b
2557
2558/^(?:aa(b(?:b))?)+$/I
2559Capturing subpattern count = 1
2560Options: anchored
2561No first char
2562No need char
2563    aabbaa
2564 0: aabbaa
2565 1: bb
2566
2567/^(?:aa(bb(?:b))?)+$/I
2568Capturing subpattern count = 1
2569Options: anchored
2570No first char
2571No need char
2572    aabbbaa
2573 0: aabbbaa
2574 1: bbb
2575
2576/^(?:aa(b(?:bb))?)+$/I
2577Capturing subpattern count = 1
2578Options: anchored
2579No first char
2580No need char
2581    aabbbaa
2582 0: aabbbaa
2583 1: bbb
2584
2585/^(?:aa(?:b(b))?)+$/I
2586Capturing subpattern count = 1
2587Options: anchored
2588No first char
2589No need char
2590    aabbaa
2591 0: aabbaa
2592 1: b
2593
2594/^(?:aa(?:b(bb))?)+$/I
2595Capturing subpattern count = 1
2596Options: anchored
2597No first char
2598No need char
2599    aabbbaa
2600 0: aabbbaa
2601 1: bb
2602
2603/^(aa(b(bb))?)+$/I
2604Capturing subpattern count = 3
2605Options: anchored
2606No first char
2607No need char
2608    aabbbaa
2609 0: aabbbaa
2610 1: aa
2611 2: bbb
2612 3: bb
2613
2614/^(aa(bb(bb))?)+$/I
2615Capturing subpattern count = 3
2616Options: anchored
2617No first char
2618No need char
2619    aabbbbaa
2620 0: aabbbbaa
2621 1: aa
2622 2: bbbb
2623 3: bb
2624
2625/--------------------------------------------------------------------/I
2626Capturing subpattern count = 0
2627No options
2628First char = '-'
2629Need char = '-'
2630
2631/#/IxDZ
2632------------------------------------------------------------------
2633        Bra
2634        Ket
2635        End
2636------------------------------------------------------------------
2637Capturing subpattern count = 0
2638May match empty string
2639Options: extended
2640No first char
2641No need char
2642
2643/a#/IxDZ
2644------------------------------------------------------------------
2645        Bra
2646        a
2647        Ket
2648        End
2649------------------------------------------------------------------
2650Capturing subpattern count = 0
2651Options: extended
2652First char = 'a'
2653No need char
2654
2655/[\s]/DZ
2656------------------------------------------------------------------
2657        Bra
2658        [\x09-\x0d ]
2659        Ket
2660        End
2661------------------------------------------------------------------
2662Capturing subpattern count = 0
2663No options
2664No first char
2665No need char
2666
2667/[\S]/DZ
2668------------------------------------------------------------------
2669        Bra
2670        [\x00-\x08\x0e-\x1f!-\xff] (neg)
2671        Ket
2672        End
2673------------------------------------------------------------------
2674Capturing subpattern count = 0
2675No options
2676No first char
2677No need char
2678
2679/a(?i)b/DZ
2680------------------------------------------------------------------
2681        Bra
2682        a
2683     /i b
2684        Ket
2685        End
2686------------------------------------------------------------------
2687Capturing subpattern count = 0
2688No options
2689First char = 'a'
2690Need char = 'b' (caseless)
2691    ab
2692 0: ab
2693    aB
2694 0: aB
2695    *** Failers
2696No match
2697    AB
2698No 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------------------------------------------------------------------
2710Capturing subpattern count = 1
2711No options
2712First char = 'a'
2713Need char = 'b' (caseless)
2714    ab
2715 0: ab
2716 1: ab
2717    aB
2718 0: aB
2719 1: aB
2720    *** Failers
2721No match
2722    AB
2723No match
2724
2725/   (?i)abc/IxDZ
2726------------------------------------------------------------------
2727        Bra
2728     /i abc
2729        Ket
2730        End
2731------------------------------------------------------------------
2732Capturing subpattern count = 0
2733Options: caseless extended
2734First char = 'a' (caseless)
2735Need char = 'c' (caseless)
2736
2737/#this is a comment
2738  (?i)abc/IxDZ
2739------------------------------------------------------------------
2740        Bra
2741     /i abc
2742        Ket
2743        End
2744------------------------------------------------------------------
2745Capturing subpattern count = 0
2746Options: caseless extended
2747First char = 'a' (caseless)
2748Need char = 'c' (caseless)
2749
2750/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2751------------------------------------------------------------------
2752        Bra
2753        123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2754        Ket
2755        End
2756------------------------------------------------------------------
2757Capturing subpattern count = 0
2758No options
2759First char = '1'
2760Need char = '0'
2761
2762/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2763------------------------------------------------------------------
2764        Bra
2765        123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2766        Ket
2767        End
2768------------------------------------------------------------------
2769Capturing subpattern count = 0
2770No options
2771First char = '1'
2772Need char = '0'
2773
2774/\Q\E/DZ
2775------------------------------------------------------------------
2776        Bra
2777        Ket
2778        End
2779------------------------------------------------------------------
2780Capturing subpattern count = 0
2781May match empty string
2782No options
2783No first char
2784No need char
2785    \
2786 0:
2787
2788/\Q\Ex/DZ
2789------------------------------------------------------------------
2790        Bra
2791        x
2792        Ket
2793        End
2794------------------------------------------------------------------
2795Capturing subpattern count = 0
2796No options
2797First char = 'x'
2798No need char
2799
2800/ \Q\E/DZ
2801------------------------------------------------------------------
2802        Bra
2803
2804        Ket
2805        End
2806------------------------------------------------------------------
2807Capturing subpattern count = 0
2808No options
2809First char = ' '
2810No need char
2811
2812/a\Q\E/DZ
2813------------------------------------------------------------------
2814        Bra
2815        a
2816        Ket
2817        End
2818------------------------------------------------------------------
2819Capturing subpattern count = 0
2820No options
2821First char = 'a'
2822No 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------------------------------------------------------------------
2837Capturing subpattern count = 0
2838No options
2839First char = 'a'
2840Need char = 'b'
2841  abc
2842 0: ab
2843
2844/\Q\Eabc/DZ
2845------------------------------------------------------------------
2846        Bra
2847        abc
2848        Ket
2849        End
2850------------------------------------------------------------------
2851Capturing subpattern count = 0
2852No options
2853First char = 'a'
2854Need char = 'c'
2855
2856/x*+\w/DZ
2857------------------------------------------------------------------
2858        Bra
2859        x*+
2860        \w
2861        Ket
2862        End
2863------------------------------------------------------------------
2864Capturing subpattern count = 0
2865No options
2866No first char
2867No need char
2868    *** Failers
2869 0: F
2870    xxxxx
2871No match
2872
2873/x?+/DZ
2874------------------------------------------------------------------
2875        Bra
2876        x?+
2877        Ket
2878        End
2879------------------------------------------------------------------
2880Capturing subpattern count = 0
2881May match empty string
2882No options
2883No first char
2884No need char
2885
2886/x++/DZ
2887------------------------------------------------------------------
2888        Bra
2889        x++
2890        Ket
2891        End
2892------------------------------------------------------------------
2893Capturing subpattern count = 0
2894No options
2895First char = 'x'
2896No 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------------------------------------------------------------------
2944Capturing subpattern count = 1
2945May match empty string
2946No options
2947No first char
2948No need char
2949
2950/^(\w++|\s++)*$/I
2951Capturing subpattern count = 1
2952May match empty string
2953Options: anchored
2954No first char
2955No 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
2960No match
2961    this is not a line with only words and spaces!
2962No match
2963
2964/(\d++)(\w)/I
2965Capturing subpattern count = 2
2966No options
2967No first char
2968No need char
2969    12345a
2970 0: 12345a
2971 1: 12345
2972 2: a
2973    *** Failers
2974No match
2975    12345+
2976No match
2977
2978/a++b/I
2979Capturing subpattern count = 0
2980No options
2981First char = 'a'
2982Need char = 'b'
2983    aaab
2984 0: aaab
2985
2986/(a++b)/I
2987Capturing subpattern count = 1
2988No options
2989First char = 'a'
2990Need char = 'b'
2991    aaab
2992 0: aaab
2993 1: aaab
2994
2995/(a++)b/I
2996Capturing subpattern count = 1
2997No options
2998First char = 'a'
2999Need char = 'b'
3000    aaab
3001 0: aaab
3002 1: aaa
3003
3004/([^()]++|\([^()]*\))+/I
3005Capturing subpattern count = 1
3006No options
3007No first char
3008No need char
3009    ((abc(ade)ufh()()x
3010 0: abc(ade)ufh()()x
3011 1: x
3012
3013/\(([^()]++|\([^()]+\))+\)/I
3014Capturing subpattern count = 1
3015No options
3016First char = '('
3017Need char = ')'
3018    (abc)
3019 0: (abc)
3020 1: abc
3021    (abc(def)xyz)
3022 0: (abc(def)xyz)
3023 1: xyz
3024    *** Failers
3025No match
3026    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3027No 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------------------------------------------------------------------
3050Capturing subpattern count = 1
3051No options
3052First char = 'a'
3053Need char = 'c'
3054
3055/a+?+/I
3056Failed: nothing to repeat at offset 3
3057
3058/a{2,3}?+b/I
3059Failed: nothing to repeat at offset 7
3060
3061/(?U)a+?+/I
3062Failed: nothing to repeat at offset 7
3063
3064/a{2,3}?+b/IU
3065Failed: 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------------------------------------------------------------------
3076Capturing subpattern count = 0
3077No options
3078First char = 'x'
3079Need 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------------------------------------------------------------------
3092Capturing subpattern count = 0
3093Options: ungreedy
3094First char = 'x'
3095Need 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------------------------------------------------------------------
3120Capturing subpattern count = 5
3121Options: anchored
3122No first char
3123No need char
3124
3125/^x(?U)a+b/DZ
3126------------------------------------------------------------------
3127        Bra
3128        ^
3129        x
3130        a++
3131        b
3132        Ket
3133        End
3134------------------------------------------------------------------
3135Capturing subpattern count = 0
3136Options: anchored
3137No first char
3138Need 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------------------------------------------------------------------
3152Capturing subpattern count = 1
3153Options: anchored
3154No first char
3155Need char = 'b'
3156
3157/[.x.]/I
3158Failed: POSIX collating elements are not supported at offset 0
3159
3160/[=x=]/I
3161Failed: POSIX collating elements are not supported at offset 0
3162
3163/[:x:]/I
3164Failed: POSIX named classes are supported only within a class at offset 0
3165
3166/\l/I
3167Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3168
3169/\L/I
3170Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3171
3172/\N{name}/I
3173Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3174
3175/\u/I
3176Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3177
3178/\U/I
3179Failed: 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
3186Failed: missing terminating ] for character class at offset 1
3187
3188/[a-/I
3189Failed: missing terminating ] for character class at offset 3
3190
3191/[[:space:]/I
3192Failed: missing terminating ] for character class at offset 10
3193
3194/[\s]/IDZ
3195------------------------------------------------------------------
3196        Bra
3197        [\x09-\x0d ]
3198        Ket
3199        End
3200------------------------------------------------------------------
3201Capturing subpattern count = 0
3202No options
3203No first char
3204No need char
3205
3206/[[:space:]]/IDZ
3207------------------------------------------------------------------
3208        Bra
3209        [\x09-\x0d ]
3210        Ket
3211        End
3212------------------------------------------------------------------
3213Capturing subpattern count = 0
3214No options
3215No first char
3216No need char
3217
3218/[[:space:]abcde]/IDZ
3219------------------------------------------------------------------
3220        Bra
3221        [\x09-\x0d a-e]
3222        Ket
3223        End
3224------------------------------------------------------------------
3225Capturing subpattern count = 0
3226No options
3227No first char
3228No need char
3229
3230/< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3231Capturing subpattern count = 0
3232Options: extended
3233First char = '<'
3234Need 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
3248No match
3249    <abc
3250No 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------------------------------------------------------------------
3260Capturing subpattern count = 0
3261Max lookbehind = 1
3262No options
3263First char = '8'
3264Need 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------------------------------------------------------------------
3274Capturing subpattern count = 0
3275Max lookbehind = 1
3276No options
3277First char = '$'
3278Need char = 'X'
3279
3280/(.*)\d+\1/I
3281Capturing subpattern count = 1
3282Max back reference = 1
3283No options
3284No first char
3285No need char
3286
3287/(.*)\d+/I
3288Capturing subpattern count = 1
3289No options
3290First char at start or follows newline
3291No need char
3292
3293/(.*)\d+\1/Is
3294Capturing subpattern count = 1
3295Max back reference = 1
3296Options: dotall
3297No first char
3298No need char
3299
3300/(.*)\d+/Is
3301Capturing subpattern count = 1
3302Options: anchored dotall
3303No first char
3304No need char
3305
3306/(.*(xyz))\d+\2/I
3307Capturing subpattern count = 2
3308Max back reference = 2
3309No options
3310First char at start or follows newline
3311Need char = 'z'
3312
3313/((.*))\d+\1/I
3314Capturing subpattern count = 2
3315Max back reference = 1
3316No options
3317No first char
3318No need char
3319    abc123bc
3320 0: bc123bc
3321 1: bc
3322 2: bc
3323
3324/a[b]/I
3325Capturing subpattern count = 0
3326No options
3327First char = 'a'
3328Need char = 'b'
3329
3330/(?=a).*/I
3331Capturing subpattern count = 0
3332May match empty string
3333No options
3334First char = 'a'
3335No need char
3336
3337/(?=abc).xyz/IiI
3338Capturing subpattern count = 0
3339Options: caseless
3340First char = 'a' (caseless)
3341Need char = 'z' (caseless)
3342
3343/(?=abc)(?i).xyz/I
3344Capturing subpattern count = 0
3345No options
3346First char = 'a'
3347Need char = 'z' (caseless)
3348
3349/(?=a)(?=b)/I
3350Capturing subpattern count = 0
3351May match empty string
3352No options
3353First char = 'a'
3354No need char
3355
3356/(?=.)a/I
3357Capturing subpattern count = 0
3358No options
3359First char = 'a'
3360No need char
3361
3362/((?=abcda)a)/I
3363Capturing subpattern count = 1
3364No options
3365First char = 'a'
3366Need char = 'a'
3367
3368/((?=abcda)ab)/I
3369Capturing subpattern count = 1
3370No options
3371First char = 'a'
3372Need char = 'b'
3373
3374/()a/I
3375Capturing subpattern count = 1
3376No options
3377No first char
3378Need char = 'a'
3379
3380/(?(1)ab|ac)(.)/I
3381Capturing subpattern count = 1
3382No options
3383First char = 'a'
3384No need char
3385
3386/(?(1)abz|acz)(.)/I
3387Capturing subpattern count = 1
3388No options
3389First char = 'a'
3390Need char = 'z'
3391
3392/(?(1)abz)(.)/I
3393Capturing subpattern count = 1
3394No options
3395No first char
3396No need char
3397
3398/(?(1)abz)(1)23/I
3399Capturing subpattern count = 1
3400No options
3401No first char
3402Need char = '3'
3403
3404/(a)+/I
3405Capturing subpattern count = 1
3406No options
3407First char = 'a'
3408No need char
3409
3410/(a){2,3}/I
3411Capturing subpattern count = 1
3412No options
3413First char = 'a'
3414Need char = 'a'
3415
3416/(a)*/I
3417Capturing subpattern count = 1
3418May match empty string
3419No options
3420No first char
3421No need char
3422
3423/[a]/I
3424Capturing subpattern count = 0
3425No options
3426First char = 'a'
3427No need char
3428
3429/[ab]/I
3430Capturing subpattern count = 0
3431No options
3432No first char
3433No need char
3434
3435/[ab]/IS
3436Capturing subpattern count = 0
3437No options
3438No first char
3439No need char
3440Subject length lower bound = 1
3441Starting chars: a b
3442
3443/[^a]/I
3444Capturing subpattern count = 0
3445No options
3446No first char
3447No need char
3448
3449/\d456/I
3450Capturing subpattern count = 0
3451No options
3452No first char
3453Need char = '6'
3454
3455/\d456/IS
3456Capturing subpattern count = 0
3457No options
3458No first char
3459Need char = '6'
3460Subject length lower bound = 4
3461Starting chars: 0 1 2 3 4 5 6 7 8 9
3462
3463/a^b/I
3464Capturing subpattern count = 0
3465No options
3466First char = 'a'
3467Need char = 'b'
3468
3469/^a/Im
3470Capturing subpattern count = 0
3471Options: multiline
3472First char at start or follows newline
3473Need char = 'a'
3474  abcde
3475 0: a
3476  xy\nabc
3477 0: a
3478  *** Failers
3479No match
3480  xyabc
3481No match
3482
3483/c|abc/I
3484Capturing subpattern count = 0
3485No options
3486No first char
3487Need char = 'c'
3488
3489/(?i)[ab]/IS
3490Capturing subpattern count = 0
3491Options: caseless
3492No first char
3493No need char
3494Subject length lower bound = 1
3495Starting chars: A B a b
3496
3497/[ab](?i)cd/IS
3498Capturing subpattern count = 0
3499No options
3500No first char
3501Need char = 'd' (caseless)
3502Subject length lower bound = 3
3503Starting chars: a b
3504
3505/abc(?C)def/I
3506Capturing subpattern count = 0
3507No options
3508First char = 'a'
3509Need char = 'f'
3510    abcdef
3511--->abcdef
3512  0 ^  ^       d
3513 0: abcdef
3514    1234abcdef
3515--->1234abcdef
3516  0     ^  ^       d
3517 0: abcdef
3518    *** Failers
3519No match
3520    abcxyz
3521No match
3522    abcxyzf
3523--->abcxyzf
3524  0 ^  ^        d
3525No match
3526
3527/abc(?C)de(?C1)f/I
3528Capturing subpattern count = 0
3529No options
3530First char = 'a'
3531Need char = 'f'
3532    123abcdef
3533--->123abcdef
3534  0    ^  ^       d
3535  1    ^    ^     f
3536 0: abcdef
3537
3538/(?C1)\dabc(?C2)def/IS
3539Capturing subpattern count = 0
3540No options
3541No first char
3542Need char = 'f'
3543Subject length lower bound = 7
3544Starting 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
3554No match
3555    abcdef
3556No match
3557
3558/(?C1)\dabc(?C2)def/ISS
3559Capturing subpattern count = 0
3560No options
3561No first char
3562Need 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
3572No match
3573    abcdef
3574--->abcdef
3575  1 ^          \d
3576  1  ^         \d
3577  1   ^        \d
3578  1    ^       \d
3579  1     ^      \d
3580  1      ^     \d
3581No match
3582
3583/(?C255)ab/I
3584Capturing subpattern count = 0
3585No options
3586First char = 'a'
3587Need char = 'b'
3588
3589/(?C256)ab/I
3590Failed: number after (?C is > 255 at offset 6
3591
3592/(?Cab)xx/I
3593Failed: closing ) for (?C expected at offset 3
3594
3595/(?C12vr)x/I
3596Failed: closing ) for (?C expected at offset 5
3597
3598/abc(?C)def/I
3599Capturing subpattern count = 0
3600No options
3601First char = 'a'
3602Need char = 'f'
3603    *** Failers
3604No match
3605    \x83\x0\x61bcdef
3606--->\x83\x00abcdef
3607  0         ^  ^       d
3608 0: abcdef
3609
3610/(abc)(?C)de(?C1)f/I
3611Capturing subpattern count = 1
3612No options
3613First char = 'a'
3614Need char = 'f'
3615    123abcdef
3616--->123abcdef
3617  0    ^  ^       d
3618  1    ^    ^     f
3619 0: abcdef
3620 1: abc
3621    123abcdef\C+
3622Callout 0: last capture = 1
3623 0: <unset>
3624 1: abc
3625--->123abcdef
3626       ^  ^       d
3627Callout 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
3638No match
3639    123abcdef\C!1
3640--->123abcdef
3641  0    ^  ^       d
3642  1    ^    ^     f
3643No match
3644
3645/(?C0)(abc(?C1))*/I
3646Capturing subpattern count = 1
3647May match empty string
3648No options
3649No first char
3650No 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
3680Capturing subpattern count = 1
3681May match empty string
3682No options
3683No first char
3684No need char
3685    123\C+
3686Callout 0: last capture = -1
3687 0: <unset>
3688--->123
3689    ^  ^    )
3690 0: 123
3691 1: 123
3692    123456\C+
3693Callout 0: last capture = -1
3694 0: <unset>
3695--->123456
3696    ^  ^       )
3697Callout 0: last capture = 1
3698 0: <unset>
3699 1: 123
3700--->123456
3701    ^     ^    )
3702 0: 123456
3703 1: 456
3704    123456789\C+
3705Callout 0: last capture = -1
3706 0: <unset>
3707--->123456789
3708    ^  ^          )
3709Callout 0: last capture = 1
3710 0: <unset>
3711 1: 123
3712--->123456789
3713    ^     ^       )
3714Callout 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
3723Capturing subpattern count = 2
3724No options
3725First char = 'x'
3726No need char
3727    xyzabc\C+
3728Callout 0: last capture = 2
3729 0: <unset>
3730 1: <unset>
3731 2: xyz
3732--->xyzabc
3733    ^  ^       p
3734Callout 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
3742Capturing subpattern count = 3
3743No options
3744First char = 'X'
3745Need char = 'x'
3746    Xxyzabc\C+
3747Callout 0: last capture = 3
3748 0: <unset>
3749 1: X
3750 2: <unset>
3751 3: xyz
3752--->Xxyzabc
3753    ^   ^       p
3754Callout 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
3764Capturing subpattern count = 1
3765No options
3766First char = 'a'
3767Need char = 'f'
3768    abcdef\C+
3769Callout 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
3778Capturing subpattern count = 1
3779No options
3780First char = 'a'
3781Need char = 'z'
3782    abcxyz\C+
3783Callout 1: last capture = 1
3784 0: <unset>
3785 1: abc
3786--->abcxyz
3787    ^  ^       d
3788Callout 2: last capture = -1
3789 0: <unset>
3790--->abcxyz
3791    ^          a
3792 0: abcxyz
3793
3794/(?<=(abc)(?C))xyz/I
3795Capturing subpattern count = 1
3796Max lookbehind = 3
3797No options
3798First char = 'x'
3799Need char = 'z'
3800   abcxyz\C+
3801Callout 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
3810Capturing subpattern count = 2
3811No options
3812First char = 'a'
3813Need char = 'b'
3814    abbbbbccc\C*1
3815--->abbbbbccc
3816  1 ^        ^
3817Callout data = 1
3818No match
3819
3820/a(b+?)(c*?)(?C1)/I
3821Capturing subpattern count = 2
3822No options
3823First char = 'a'
3824Need char = 'b'
3825    abbbbbccc\C*1
3826--->abbbbbccc
3827  1 ^ ^
3828Callout data = 1
3829  1 ^  ^
3830Callout data = 1
3831  1 ^   ^
3832Callout data = 1
3833  1 ^    ^
3834Callout data = 1
3835  1 ^     ^
3836Callout data = 1
3837  1 ^      ^
3838Callout data = 1
3839  1 ^       ^
3840Callout data = 1
3841  1 ^        ^
3842Callout data = 1
3843No match
3844
3845/(?C)abc/I
3846Capturing subpattern count = 0
3847No options
3848First char = 'a'
3849Need char = 'c'
3850
3851/(?C)^abc/I
3852Capturing subpattern count = 0
3853Options: anchored
3854No first char
3855No need char
3856
3857/(?C)a|b/IS
3858Capturing subpattern count = 0
3859No options
3860No first char
3861No need char
3862Subject length lower bound = 1
3863Starting chars: a b
3864
3865/(?R)/I
3866Failed: recursive call could loop indefinitely at offset 3
3867
3868/(a|(?R))/I
3869Failed: recursive call could loop indefinitely at offset 6
3870
3871/(ab|(bc|(de|(?R))))/I
3872Failed: recursive call could loop indefinitely at offset 15
3873
3874/x(ab|(bc|(de|(?R))))/I
3875Capturing subpattern count = 3
3876No options
3877First char = 'x'
3878No 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
3902No match
3903    xyab
3904No match
3905
3906/(ab|(bc|(de|(?1))))/I
3907Failed: recursive call could loop indefinitely at offset 15
3908
3909/x(ab|(bc|(de|(?1)x)x)x)/I
3910Failed: recursive call could loop indefinitely at offset 16
3911
3912/^([^()]|\((?1)*\))*$/I
3913Capturing subpattern count = 1
3914May match empty string
3915Options: anchored
3916No first char
3917No 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)
3928No match
3929    a(b(c)d
3930No match
3931
3932/^>abc>([^()]|\((?1)*\))*<xyz<$/I
3933Capturing subpattern count = 1
3934Options: anchored
3935No first char
3936Need 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------------------------------------------------------------------
3958Capturing subpattern count = 1
3959No options
3960First char = 'a'
3961Need 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------------------------------------------------------------------
3976Capturing subpattern count = 1
3977No options
3978First char = 'a'
3979Need char = 'b'
3980
3981/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3982Capturing subpattern count = 2
3983Options: anchored
3984No first char
3985No 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
3997No match
3998    ((2+2)*-3)-7)
3999No match
4000
4001/^(x(y|(?1){2})z)/I
4002Capturing subpattern count = 2
4003Options: anchored
4004No first char
4005No 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
4015No match
4016    xxyzz
4017No match
4018    xxyzxyzxyzz
4019No match
4020
4021/((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4022Capturing subpattern count = 2
4023Options: extended
4024First char = '<'
4025Need 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
4051No match
4052    <abc
4053No match
4054
4055/(?1)/I
4056Failed: reference to non-existent subpattern at offset 3
4057
4058/((?2)(abc)/I
4059Failed: missing ) at offset 10
4060
4061/^(abc)def(?1)/I
4062Capturing subpattern count = 1
4063Options: anchored
4064No first char
4065No need char
4066    abcdefabc
4067 0: abcdefabc
4068 1: abc
4069
4070/^(a|b|c)=(?1)+/I
4071Capturing subpattern count = 1
4072Options: anchored
4073No first char
4074No 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
4086Capturing subpattern count = 2
4087Options: anchored
4088No first char
4089No 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------------------------------------------------------------------
4119Capturing subpattern count = 2
4120Named capturing subpatterns:
4121  longername2   2
4122  name1         1
4123No options
4124First char = 'a'
4125Need 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------------------------------------------------------------------
4153Capturing subpattern count = 3
4154Named capturing subpatterns:
4155  a   3
4156  c   1
4157  d   2
4158No options
4159First char = 'a'
4160Need 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------------------------------------------------------------------
4178Capturing subpattern count = 1
4179Max back reference = 1
4180Named capturing subpatterns:
4181  a   1
4182No options
4183First char = 'a'
4184Need 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
4187Capturing subpattern count = 4
4188Max back reference = 4
4189Named capturing subpatterns:
4190  four    4
4191  one     1
4192  three   3
4193  two     2
4194May match empty string
4195Options: anchored caseless
4196No first char
4197No 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
4221No match
4222    The quick brown fox
4223No match
4224
4225/((?(R)a|b))\1(?1)?/I
4226Capturing subpattern count = 1
4227Max back reference = 1
4228No options
4229No first char
4230No need char
4231  bb
4232 0: bb
4233 1: b
4234  bbaa
4235 0: bba
4236 1: b
4237
4238/(.*)a/Is
4239Capturing subpattern count = 1
4240Options: anchored dotall
4241No first char
4242Need char = 'a'
4243
4244/(.*)a\1/Is
4245Capturing subpattern count = 1
4246Max back reference = 1
4247Options: dotall
4248No first char
4249Need char = 'a'
4250
4251/(.*)a(b)\2/Is
4252Capturing subpattern count = 2
4253Max back reference = 2
4254Options: anchored dotall
4255No first char
4256Need char = 'b'
4257
4258/((.*)a|(.*)b)z/Is
4259Capturing subpattern count = 3
4260Options: anchored dotall
4261No first char
4262Need char = 'z'
4263
4264/((.*)a|(.*)b)z\1/Is
4265Capturing subpattern count = 3
4266Max back reference = 1
4267Options: dotall
4268No first char
4269Need char = 'z'
4270
4271/((.*)a|(.*)b)z\2/Is
4272Capturing subpattern count = 3
4273Max back reference = 2
4274Options: dotall
4275No first char
4276Need char = 'z'
4277
4278/((.*)a|(.*)b)z\3/Is
4279Capturing subpattern count = 3
4280Max back reference = 3
4281Options: dotall
4282No first char
4283Need char = 'z'
4284
4285/((.*)a|^(.*)b)z\3/Is
4286Capturing subpattern count = 3
4287Max back reference = 3
4288Options: anchored dotall
4289No first char
4290Need char = 'z'
4291
4292/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4293Capturing subpattern count = 31
4294May match empty string
4295Options: anchored dotall
4296No first char
4297No need char
4298
4299/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4300Capturing subpattern count = 31
4301Max back reference = 31
4302May match empty string
4303Options: dotall
4304No first char
4305No need char
4306
4307/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4308Capturing subpattern count = 32
4309Max back reference = 32
4310May match empty string
4311Options: dotall
4312No first char
4313No 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------------------------------------------------------------------
4327Capturing subpattern count = 0
4328Options: no_auto_capture
4329First char = 'a'
4330Need 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------------------------------------------------------------------
4346Capturing subpattern count = 1
4347Named capturing subpatterns:
4348  one   1
4349Options: no_auto_capture
4350First char = 'a'
4351Need 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------------------------------------------------------------------
4368Capturing subpattern count = 1
4369Named capturing subpatterns:
4370  named   1
4371Options: no_auto_capture
4372First char = 'a'
4373Need char = 'c'
4374
4375/(a+)*zz/I
4376Capturing subpattern count = 1
4377No options
4378No first char
4379Need char = 'z'
4380  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4381Minimum match() limit = 8
4382Minimum match() recursion limit = 6
4383 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4384 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4385  aaaaaaaaaaaaaz\M
4386Minimum match() limit = 32768
4387Minimum match() recursion limit = 29
4388No match
4389
4390/(aaa(?C1)bbb|ab)/I
4391Capturing subpattern count = 1
4392No options
4393First char = 'a'
4394Need 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
4408Callout data = 1
4409 0: ab
4410 1: ab
4411   aaabbb\C*-1
4412--->aaabbb
4413  1 ^  ^       b
4414Callout data = -1
4415No match
4416
4417/ab(?P<one>cd)ef(?P<two>gh)/I
4418Capturing subpattern count = 2
4419Named capturing subpatterns:
4420  one   1
4421  two   2
4422No options
4423First char = 'a'
4424Need 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
4442no parentheses with name "three"
4443 0: abcdefgh
4444 1: cd
4445 2: gh
4446copy 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------------------------------------------------------------------
4458Capturing subpattern count = 2
4459Named capturing subpatterns:
4460  Tes    1
4461  Test   2
4462May match empty string
4463No options
4464No first char
4465No 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------------------------------------------------------------------
4477Capturing subpattern count = 2
4478Named capturing subpatterns:
4479  Tes    2
4480  Test   1
4481May match empty string
4482No options
4483No first char
4484No need char
4485
4486/(?P<Z>zz)(?P<A>aa)/I
4487Capturing subpattern count = 2
4488Named capturing subpatterns:
4489  A   2
4490  Z   1
4491No options
4492First char = 'z'
4493Need 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
4506Failed: two named subpatterns have the same name at offset 15
4507
4508/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4509Failed: two named subpatterns have the same name at offset 30
4510
4511"\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4512Capturing subpattern count = 3
4513Named capturing subpatterns:
4514  elem   2
4515No options
4516First char = '['
4517Need 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
4524No match
4525    []
4526No match
4527
4528"\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4529Capturing subpattern count = 3
4530Named capturing subpatterns:
4531  elem   2
4532No options
4533First char = '['
4534Need 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------------------------------------------------------------------
4558Capturing subpattern count = 2
4559May match empty string
4560No options
4561No first char
4562No 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------------------------------------------------------------------
4579Capturing subpattern count = 2
4580May match empty string
4581No options
4582No first char
4583No 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------------------------------------------------------------------
4611Capturing subpattern count = 2
4612May match empty string
4613No options
4614No first char
4615No need char
4616
4617/[ab]{1}+/DZ
4618------------------------------------------------------------------
4619        Bra
4620        [ab]{1,1}+
4621        Ket
4622        End
4623------------------------------------------------------------------
4624Capturing subpattern count = 0
4625No options
4626No first char
4627No need char
4628
4629/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4630Capturing subpattern count = 3
4631Options: caseless
4632No first char
4633Need 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
4639Capturing subpattern count = 3
4640Options: caseless
4641No first char
4642Need char = 'g' (caseless)
4643Subject length lower bound = 8
4644No 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------------------------------------------------------------------
4658Capturing subpattern count = 0
4659No options
4660No first char
4661Need char = 'b'
4662Subject length lower bound = 1
4663No 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------------------------------------------------------------------
4679Capturing subpattern count = 1
4680No options
4681No first char
4682Need char = 'c'
4683Subject length lower bound = 1
4684No 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------------------------------------------------------------------
4697Capturing subpattern count = 0
4698No options
4699First char = 'a'
4700Need 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------------------------------------------------------------------
4719Capturing subpattern count = 0
4720Options:
4721First char = 'a'
4722Need 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
4739No 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------------------------------------------------------------------
4752Capturing subpattern count = 0
4753Options:
4754No first char
4755Need char = 'b'
4756Subject length lower bound = 1
4757Starting 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------------------------------------------------------------------
4796Capturing subpattern count = 0
4797Options:
4798No first char
4799Need 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------------------------------------------------------------------
4840Capturing subpattern count = 0
4841Options:
4842First char = 'a'
4843Need 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
4866No 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------------------------------------------------------------------
4895Capturing subpattern count = 1
4896Options:
4897No first char
4898Need char = 'x'
4899Subject length lower bound = 4
4900Starting 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
4925No 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
4942No 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------------------------------------------------------------------
4971Capturing subpattern count = 1
4972Options:
4973No first char
4974Need 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
4999No 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
5034No match
5035
5036/(ab|cd){3,4}/IC
5037Capturing subpattern count = 1
5038Options:
5039No first char
5040No 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------------------------------------------------------------------
5129Capturing subpattern count = 1
5130Options:
5131No first char
5132No need char
5133Subject length lower bound = 2
5134Starting 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
5149No 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------------------------------------------------------------------
5180Capturing subpattern count = 1
5181Options:
5182No first char
5183No 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
5324No 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------------------------------------------------------------------
5406Capturing subpattern count = 1
5407Options:
5408No first char
5409Need 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
5437Capturing subpattern count = 0
5438Max lookbehind = 1
5439May match empty string
5440No options
5441No first char
5442No need char
5443  ab cd\>1
5444 0:  cd
5445
5446/\b.*/Is
5447Capturing subpattern count = 0
5448Max lookbehind = 1
5449May match empty string
5450Options: dotall
5451No first char
5452No need char
5453  ab cd\>1
5454 0:  cd
5455
5456/(?!.bcd).*/I
5457Capturing subpattern count = 0
5458May match empty string
5459No options
5460No first char
5461No need char
5462  Xbcd12345
5463 0: bcd12345
5464
5465/abcde/I
5466Capturing subpattern count = 0
5467No options
5468First char = 'a'
5469Need char = 'e'
5470    ab\P
5471Partial match: ab
5472    abc\P
5473Partial match: abc
5474    abcd\P
5475Partial match: abcd
5476    abcde\P
5477 0: abcde
5478    the quick brown abc\P
5479Partial match: abc
5480    ** Failers\P
5481No match
5482    the quick brown abxyz fox\P
5483No match
5484
5485"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
5486Capturing subpattern count = 3
5487Options: anchored
5488No first char
5489Need 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
5504Partial match: 1
5505    1/2\P
5506Partial match: 1/2
5507    1/2/0\P
5508Partial match: 1/2/0
5509    1/2/04\P
5510 0: 1/2/04
5511 1: 1
5512 2: 2
5513    0\P
5514Partial match: 0
5515    02/\P
5516Partial match: 02/
5517    02/0\P
5518Partial match: 02/0
5519    02/1\P
5520Partial match: 02/1
5521    ** Failers\P
5522No match
5523    \P
5524No match
5525    123\P
5526No match
5527    33/4/04\P
5528No match
5529    3/13/04\P
5530No match
5531    0/1/2003\P
5532No match
5533    0/\P
5534No match
5535    02/0/\P
5536No match
5537    02/13\P
5538No match
5539
5540/0{0,2}ABC/I
5541Capturing subpattern count = 0
5542No options
5543No first char
5544Need char = 'C'
5545
5546/\d{3,}ABC/I
5547Capturing subpattern count = 0
5548No options
5549No first char
5550Need char = 'C'
5551
5552/\d*ABC/I
5553Capturing subpattern count = 0
5554No options
5555No first char
5556Need char = 'C'
5557
5558/[abc]+DE/I
5559Capturing subpattern count = 0
5560No options
5561No first char
5562Need char = 'E'
5563
5564/[abc]?123/I
5565Capturing subpattern count = 0
5566No options
5567No first char
5568Need char = '3'
5569    123\P
5570 0: 123
5571    a\P
5572Partial match: a
5573    b\P
5574Partial match: b
5575    c\P
5576Partial match: c
5577    c12\P
5578Partial match: c12
5579    c123\P
5580 0: c123
5581
5582/^(?:\d){3,5}X/I
5583Capturing subpattern count = 0
5584Options: anchored
5585No first char
5586Need char = 'X'
5587    1\P
5588Partial match: 1
5589    123\P
5590Partial match: 123
5591    123X
5592 0: 123X
5593    1234\P
5594Partial match: 1234
5595    1234X
5596 0: 1234X
5597    12345\P
5598Partial match: 12345
5599    12345X
5600 0: 12345X
5601    *** Failers
5602No match
5603    1X
5604No match
5605    123456\P
5606No match
5607
5608/abc/IS>testsavedregex
5609Capturing subpattern count = 0
5610No options
5611First char = 'a'
5612Need char = 'c'
5613Subject length lower bound = 3
5614No starting char list
5615Compiled pattern written to testsavedregex
5616Study data written to testsavedregex
5617<testsavedregex
5618Compiled pattern loaded from testsavedregex
5619Study data loaded from testsavedregex
5620    abc
5621 0: abc
5622    ** Failers
5623No match
5624    bca
5625No match
5626
5627/abc/ISS>testsavedregex
5628Capturing subpattern count = 0
5629No options
5630First char = 'a'
5631Need char = 'c'
5632Compiled pattern written to testsavedregex
5633<testsavedregex
5634Compiled pattern loaded from testsavedregex
5635No study data
5636    abc
5637 0: abc
5638    ** Failers
5639No match
5640    bca
5641No match
5642
5643/abc/IFS>testsavedregex
5644Capturing subpattern count = 0
5645No options
5646First char = 'a'
5647Need char = 'c'
5648Subject length lower bound = 3
5649No starting char list
5650Compiled pattern written to testsavedregex
5651Study data written to testsavedregex
5652<testsavedregex
5653Compiled pattern (byte-inverted) loaded from testsavedregex
5654Study data loaded from testsavedregex
5655    abc
5656 0: abc
5657    ** Failers
5658No match
5659    bca
5660No match
5661
5662/abc/IFSS>testsavedregex
5663Capturing subpattern count = 0
5664No options
5665First char = 'a'
5666Need char = 'c'
5667Compiled pattern written to testsavedregex
5668<testsavedregex
5669Compiled pattern (byte-inverted) loaded from testsavedregex
5670No study data
5671    abc
5672 0: abc
5673    ** Failers
5674No match
5675    bca
5676No match
5677
5678/(a|b)/IS>testsavedregex
5679Capturing subpattern count = 1
5680No options
5681No first char
5682No need char
5683Subject length lower bound = 1
5684Starting chars: a b
5685Compiled pattern written to testsavedregex
5686Study data written to testsavedregex
5687<testsavedregex
5688Compiled pattern loaded from testsavedregex
5689Study data loaded from testsavedregex
5690    abc
5691 0: a
5692 1: a
5693    ** Failers
5694 0: a
5695 1: a
5696    def
5697No match
5698
5699/(a|b)/ISS>testsavedregex
5700Capturing subpattern count = 1
5701No options
5702No first char
5703No need char
5704Compiled pattern written to testsavedregex
5705<testsavedregex
5706Compiled pattern loaded from testsavedregex
5707No study data
5708    abc
5709 0: a
5710 1: a
5711    ** Failers
5712 0: a
5713 1: a
5714    def
5715No match
5716
5717/(a|b)/ISF>testsavedregex
5718Capturing subpattern count = 1
5719No options
5720No first char
5721No need char
5722Subject length lower bound = 1
5723Starting chars: a b
5724Compiled pattern written to testsavedregex
5725Study data written to testsavedregex
5726<testsavedregex
5727Compiled pattern (byte-inverted) loaded from testsavedregex
5728Study data loaded from testsavedregex
5729    abc
5730 0: a
5731 1: a
5732    ** Failers
5733 0: a
5734 1: a
5735    def
5736No match
5737
5738/(a|b)/ISSF>testsavedregex
5739Capturing subpattern count = 1
5740No options
5741No first char
5742No need char
5743Compiled pattern written to testsavedregex
5744<testsavedregex
5745Compiled pattern (byte-inverted) loaded from testsavedregex
5746No study data
5747    abc
5748 0: a
5749 1: a
5750    ** Failers
5751 0: a
5752 1: a
5753    def
5754No match
5755
5756~<(\w+)/?>(.)*</(\1)>~smgI
5757Capturing subpattern count = 3
5758Max back reference = 1
5759Options: multiline dotall
5760First char = '<'
5761Need 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
5769Capturing subpattern count = 0
5770Options: anchored
5771No first char
5772No need char
5773
5774/line\nbreak/I
5775Capturing subpattern count = 0
5776Contains explicit CR or LF match
5777No options
5778First char = 'l'
5779Need 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
5786Capturing subpattern count = 0
5787Contains explicit CR or LF match
5788Options: firstline
5789First char = 'l'
5790Need char = 'k'
5791    this is a line\nbreak
5792 0: line\x0abreak
5793    ** Failers
5794No match
5795    line one\nthis is a line\nbreak in the second line
5796No match
5797
5798/line\nbreak/Imf
5799Capturing subpattern count = 0
5800Contains explicit CR or LF match
5801Options: multiline firstline
5802First char = 'l'
5803Need char = 'k'
5804    this is a line\nbreak
5805 0: line\x0abreak
5806    ** Failers
5807No match
5808    line one\nthis is a line\nbreak in the second line
5809No match
5810
5811/(?i)(?-i)AbCd/I
5812Capturing subpattern count = 0
5813No options
5814First char = 'A'
5815Need char = 'd'
5816    AbCd
5817 0: AbCd
5818    ** Failers
5819No match
5820    abcd
5821No match
5822
5823/a{11111111111111111111}/I
5824Failed: number too big in {} quantifier at offset 8
5825
5826/(){64294967295}/I
5827Failed: number too big in {} quantifier at offset 9
5828
5829/(){2,4294967295}/I
5830Failed: 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
5833Capturing subpattern count = 1
5834Max back reference = 1
5835No options
5836First char = 'a' (caseless)
5837Need 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
5843Capturing subpattern count = 12
5844Max back reference = 11
5845Named 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
5858No options
5859First char = 'a'
5860Need 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
587210: j
587311: k
587412: l
5875
5876"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
5877Capturing subpattern count = 12
5878Max back reference = 11
5879No options
5880First char = 'a'
5881Need 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
589310: j
589411: k
589512: 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
5898Capturing subpattern count = 101
5899Named 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
6001No options
6002First char = 'a'
6003Need char = 'a'
6004    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6005Matched, 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
601610: a
601711: a
601812: a
601913: a
602014: 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
6023Capturing subpattern count = 101
6024No options
6025First char = 'a'
6026Need char = 'a'
6027    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6028Matched, 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
603910: a
604011: a
604112: a
604213: a
604314: a
6044
6045/[^()]*(?:\((?R)\)[^()]*)*/I
6046Capturing subpattern count = 0
6047May match empty string
6048No options
6049No first char
6050No 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
6059Capturing subpattern count = 0
6060May match empty string
6061No options
6062No first char
6063No need char
6064    (this(and)that
6065 0:
6066    (this(and)that)
6067 0: (this(and)that)
6068
6069/[^()]*(?:\((?R)\))*[^()]*/I
6070Capturing subpattern count = 0
6071May match empty string
6072No options
6073No first char
6074No need char
6075    (this(and)that
6076 0:
6077    (this(and)that)
6078 0: (this(and)that)
6079
6080/(?:\((?R)\))*[^()]*/I
6081Capturing subpattern count = 0
6082May match empty string
6083No options
6084No first char
6085No need char
6086    (this(and)that
6087 0:
6088    (this(and)that)
6089 0:
6090    ((this))
6091 0: ((this))
6092
6093/(?:\((?R)\))|[^()]*/I
6094Capturing subpattern count = 0
6095May match empty string
6096No options
6097No first char
6098No 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
6109Capturing subpattern count = 0
6110No options
6111First char = \xff
6112No need char
6113
6114/^((?P<A>a1)|(?P<A>a2)b)/I
6115Failed: two named subpatterns have the same name at offset 17
6116
6117/^((?P<A>a1)|(?P<A>a2)b)/IJ
6118Capturing subpattern count = 3
6119Named capturing subpatterns:
6120  A   2
6121  A   3
6122Options: anchored dupnames
6123No first char
6124No 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
6137No match
6138    a1b\CZ\CA
6139no parentheses with name "Z"
6140 0: a1
6141 1: a1
6142 2: a1
6143copy substring Z failed -7
6144  C a1 (2) A
6145
6146/(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6147Capturing subpattern count = 3
6148Named capturing subpatterns:
6149  a   1
6150  a   3
6151  b   2
6152May match empty string
6153Options: dupnames
6154No first char
6155No need char
6156
6157/^(?P<A>a)(?P<A>b)/IJ
6158Capturing subpattern count = 2
6159Named capturing subpatterns:
6160  A   1
6161  A   2
6162Options: anchored dupnames
6163No first char
6164No 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
6172Capturing subpattern count = 2
6173Named capturing subpatterns:
6174  A   1
6175  A   2
6176Options: dupnames
6177No first char
6178No 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
6186copy substring A failed -7
6187
6188/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6189Capturing subpattern count = 4
6190Named capturing subpatterns:
6191  A   1
6192  A   2
6193  A   3
6194  A   4
6195Options: dupnames
6196No first char
6197No 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
6207Capturing subpattern count = 3
6208Named capturing subpatterns:
6209  A   2
6210  A   3
6211Options: anchored dupnames
6212No first char
6213No 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
6226No match
6227    a1b\GZ\GA
6228no parentheses with name "Z"
6229 0: a1
6230 1: a1
6231 2: a1
6232get substring Z failed -7
6233  G a1 (2) A
6234
6235/^(?P<A>a)(?P<A>b)/IJ
6236Capturing subpattern count = 2
6237Named capturing subpatterns:
6238  A   1
6239  A   2
6240Options: anchored dupnames
6241No first char
6242No 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
6250Capturing subpattern count = 2
6251Named capturing subpatterns:
6252  A   1
6253  A   2
6254Options: dupnames
6255No first char
6256No 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
6264get substring A failed -7
6265
6266/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6267Capturing subpattern count = 4
6268Named capturing subpatterns:
6269  A   1
6270  A   2
6271  A   3
6272  A   4
6273Options: dupnames
6274No first char
6275No 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
6285Capturing subpattern count = 3
6286Named capturing subpatterns:
6287  A   2
6288  A   3
6289Options: anchored dupnames
6290Duplicate name status changes
6291No first char
6292No 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
6306Failed: 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
6309set in the pattern's options; consequently pcre_get_named_substring() produces
6310a random value. /Ix
6311Capturing subpattern count = 1
6312Options: extended
6313First char = 'I'
6314Need char = 'e'
6315
6316/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
6317Capturing subpattern count = 4
6318Named capturing subpatterns:
6319  A   1
6320  B   2
6321  B   3
6322  C   4
6323Options: anchored
6324Duplicate name status changes
6325No first char
6326No 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
6338Capturing subpattern count = 1
6339Named capturing subpatterns:
6340  A   1
6341Options: anchored
6342No first char
6343No need char
6344    aabc
6345 0: aa
6346 1: a
6347    bc
6348 0: b
6349    ** Failers
6350No match
6351    abc
6352No match
6353
6354/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
6355Capturing subpattern count = 1
6356Named capturing subpatterns:
6357  ZZ   1
6358No options
6359No first char
6360Need char = 'X'
6361    bXaX
6362 0: bXaX
6363 1: X
6364
6365/(?:(?(2y)a|b)(X))+/I
6366Failed: malformed number or name after (?( at offset 7
6367
6368/(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6369Failed: reference to non-existent subpattern at offset 9
6370
6371/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
6372Capturing subpattern count = 1
6373Named capturing subpatterns:
6374  ZZ   1
6375No options
6376No first char
6377Need char = 'X'
6378    bbXaaX
6379 0: bbXaaX
6380 1: X
6381
6382/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
6383Capturing subpattern count = 1
6384Named capturing subpatterns:
6385  ZZ   1
6386No options
6387No first char
6388Need char = 'X'
6389    (b)\\Xa\\X
6390 0: (b)\Xa\X
6391 1: X
6392
6393/(?P<ABC/I
6394Failed: syntax error in subpattern name (missing terminator) at offset 7
6395
6396/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6397Capturing subpattern count = 1
6398Max back reference = 1
6399Named capturing subpatterns:
6400  A   1
6401No options
6402No first char
6403No 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
6412Capturing subpattern count = 10
6413Max back reference = 10
6414Named capturing subpatterns:
6415  A  10
6416No options
6417No first char
6418No 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:
643010: Y
6431
6432/\s*,\s*/IS
6433Capturing subpattern count = 0
6434No options
6435No first char
6436Need char = ','
6437Subject length lower bound = 1
6438Starting 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
6445Capturing subpattern count = 0
6446Options: multiline
6447First char at start or follows newline
6448Need 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
6460No match
6461    xyz\nabc\<cr>
6462No match
6463    xyz\r\nabc\<cr>
6464No match
6465    xyz\nabc\<crlf>
6466No match
6467    xyz\rabc\<crlf>
6468No match
6469    xyz\rabc\<lf>
6470No match
6471
6472/abc$/Im<lf>
6473Capturing subpattern count = 0
6474Options: multiline
6475Forced newline sequence: LF
6476First char = 'a'
6477Need 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
6493No match
6494    xyzabc\r
6495No match
6496    xyzabc\rpqr
6497No match
6498    xyzabc\r\n
6499No match
6500    xyzabc\r\npqr
6501No match
6502
6503/^abc/Im<cr>
6504Capturing subpattern count = 0
6505Options: multiline
6506Forced newline sequence: CR
6507First char at start or follows newline
6508Need char = 'c'
6509    xyz\rabcdef
6510 0: abc
6511    xyz\nabcdef\<lf>
6512 0: abc
6513    ** Failers
6514No match
6515    xyz\nabcdef
6516No match
6517
6518/^abc/Im<lf>
6519Capturing subpattern count = 0
6520Options: multiline
6521Forced newline sequence: LF
6522First char at start or follows newline
6523Need char = 'c'
6524    xyz\nabcdef
6525 0: abc
6526    xyz\rabcdef\<cr>
6527 0: abc
6528    ** Failers
6529No match
6530    xyz\rabcdef
6531No match
6532
6533/^abc/Im<crlf>
6534Capturing subpattern count = 0
6535Options: multiline
6536Forced newline sequence: CRLF
6537First char at start or follows newline
6538Need char = 'c'
6539    xyz\r\nabcdef
6540 0: abc
6541    xyz\rabcdef\<cr>
6542 0: abc
6543    ** Failers
6544No match
6545    xyz\rabcdef
6546No match
6547
6548/^abc/Im<bad>
6549Unknown modifier at: <bad>
6550
6551
6552/abc/I
6553Capturing subpattern count = 0
6554No options
6555First char = 'a'
6556Need char = 'c'
6557    xyz\rabc\<bad>
6558Unknown escape sequence at: <bad>
6559    abc
6560 0: abc
6561
6562/.*/I<lf>
6563Capturing subpattern count = 0
6564May match empty string
6565Options:
6566Forced newline sequence: LF
6567First char at start or follows newline
6568No 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
6589Capturing subpattern count = 2
6590Options: dotall
6591No first char
6592Need 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
6605Capturing subpattern count = 1
6606May match empty string
6607No options
6608No first char
6609No need char
6610   /* this is a C style comment */\M
6611Minimum match() limit = 120
6612Minimum 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
6617Capturing subpattern count = 1
6618Named capturing subpatterns:
6619  B   1
6620No options
6621No first char
6622Need char = '.'
6623
6624/()()()()()()()()()()()()()()()()()()()()
6625 ()()()()()()()()()()()()()()()()()()()()
6626 ()()()()()()()()()()()()()()()()()()()()
6627 ()()()()()()()()()()()()()()()()()()()()
6628 ()()()()()()()()()()()()()()()()()()()()
6629 (.(.))/Ix
6630Capturing subpattern count = 102
6631Options: extended
6632No first char
6633No 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:
664510:
664611:
664712:
664813:
664914:
665015:
665116:
665217:
665318:
665419:
665520:
665621:
665722:
665823:
665924:
666025:
666126:
666227:
666328:
666429:
666530:
666631:
666732:
666833:
666934:
667035:
667136:
667237:
667338:
667439:
667540:
667641:
667742:
667843:
667944:
668045:
668146:
668247:
668348:
668449:
668550:
668651:
668752:
668853:
668954:
669055:
669156:
669257:
669358:
669459:
669560:
669661:
669762:
669863:
669964:
670065:
670166:
670267:
670368:
670469:
670570:
670671:
670772:
670873:
670974:
671075:
671176:
671277:
671378:
671479:
671580:
671681:
671782:
671883:
671984:
672085:
672186:
672287:
672388:
672489:
672590:
672691:
672792:
672893:
672994:
673095:
673196:
673297:
673398:
673499:
6735100:
6736101: XY
6737102: Y
6738
6739/(a*b|(?i:c*(?-i)d))/IS
6740Capturing subpattern count = 1
6741No options
6742No first char
6743No need char
6744Subject length lower bound = 1
6745Starting chars: C a b c d
6746
6747/()[ab]xyz/IS
6748Capturing subpattern count = 1
6749No options
6750No first char
6751Need char = 'z'
6752Subject length lower bound = 4
6753Starting chars: a b
6754
6755/(|)[ab]xyz/IS
6756Capturing subpattern count = 1
6757No options
6758No first char
6759Need char = 'z'
6760Subject length lower bound = 4
6761Starting chars: a b
6762
6763/(|c)[ab]xyz/IS
6764Capturing subpattern count = 1
6765No options
6766No first char
6767Need char = 'z'
6768Subject length lower bound = 4
6769Starting chars: a b c
6770
6771/(|c?)[ab]xyz/IS
6772Capturing subpattern count = 1
6773No options
6774No first char
6775Need char = 'z'
6776Subject length lower bound = 4
6777Starting chars: a b c
6778
6779/(d?|c?)[ab]xyz/IS
6780Capturing subpattern count = 1
6781No options
6782No first char
6783Need char = 'z'
6784Subject length lower bound = 4
6785Starting chars: a b c d
6786
6787/(d?|c)[ab]xyz/IS
6788Capturing subpattern count = 1
6789No options
6790No first char
6791Need char = 'z'
6792Subject length lower bound = 4
6793Starting 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------------------------------------------------------------------
6805Capturing subpattern count = 0
6806Options: anchored
6807No first char
6808Need char = 'b'
6809
6810/^a*+b\d/DZ
6811------------------------------------------------------------------
6812        Bra
6813        ^
6814        a*+
6815        b
6816        \d
6817        Ket
6818        End
6819------------------------------------------------------------------
6820Capturing subpattern count = 0
6821Options: anchored
6822No first char
6823Need char = 'b'
6824
6825/^a*?b\d/DZ
6826------------------------------------------------------------------
6827        Bra
6828        ^
6829        a*+
6830        b
6831        \d
6832        Ket
6833        End
6834------------------------------------------------------------------
6835Capturing subpattern count = 0
6836Options: anchored
6837No first char
6838Need char = 'b'
6839
6840/^a+A\d/DZ
6841------------------------------------------------------------------
6842        Bra
6843        ^
6844        a++
6845        A
6846        \d
6847        Ket
6848        End
6849------------------------------------------------------------------
6850Capturing subpattern count = 0
6851Options: anchored
6852No first char
6853Need char = 'A'
6854    aaaA5
6855 0: aaaA5
6856    ** Failers
6857No match
6858    aaaa5
6859No match
6860
6861/^a*A\d/IiDZ
6862------------------------------------------------------------------
6863        Bra
6864        ^
6865     /i a*
6866     /i A
6867        \d
6868        Ket
6869        End
6870------------------------------------------------------------------
6871Capturing subpattern count = 0
6872Options: anchored caseless
6873No first char
6874Need char = 'A' (caseless)
6875    aaaA5
6876 0: aaaA5
6877    aaaa5
6878 0: aaaa5
6879
6880/(a*|b*)[cd]/IS
6881Capturing subpattern count = 1
6882No options
6883No first char
6884No need char
6885Subject length lower bound = 1
6886Starting chars: a b c d
6887
6888/(a+|b*)[cd]/IS
6889Capturing subpattern count = 1
6890No options
6891No first char
6892No need char
6893Subject length lower bound = 1
6894Starting chars: a b c d
6895
6896/(a*|b+)[cd]/IS
6897Capturing subpattern count = 1
6898No options
6899No first char
6900No need char
6901Subject length lower bound = 1
6902Starting chars: a b c d
6903
6904/(a+|b+)[cd]/IS
6905Capturing subpattern count = 1
6906No options
6907No first char
6908No need char
6909Subject length lower bound = 2
6910Starting chars: a b
6911
6912/((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6913 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6914 (((
6915 a
6916 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6917 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6918 )))
6919/Ix
6920Capturing subpattern count = 203
6921Options: extended
6922First char = 'a'
6923No need char
6924  large nest
6925Matched, 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
693610: a
693711: a
693812: a
693913: a
694014: 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
7537Capturing subpattern count = 2
7538Named capturing subpatterns:
7539  abc   1
7540  xyz   2
7541No options
7542First char = 'x'
7543Need 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
7552Capturing subpattern count = 2
7553Named capturing subpatterns:
7554  abc   1
7555  xyz   2
7556No options
7557First char = 'x'
7558Need 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
7567Failed: syntax error in subpattern name (missing terminator) at offset 6
7568
7569/(?<abc>x)(?'xyz>y)/I
7570Failed: syntax error in subpattern name (missing terminator) at offset 15
7571
7572/(?P'abc'x)(?P<xyz>y)/I
7573Failed: 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
7583No match
7584    aXaX
7585No match
7586    aXbX
7587No match
7588
7589/^(?P>abc)(?<abcd>xxx)/
7590Failed: 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
7630No match
7631    axby
7632No 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
7651No match
7652    x
7653No 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
7766Capturing subpattern count = 4
7767Max back reference = 4
7768Named capturing subpatterns:
7769  four    4
7770  one     1
7771  three   3
7772  two     2
7773May match empty string
7774Options: anchored caseless
7775No first char
7776No 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
7800No match
7801    The quick brown fox
7802No match
7803
7804/(?=(\w+))\1:/I
7805Capturing subpattern count = 1
7806Max back reference = 1
7807No options
7808No first char
7809Need char = ':'
7810    abcd:
7811 0: abcd:
7812 1: abcd
7813
7814/(?=(?'abc'\w+))\k<abc>:/I
7815Capturing subpattern count = 1
7816Max back reference = 1
7817Named capturing subpatterns:
7818  abc   1
7819No options
7820No first char
7821Need 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
7832No match
7833    addd
7834No match
7835    adbb
7836No 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
7848No match
7849    bddd
7850No match
7851
7852/(?(<bc))/
7853Failed: malformed number or name after (?( at offset 6
7854
7855/(?(''))/
7856Failed: assertion expected after (?( at offset 4
7857
7858/(?('R')stuff)/
7859Failed: 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
7874Failed: reference to non-existent subpattern at offset 29
7875
7876/^(?(DEFINE) abc | xyz ) /x
7877Failed: DEFINE group contains more than one branch at offset 22
7878
7879/(?(DEFINE) abc) xyz/xI
7880Capturing subpattern count = 0
7881Options: extended
7882First char = 'x'
7883Need char = 'z'
7884
7885/(a|)*\d/
7886  \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7887No match
7888  \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
7889Matched, 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
7899No match
7900    a\nb
7901No match
7902    a\nb\<any>
7903No match
7904    a\rb\<cr>
7905No match
7906    a\rb\<any>
7907No match
7908    a\x85b\<any>
7909No match
7910    a\rb\<anycrlf>
7911No 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>
7936Failed: 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
7952No match
7953    a\n\rb
7954No 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
7994No match
7995    ab
7996No 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
8014No match
8015    a\n\n\n\rb
8016No match
8017    a\r
8018No match
8019
8020/^a[\R]b/<bsr_unicode>
8021    aRb
8022 0: aRb
8023    ** Failers
8024No match
8025    a\nb
8026No match
8027
8028/(?&abc)X(?<abc>P)/I
8029Capturing subpattern count = 1
8030Named capturing subpatterns:
8031  abc   1
8032No options
8033No first char
8034Need char = 'P'
8035    abcPXP123
8036 0: PXP
8037 1: P
8038
8039/(?1)X(?<abc>P)/I
8040Capturing subpattern count = 1
8041Named capturing subpatterns:
8042  abc   1
8043No options
8044No first char
8045Need 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
8078No match
8079
8080/(abc)(?:(?i)(?1))/
8081   defabcabcxyz
8082 0: abcabc
8083 1: abc
8084   DEFabcABCXYZ
8085No match
8086
8087/^(a)\g-2/
8088Failed: reference to non-existent subpattern at offset 7
8089
8090/^(a)\g/
8091Failed: a numbered reference must not be zero at offset 5
8092
8093/^(a)\g{0}/
8094Failed: a numbered reference must not be zero at offset 8
8095
8096/^(a)\g{3/
8097Failed: \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}/
8100Failed: reference to non-existent subpattern at offset 9
8101
8102/^a.b/<lf>
8103    a\rb
8104 0: a\x0db
8105    *** Failers
8106No match
8107    a\nb
8108No match
8109
8110/.+foo/
8111    afoo
8112 0: afoo
8113    ** Failers
8114No match
8115    \r\nfoo
8116No match
8117    \nfoo
8118No match
8119
8120/.+foo/<crlf>
8121    afoo
8122 0: afoo
8123    \nfoo
8124 0: \x0afoo
8125    ** Failers
8126No match
8127    \r\nfoo
8128No match
8129
8130/.+foo/<any>
8131    afoo
8132 0: afoo
8133    ** Failers
8134No match
8135    \nfoo
8136No match
8137    \r\nfoo
8138No 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
8154No match
8155    abc\r\nxyz
8156No 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
8190No match
8191    XABC\B
8192No 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
8225No match
8226    xyabc
8227No match
8228
8229/x(?-0)y/
8230Failed: a numbered reference must not be zero at offset 5
8231
8232/x(?-1)y/
8233Failed: reference to non-existent subpattern at offset 5
8234
8235/x(?+0)y/
8236Failed: a numbered reference must not be zero at offset 5
8237
8238/x(?+1)y/
8239Failed: 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
8264No match
8265    abcY
8266No 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
8295No match
8296    XabcXabc
8297No match
8298
8299/(?(-1)a)/BZ
8300Failed: 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
8316Failed: 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
8346No match
8347    tom-bon
8348No match
8349
8350/\g{A/
8351Failed: 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
8453No match
8454    XXXX
8455No 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/
8639Failed: missing terminating ] for character class at offset 7
8640
8641/[\Q\E]AAA/
8642Failed: missing terminating ] for character class at offset 9
8643
8644/[^\E]AAA/
8645Failed: missing terminating ] for character class at offset 8
8646
8647/[^\Q\E]AAA/
8648Failed: missing terminating ] for character class at offset 10
8649
8650/[\E^]AAA/
8651Failed: missing terminating ] for character class at offset 8
8652
8653/[\Q\E^]AAA/
8654Failed: 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)
8691No 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)
8714No 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)
8740No 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)
8752No 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)
8771No 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)
8797No match
8798
8799/a(*MARK)b/
8800Failed: (*MARK) must have an argument at offset 7
8801
8802/(?i:A{1,}\6666666666)/
8803Failed: number is too big at offset 19
8804
8805/\g6666666666/
8806Failed: 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[/
8817Failed: reference to non-existent subpattern at offset 3
8818
8819/.+A/<crlf>
8820    \r\nA
8821No 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/
8837Failed: (*VERB) not recognized or malformed at offset 5
8838
8839/(*CR)a.b/
8840    a\nb
8841 0: a\x0ab
8842    ** Failers
8843No match
8844    a\rb
8845No match
8846
8847/(*CR)a.b/<lf>
8848    a\nb
8849 0: a\x0ab
8850    ** Failers
8851No match
8852    a\rb
8853No match
8854
8855/(*LF)a.b/<CRLF>
8856    a\rb
8857 0: a\x0db
8858    ** Failers
8859No match
8860    a\nb
8861No match
8862
8863/(*CRLF)a.b/
8864    a\rb
8865 0: a\x0db
8866    a\nb
8867 0: a\x0ab
8868    ** Failers
8869No match
8870    a\r\nb
8871No match
8872
8873/(*ANYCRLF)a.b/<CR>
8874    ** Failers
8875No match
8876    a\rb
8877No match
8878    a\nb
8879No match
8880    a\r\nb
8881No match
8882
8883/(*ANY)a.b/<cr>
8884    ** Failers
8885No match
8886    a\rb
8887No match
8888    a\nb
8889No match
8890    a\r\nb
8891No match
8892    a\x85b
8893No 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>
8917Capturing subpattern count = 0
8918Options: bsr_anycrlf
8919First char = 'a'
8920Need 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
8928No match
8929    a\x85b
8930No match
8931    a\x0bb
8932No match
8933
8934/a\Rb/I<bsr_unicode>
8935Capturing subpattern count = 0
8936Options: bsr_unicode
8937First char = 'a'
8938Need 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
8950No match
8951    a\x85b\<bsr_anycrlf>
8952No match
8953    a\x0bb\<bsr_anycrlf>
8954No match
8955
8956/a\R?b/I<bsr_anycrlf>
8957Capturing subpattern count = 0
8958Options: bsr_anycrlf
8959First char = 'a'
8960Need 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
8968No match
8969    a\x85b
8970No match
8971    a\x0bb
8972No match
8973
8974/a\R?b/I<bsr_unicode>
8975Capturing subpattern count = 0
8976Options: bsr_unicode
8977First char = 'a'
8978Need 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
8990No match
8991    a\x85b\<bsr_anycrlf>
8992No match
8993    a\x0bb\<bsr_anycrlf>
8994No match
8995
8996/a\R{2,4}b/I<bsr_anycrlf>
8997Capturing subpattern count = 0
8998Options: bsr_anycrlf
8999First char = 'a'
9000Need 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
9008No match
9009    a\x85\85b
9010No match
9011    a\x0b\0bb
9012No match
9013
9014/a\R{2,4}b/I<bsr_unicode>
9015Capturing subpattern count = 0
9016Options: bsr_unicode
9017First char = 'a'
9018Need 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
9026No match
9027    a\x0b\0bb
9028No match
9029    ** Failers
9030No match
9031    a\r\r\r\r\rb
9032No match
9033    a\x85\85b\<bsr_anycrlf>
9034No match
9035    a\x0b\0bb\<bsr_anycrlf>
9036No match
9037
9038/(*BSR_ANYCRLF)a\Rb/I
9039Capturing subpattern count = 0
9040Options: bsr_anycrlf
9041First char = 'a'
9042Need char = 'b'
9043    a\nb
9044 0: a\x0ab
9045    a\rb
9046 0: a\x0db
9047
9048/(*BSR_UNICODE)a\Rb/I
9049Capturing subpattern count = 0
9050Options: bsr_unicode
9051First char = 'a'
9052Need char = 'b'
9053    a\x85b
9054 0: a\x85b
9055
9056/(*BSR_ANYCRLF)(*CRLF)a\Rb/I
9057Capturing subpattern count = 0
9058Options: bsr_anycrlf
9059Forced newline sequence: CRLF
9060First char = 'a'
9061Need char = 'b'
9062    a\nb
9063 0: a\x0ab
9064    a\rb
9065 0: a\x0db
9066
9067/(*CRLF)(*BSR_UNICODE)a\Rb/I
9068Capturing subpattern count = 0
9069Options: bsr_unicode
9070Forced newline sequence: CRLF
9071First char = 'a'
9072Need char = 'b'
9073    a\x85b
9074 0: a\x85b
9075
9076/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
9077Capturing subpattern count = 0
9078Options: bsr_anycrlf
9079Forced newline sequence: CR
9080First char = 'a'
9081Need char = 'b'
9082
9083/(?<a>)(?&)/
9084Failed: subpattern name expected at offset 9
9085
9086/(?<abc>)(?&a)/
9087Failed: reference to non-existent subpattern at offset 12
9088
9089/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
9090Failed: reference to non-existent subpattern at offset 32
9091
9092/(?+-a)/
9093Failed: digit expected after (?+ at offset 3
9094
9095/(?-+a)/
9096Failed: unrecognized character after (? or (?- at offset 3
9097
9098/(?(-1))/
9099Failed: reference to non-existent subpattern at offset 6
9100
9101/(?(+10))/
9102Failed: reference to non-existent subpattern at offset 7
9103
9104/(?(10))/
9105Failed: reference to non-existent subpattern at offset 6
9106
9107/(?(+2))()()/
9108
9109/(?(2))()()/
9110
9111/\k''/
9112Failed: subpattern name expected at offset 3
9113
9114/\k<>/
9115Failed: subpattern name expected at offset 3
9116
9117/\k{}/
9118Failed: subpattern name expected at offset 3
9119
9120/\k/
9121Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9122
9123/\kabc/
9124Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9125
9126/(?P=)/
9127Failed: subpattern name expected at offset 4
9128
9129/(?P>)/
9130Failed: subpattern name expected at offset 4
9131
9132/(?!\w)(?R)/
9133Failed: recursive call could loop indefinitely at offset 9
9134
9135/(?=\w)(?R)/
9136Failed: recursive call could loop indefinitely at offset 9
9137
9138/(?<!\w)(?R)/
9139Failed: recursive call could loop indefinitely at offset 10
9140
9141/(?<=\w)(?R)/
9142Failed: recursive call could loop indefinitely at offset 10
9143
9144/[[:foo:]]/
9145Failed: unknown POSIX class name at offset 3
9146
9147/[[:1234:]]/
9148Failed: unknown POSIX class name at offset 3
9149
9150/[[:f\oo:]]/
9151Failed: unknown POSIX class name at offset 3
9152
9153/[[: :]]/
9154Failed: unknown POSIX class name at offset 3
9155
9156/[[:...:]]/
9157Failed: unknown POSIX class name at offset 3
9158
9159/[[:l\ower:]]/
9160Failed: unknown POSIX class name at offset 3
9161
9162/[[:abc\:]]/
9163Failed: unknown POSIX class name at offset 3
9164
9165/[abc[:x\]pqr:]]/
9166Failed: unknown POSIX class name at offset 6
9167
9168/[[:a\dz:]]/
9169Failed: unknown POSIX class name at offset 3
9170
9171/(^(a|b\g<-1'c))/
9172Failed: \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
9180No match
9181    xxz
9182No match
9183
9184/(\3)(\1)(a)/
9185    cat
9186No 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>
9200Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9201
9202/(?2)[]a()b](abc)/
9203Failed: reference to non-existent subpattern at offset 3
9204
9205/(?2)[^]a()b](abc)/
9206Failed: reference to non-existent subpattern at offset 3
9207
9208/(?1)[]a()b](abc)/
9209    abcbabc
9210 0: abcbabc
9211 1: abc
9212    ** Failers
9213No match
9214    abcXabc
9215No match
9216
9217/(?1)[^]a()b](abc)/
9218    abcXabc
9219 0: abcXabc
9220 1: abc
9221    ** Failers
9222No match
9223    abcbabc
9224No 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)/
9233Failed: reference to non-existent subpattern at offset 4
9234
9235/(?&N)[]a(?<N>)](abc)/
9236Failed: reference to non-existent subpattern at offset 4
9237
9238/a[]b/
9239Failed: missing terminating ] for character class at offset 4
9240
9241/a[^]b/
9242Failed: missing terminating ] for character class at offset 5
9243
9244/a[]b/<JS>
9245    ** Failers
9246No match
9247    ab
9248No match
9249
9250/a[]+b/<JS>
9251    ** Failers
9252No match
9253    ab
9254No match
9255
9256/a[]*+b/<JS>
9257    ** Failers
9258No match
9259    ab
9260No match
9261
9262/a[^]b/<JS>
9263    aXb
9264 0: aXb
9265    a\nb
9266 0: a\x0ab
9267    ** Failers
9268No match
9269    ab
9270No match
9271
9272/a[^]+b/<JS>
9273    aXb
9274 0: aXb
9275    a\nX\nXb
9276 0: a\x0aX\x0aXb
9277    ** Failers
9278No match
9279    ab
9280No 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/
9306Failed: nothing to repeat at offset 8
9307
9308/(abc|pqr|123){0}[xyz]/SI
9309Capturing subpattern count = 1
9310No options
9311No first char
9312No need char
9313Subject length lower bound = 1
9314Starting chars: x y z
9315
9316/(?(?=.*b)b|^)/CI
9317Capturing subpattern count = 0
9318May match empty string
9319Options:
9320No first char
9321No 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
9358Capturing subpattern count = 0
9359No options
9360No first char
9361No need char
9362
9363/(?(?=.*b).*b|^d)/I
9364Capturing subpattern count = 0
9365No options
9366First char at start or follows newline
9367No 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
9395No match
9396  abc
9397No match
9398  abc\Y
9399--->abc
9400 +0 ^       x
9401 +0  ^      x
9402 +0   ^     x
9403 +0    ^    x
9404No match
9405  abcxypqr
9406No 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
9420No 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/
9491Failed: 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
9504Partial match: X
9505    Xa\P
9506Partial match: Xa
9507    Xaa\P
9508Partial match: Xaa
9509    Xaaa\P
9510Partial match: Xaaa
9511    Xaaaa\P
9512Partial match: Xaaaa
9513
9514/Xa{2,4}?b/
9515    X\P
9516Partial match: X
9517    Xa\P
9518Partial match: Xa
9519    Xaa\P
9520Partial match: Xaa
9521    Xaaa\P
9522Partial match: Xaaa
9523    Xaaaa\P
9524Partial match: Xaaaa
9525
9526/Xa{2,4}+b/
9527    X\P
9528Partial match: X
9529    Xa\P
9530Partial match: Xa
9531    Xaa\P
9532Partial match: Xaa
9533    Xaaa\P
9534Partial match: Xaaa
9535    Xaaaa\P
9536Partial match: Xaaaa
9537
9538/X\d{2,4}b/
9539    X\P
9540Partial match: X
9541    X3\P
9542Partial match: X3
9543    X33\P
9544Partial match: X33
9545    X333\P
9546Partial match: X333
9547    X3333\P
9548Partial match: X3333
9549
9550/X\d{2,4}?b/
9551    X\P
9552Partial match: X
9553    X3\P
9554Partial match: X3
9555    X33\P
9556Partial match: X33
9557    X333\P
9558Partial match: X333
9559    X3333\P
9560Partial match: X3333
9561
9562/X\d{2,4}+b/
9563    X\P
9564Partial match: X
9565    X3\P
9566Partial match: X3
9567    X33\P
9568Partial match: X33
9569    X333\P
9570Partial match: X333
9571    X3333\P
9572Partial match: X3333
9573
9574/X\D{2,4}b/
9575    X\P
9576Partial match: X
9577    Xa\P
9578Partial match: Xa
9579    Xaa\P
9580Partial match: Xaa
9581    Xaaa\P
9582Partial match: Xaaa
9583    Xaaaa\P
9584Partial match: Xaaaa
9585
9586/X\D{2,4}?b/
9587    X\P
9588Partial match: X
9589    Xa\P
9590Partial match: Xa
9591    Xaa\P
9592Partial match: Xaa
9593    Xaaa\P
9594Partial match: Xaaa
9595    Xaaaa\P
9596Partial match: Xaaaa
9597
9598/X\D{2,4}+b/
9599    X\P
9600Partial match: X
9601    Xa\P
9602Partial match: Xa
9603    Xaa\P
9604Partial match: Xaa
9605    Xaaa\P
9606Partial match: Xaaa
9607    Xaaaa\P
9608Partial match: Xaaaa
9609
9610/X[abc]{2,4}b/
9611    X\P
9612Partial match: X
9613    Xa\P
9614Partial match: Xa
9615    Xaa\P
9616Partial match: Xaa
9617    Xaaa\P
9618Partial match: Xaaa
9619    Xaaaa\P
9620Partial match: Xaaaa
9621
9622/X[abc]{2,4}?b/
9623    X\P
9624Partial match: X
9625    Xa\P
9626Partial match: Xa
9627    Xaa\P
9628Partial match: Xaa
9629    Xaaa\P
9630Partial match: Xaaa
9631    Xaaaa\P
9632Partial match: Xaaaa
9633
9634/X[abc]{2,4}+b/
9635    X\P
9636Partial match: X
9637    Xa\P
9638Partial match: Xa
9639    Xaa\P
9640Partial match: Xaa
9641    Xaaa\P
9642Partial match: Xaaa
9643    Xaaaa\P
9644Partial match: Xaaaa
9645
9646/X[^a]{2,4}b/
9647    X\P
9648Partial match: X
9649    Xz\P
9650Partial match: Xz
9651    Xzz\P
9652Partial match: Xzz
9653    Xzzz\P
9654Partial match: Xzzz
9655    Xzzzz\P
9656Partial match: Xzzzz
9657
9658/X[^a]{2,4}?b/
9659    X\P
9660Partial match: X
9661    Xz\P
9662Partial match: Xz
9663    Xzz\P
9664Partial match: Xzz
9665    Xzzz\P
9666Partial match: Xzzz
9667    Xzzzz\P
9668Partial match: Xzzzz
9669
9670/X[^a]{2,4}+b/
9671    X\P
9672Partial match: X
9673    Xz\P
9674Partial match: Xz
9675    Xzz\P
9676Partial match: Xzz
9677    Xzzz\P
9678Partial match: Xzzz
9679    Xzzzz\P
9680Partial match: Xzzzz
9681
9682/(Y)X\1{2,4}b/
9683    YX\P
9684Partial match: YX
9685    YXY\P
9686Partial match: YXY
9687    YXYY\P
9688Partial match: YXYY
9689    YXYYY\P
9690Partial match: YXYYY
9691    YXYYYY\P
9692Partial match: YXYYYY
9693
9694/(Y)X\1{2,4}?b/
9695    YX\P
9696Partial match: YX
9697    YXY\P
9698Partial match: YXY
9699    YXYY\P
9700Partial match: YXYY
9701    YXYYY\P
9702Partial match: YXYYY
9703    YXYYYY\P
9704Partial match: YXYYYY
9705
9706/(Y)X\1{2,4}+b/
9707    YX\P
9708Partial match: YX
9709    YXY\P
9710Partial match: YXY
9711    YXYY\P
9712Partial match: YXYY
9713    YXYYY\P
9714Partial match: YXYYY
9715    YXYYYY\P
9716Partial match: YXYYYY
9717
9718/\++\KZ|\d+X|9+Y/
9719    ++++123999\P
9720Partial match: 123999
9721    ++++123999Y\P
9722 0: 999Y
9723    ++++Z1234\P
9724 0: Z
9725
9726/Z(*F)/
9727    Z\P
9728No match
9729    ZA\P
9730No match
9731
9732/Z(?!)/
9733    Z\P
9734No match
9735    ZA\P
9736No match
9737
9738/dog(sbody)?/
9739    dogs\P
9740 0: dog
9741    dogs\P\P
9742Partial 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
9760Partial match: dogs
9761
9762/\bthe cat\b/
9763    the cat\P
9764 0: the cat
9765    the cat\P\P
9766Partial 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
9778Partial match: abc12
9779    xyzabc12\P\P
9780Partial match: abc12
9781
9782/(?<=abc)123/
9783    xyzabc123pqr
9784 0: 123
9785    xyzabc12\P
9786Partial match at offset 6: abc12
9787    xyzabc12\P\P
9788Partial match at offset 6: abc12
9789
9790/\babc\b/
9791    +++abc+++
9792 0: abc
9793    +++ab\P
9794Partial match at offset 3: +ab
9795    +++ab\P\P
9796Partial 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
9877No match
9878    abcdef\N
9879No match
9880    xyzabcdef\N
9881No match
9882
9883/^(?:(?=abc)|abc\K)/+
9884    abcdef
9885 0:
9886 0+ abcdef
9887    abcdef\N\N
9888 0:
9889 0+ def
9890    ** Failers
9891No match
9892    abcdef\N
9893No 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
9915No 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
9928No match
9929    xyzabc\N\N
9930No match
9931    xyz\N\N
9932No match
9933    xyz\N
9934No 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
10037No match
10038    XAAX
10039No 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)/
10079Failed: lookbehind assertion is not fixed length at offset 10
10080
10081/(a)(?<=b+(?1))/
10082Failed: lookbehind assertion is not fixed length at offset 13
10083
10084/(a+)(?<=b(?1))/
10085Failed: lookbehind assertion is not fixed length at offset 14
10086
10087/(a(?<=b(?1)))/
10088Failed: lookbehind assertion is not fixed length at offset 13
10089
10090/(?<=b(?1))xyz/
10091Failed: reference to non-existent subpattern at offset 8
10092
10093/(?<=b(?1))xyz(b+)pqrstuvew/
10094Failed: lookbehind assertion is not fixed length at offset 26
10095
10096/(a|bc)\1/SI
10097Capturing subpattern count = 1
10098Max back reference = 1
10099No options
10100No first char
10101No need char
10102Subject length lower bound = 2
10103Starting chars: a b
10104
10105/(a|bc)\1{2,3}/SI
10106Capturing subpattern count = 1
10107Max back reference = 1
10108No options
10109No first char
10110No need char
10111Subject length lower bound = 3
10112Starting chars: a b
10113
10114/(a|bc)(?1)/SI
10115Capturing subpattern count = 1
10116No options
10117No first char
10118No need char
10119Subject length lower bound = 2
10120Starting chars: a b
10121
10122/(a|b\1)(a|b\1)/SI
10123Capturing subpattern count = 2
10124Max back reference = 1
10125No options
10126No first char
10127No need char
10128Subject length lower bound = 2
10129Starting chars: a b
10130
10131/(a|b\1){2}/SI
10132Capturing subpattern count = 1
10133Max back reference = 1
10134No options
10135No first char
10136No need char
10137Subject length lower bound = 2
10138Starting chars: a b
10139
10140/(a|bbbb\1)(a|bbbb\1)/SI
10141Capturing subpattern count = 2
10142Max back reference = 1
10143No options
10144No first char
10145No need char
10146Subject length lower bound = 2
10147Starting chars: a b
10148
10149/(a|bbbb\1){2}/SI
10150Capturing subpattern count = 1
10151Max back reference = 1
10152No options
10153No first char
10154No need char
10155Subject length lower bound = 2
10156Starting 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
10159Capturing subpattern count = 1
10160Options: anchored
10161No first char
10162Need char = ':'
10163Subject length lower bound = 22
10164No 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
10167Capturing subpattern count = 11
10168Options: caseless dotall
10169First char = '<'
10170Need char = '>'
10171Subject length lower bound = 47
10172No starting char list
10173
10174"(?>.*/)foo"SI
10175Capturing subpattern count = 0
10176No options
10177No first char
10178Need char = 'o'
10179Subject length lower bound = 4
10180No starting char list
10181
10182/(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10183Capturing subpattern count = 0
10184Options: extended
10185No first char
10186Need char = '-'
10187Subject length lower bound = 8
10188No starting char list
10189
10190/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10191Capturing subpattern count = 1
10192Options: caseless
10193No first char
10194No need char
10195Subject length lower bound = 1
10196Starting chars: A B C a b c
10197
10198/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10199Capturing subpattern count = 0
10200No options
10201No first char
10202Need char = 'b'
10203Subject length lower bound = 41
10204Starting 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
10211Capturing subpattern count = 3
10212Max back reference = 1
10213Options: caseless extended dotall
10214First char = '<'
10215Need char = '='
10216Subject length lower bound = 9
10217No 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
10228Capturing subpattern count = 1
10229Options: anchored caseless extended
10230No first char
10231Need char = ':'
10232Subject length lower bound = 2
10233No starting char list
10234
10235/(?|(?<a>A)|(?<a>B))/I
10236Capturing subpattern count = 1
10237Named capturing subpatterns:
10238  a   1
10239No options
10240No first char
10241No 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))/
10252Failed: 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
10257Capturing subpattern count = 6
10258Named capturing subpatterns:
10259  apostrophe   2
10260  apostrophe   5
10261  quote        1
10262  quote        4
10263  realquote    3
10264  realquote    6
10265Options: extended dupnames
10266No first char
10267No 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
10282No match
10283    b"11111
10284No match
10285    a"11111
10286No 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------------------------------------------------------------------
10319Capturing subpattern count = 4
10320Named capturing subpatterns:
10321  D   4
10322  D   1
10323Options: anchored extended dupnames
10324No first char
10325No 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
10336No match
10337    abcdY
10338No match
10339    ey
10340No 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------------------------------------------------------------------
10366Capturing subpattern count = 4
10367Named capturing subpatterns:
10368  A   1
10369  A   4
10370Options: extended dupnames
10371First char = 'a'
10372Need char = 'd'
10373    abcdd
10374 0: abcdd
10375 1: a
10376 2: b
10377 3: c
10378 4: dd
10379    ** Failers
10380No match
10381    abcdde
10382No match
10383
10384/abcd*/
10385    xxxxabcd\P
10386 0: abcd
10387    xxxxabcd\P\P
10388Partial match: abcd
10389
10390/abcd*/i
10391    xxxxabcd\P
10392 0: abcd
10393    xxxxabcd\P\P
10394Partial match: abcd
10395    XXXXABCD\P
10396 0: ABCD
10397    XXXXABCD\P\P
10398Partial match: ABCD
10399
10400/abc\d*/
10401    xxxxabc1\P
10402 0: abc1
10403    xxxxabc1\P\P
10404Partial match: abc1
10405
10406/(a)bc\1*/
10407    xxxxabca\P
10408 0: abca
10409 1: a
10410    xxxxabca\P\P
10411Partial match: abca
10412
10413/abc[de]*/
10414    xxxxabcde\P
10415 0: abcde
10416    xxxxabcde\P\P
10417Partial 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
10437No match
10438    ABX
10439No match
10440    BAXBAD
10441No 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>
10451Capturing subpattern count = 3
10452Max back reference = 3
10453Options:
10454No first char
10455Need char = 'a'
10456Subject length lower bound = 1
10457No starting char list
10458    cat
10459 0: a
10460 1:
10461 2:
10462 3: a
10463
10464/(\3)(\1)(a)/SI
10465Capturing subpattern count = 3
10466Max back reference = 3
10467No options
10468No first char
10469Need char = 'a'
10470Subject length lower bound = 3
10471No starting char list
10472    cat
10473No match
10474
10475/i(?(DEFINE)(?<s>a))/SI
10476Capturing subpattern count = 1
10477Named capturing subpatterns:
10478  s   1
10479No options
10480First char = 'i'
10481No need char
10482Subject length lower bound = 1
10483No starting char list
10484    i
10485 0: i
10486
10487/()i(?(1)a)/SI
10488Capturing subpattern count = 1
10489No options
10490No first char
10491Need char = 'i'
10492Subject length lower bound = 1
10493Starting 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
10515No match
10516    XABX
10517No 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))/
10624Failed: recursive call could loop indefinitely at offset 31
10625
10626/abc(*MARK:)pqr/
10627Failed: (*MARK) must have an argument at offset 10
10628
10629/abc(*:)pqr/
10630Failed: (*MARK) must have an argument at offset 6
10631
10632/abc(*FAIL:123)xyz/
10633Failed: 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
10640No 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
10651No match
10652
10653/--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10654though PCRE does. ---/
10655
10656/^A(*:A)B|^X(*:A)Y/K
10657    ** Failers
10658No match
10659    XAQQ
10660No match, mark = A
10661
10662/--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10663optimizations defeat this. So does the PCRE optimization unless we disable it
10664with \Y. ---/
10665
10666/(*COMMIT)ABC/
10667    ABCDEFG
10668 0: ABC
10669    ** Failers
10670No match
10671    DEFGABC\Y
10672No match
10673
10674/^(ab (c+(*THEN)cd) | xyz)/x
10675    abcccd
10676No match
10677
10678/^(ab (c+(*PRUNE)cd) | xyz)/x
10679    abcccd
10680No match
10681
10682/^(ab (c+(*FAIL)cd) | xyz)/x
10683    abcccd
10684No 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
10720No match
10721    A\nB
10722No match
10723    ACB\n
10724No 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
10741No match
10742    A\nB
10743No match
10744
10745/A\NB/<crlf>
10746    A\nB
10747 0: A\x0aB
10748    A\rB
10749 0: A\x0dB
10750    ** Failers
10751No match
10752    A\r\nB
10753No 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
10863No match
10864
10865/(?<=abc)def/
10866    abc\P\P
10867Partial match at offset 3: abc
10868
10869/abc$/
10870    abc
10871 0: abc
10872    abc\P
10873 0: abc
10874    abc\P\P
10875Partial match: abc
10876
10877/abc$/m
10878    abc
10879 0: abc
10880    abc\n
10881 0: abc
10882    abc\P\P
10883Partial 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
10897Partial match: abc
10898
10899/abc\Z/
10900    abc
10901 0: abc
10902    abc\P
10903 0: abc
10904    abc\P\P
10905Partial match: abc
10906
10907/abc\b/
10908    abc
10909 0: abc
10910    abc\P
10911 0: abc
10912    abc\P\P
10913Partial match: abc
10914
10915/abc\B/
10916    abc
10917No match
10918    abc\P
10919Partial match: abc
10920    abc\P\P
10921Partial 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
10931No match
10932    abc\>4
10933Error -24 (bad offset value)
10934    abc\>-4
10935Error -24 (bad offset value)
10936
10937/^\cģ/
10938Failed: \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
10968Failed: syntax error in subpattern name (missing terminator) at offset 29
10969
10970/(?P<abn>(?P=axn)xxx)/BZ
10971Failed: 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
11059No match
11060    aaaa
11061No match
11062
11063/^(?:a)*+(\w)/S
11064    aaaaX
11065 0: aaaaX
11066 1: X
11067    ** Failers
11068No match
11069    aaaa
11070No match
11071
11072/(a)++1234/SDZ
11073------------------------------------------------------------------
11074        Bra
11075        CBraPos 1
11076        a
11077        KetRpos
11078        1234
11079        Ket
11080        End
11081------------------------------------------------------------------
11082Capturing subpattern count = 1
11083No options
11084First char = 'a'
11085Need char = '4'
11086Subject length lower bound = 5
11087No starting char list
11088
11089/([abc])++1234/SI
11090Capturing subpattern count = 1
11091No options
11092No first char
11093Need char = '4'
11094Subject length lower bound = 5
11095Starting chars: a b c
11096
11097/(?<=(abc)+)X/
11098Failed: lookbehind assertion is not fixed length at offset 10
11099
11100/(^ab)/I
11101Capturing subpattern count = 1
11102Options: anchored
11103No first char
11104No need char
11105
11106/(^ab)++/I
11107Capturing subpattern count = 1
11108Options: anchored
11109No first char
11110No need char
11111
11112/(^ab|^)+/I
11113Capturing subpattern count = 1
11114May match empty string
11115Options: anchored
11116No first char
11117No need char
11118
11119/(^ab|^)++/I
11120Capturing subpattern count = 1
11121May match empty string
11122Options: anchored
11123No first char
11124No need char
11125
11126/(?:^ab)/I
11127Capturing subpattern count = 0
11128Options: anchored
11129No first char
11130No need char
11131
11132/(?:^ab)++/I
11133Capturing subpattern count = 0
11134Options: anchored
11135No first char
11136No need char
11137
11138/(?:^ab|^)+/I
11139Capturing subpattern count = 0
11140May match empty string
11141Options: anchored
11142No first char
11143No need char
11144
11145/(?:^ab|^)++/I
11146Capturing subpattern count = 0
11147May match empty string
11148Options: anchored
11149No first char
11150No need char
11151
11152/(.*ab)/I
11153Capturing subpattern count = 1
11154No options
11155First char at start or follows newline
11156Need char = 'b'
11157
11158/(.*ab)++/I
11159Capturing subpattern count = 1
11160No options
11161First char at start or follows newline
11162Need char = 'b'
11163
11164/(.*ab|.*)+/I
11165Capturing subpattern count = 1
11166May match empty string
11167No options
11168First char at start or follows newline
11169No need char
11170
11171/(.*ab|.*)++/I
11172Capturing subpattern count = 1
11173May match empty string
11174No options
11175First char at start or follows newline
11176No need char
11177
11178/(?:.*ab)/I
11179Capturing subpattern count = 0
11180No options
11181First char at start or follows newline
11182Need char = 'b'
11183
11184/(?:.*ab)++/I
11185Capturing subpattern count = 0
11186No options
11187First char at start or follows newline
11188Need char = 'b'
11189
11190/(?:.*ab|.*)+/I
11191Capturing subpattern count = 0
11192May match empty string
11193No options
11194First char at start or follows newline
11195No need char
11196
11197/(?:.*ab|.*)++/I
11198Capturing subpattern count = 0
11199May match empty string
11200No options
11201First char at start or follows newline
11202No need char
11203
11204/(?=a)[bcd]/I
11205Capturing subpattern count = 0
11206No options
11207First char = 'a'
11208No need char
11209
11210/((?=a))[bcd]/I
11211Capturing subpattern count = 1
11212No options
11213First char = 'a'
11214No need char
11215
11216/((?=a))+[bcd]/I
11217Capturing subpattern count = 1
11218No options
11219First char = 'a'
11220No need char
11221
11222/((?=a))++[bcd]/I
11223Capturing subpattern count = 1
11224No options
11225First char = 'a'
11226No need char
11227
11228/(?=a+)[bcd]/iI
11229Capturing subpattern count = 0
11230Options: caseless
11231First char = 'a' (caseless)
11232No need char
11233
11234/(?=a+?)[bcd]/iI
11235Capturing subpattern count = 0
11236Options: caseless
11237First char = 'a' (caseless)
11238No need char
11239
11240/(?=a++)[bcd]/iI
11241Capturing subpattern count = 0
11242Options: caseless
11243First char = 'a' (caseless)
11244No need char
11245
11246/(?=a{3})[bcd]/iI
11247Capturing subpattern count = 0
11248Options: caseless
11249First char = 'a' (caseless)
11250Need 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
11264No match
11265    b
11266No 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
11276No match
11277
11278/^.*?(?(?=a)a|bc)/
11279    ba
11280 0: ba
11281
11282/^.*?(?(?=a)a(*THEN)b|c)/
11283    ac
11284No match
11285
11286/^.*?(?(?=a)a(*THEN)b)c/
11287    ac
11288No match
11289
11290/^.*?(a(*THEN)b)c/
11291    aabc
11292No 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
11317MK: A
11318    D
11319No match, mark = A
11320
11321/(*:A)A+(*SKIP:A)(B|Z)/KS
11322    AAAC
11323No 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
11343No 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
11364Matched, but too many substrings
11365 0: abc
11366    \O4abc
11367Matched, but too many substrings
11368 0: abc
11369
11370/(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11371Capturing subpattern count = 2
11372No options
11373No first char
11374No need char
11375Subject length lower bound = 1
11376No starting char list
11377
11378/(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11379Capturing subpattern count = 2
11380No options
11381No first char
11382No need char
11383Subject length lower bound = 3
11384Starting chars: a b
11385
11386/(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11387Capturing subpattern count = 2
11388No options
11389No first char
11390No need char
11391Subject length lower bound = 4
11392Starting chars: a b
11393
11394/(abc)(?1)/SI
11395Capturing subpattern count = 1
11396No options
11397First char = 'a'
11398Need char = 'c'
11399Subject length lower bound = 6
11400No starting char list
11401
11402/^(?>a)++/
11403    aa\M
11404Minimum match() limit = 5
11405Minimum match() recursion limit = 2
11406 0: aa
11407    aaaaaaaaa\M
11408Minimum match() limit = 12
11409Minimum match() recursion limit = 2
11410 0: aaaaaaaaa
11411
11412/(a)(?1)++/
11413    aa\M
11414Minimum match() limit = 7
11415Minimum match() recursion limit = 4
11416 0: aa
11417 1: a
11418    aaaaaaaaa\M
11419Minimum match() limit = 21
11420Minimum 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
11451Matched, but too many substrings
11452    bazfooX\O2
11453Matched, but too many substrings
11454 0: fooX
11455    bazfooX\O4
11456Matched, but too many substrings
11457 0: fooX
11458 1: <unset>
11459    bazfooX\O6
11460Matched, but too many substrings
11461 0: fooX
11462 1: foo
11463 2: <unset>
11464    bazfooX\O8
11465Matched, 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
11636Error -26 (nested recursion at the same subject position)
11637
11638/((?(R2)a+|(?1)b))/SS
11639    aaaabcde
11640Error -26 (nested recursion at the same subject position)
11641
11642/(?(R)a*(?1)|((?R))b)/SS
11643    aaaabcde
11644Error -26 (nested recursion at the same subject position)
11645
11646/(a+|(?R)b)/
11647Failed: 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))
11657Latest 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))
11673Latest Mark: A
11674 +9 ^^      d
11675+11 ^^      e
11676+12 ^ ^     (*:B)
11677+17 ^ ^     )
11678Latest 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))
11692Latest Mark: A
11693 +9 ^^           d
11694+11 ^^           e
11695+12 ^ ^          (*:B)
11696+17 ^ ^          )
11697Latest 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
11709No match
11710
11711/\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11712Capturing subpattern count = 0
11713Max lookbehind = 1
11714No options
11715First char = 't'
11716Need char = 't'
11717Subject length lower bound = 18
11718No 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
11721Capturing subpattern count = 0
11722Max lookbehind = 1
11723No options
11724No first char
11725No need char
11726Subject length lower bound = 8
11727Starting chars: < o t u
11728
11729/a(*SKIP)c|b(*ACCEPT)|/+S!I
11730Capturing subpattern count = 0
11731May match empty string
11732No options
11733No first char
11734No need char
11735Subject length lower bound = -1
11736No starting char list
11737    a
11738 0:
11739 0+
11740
11741/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11742Capturing subpattern count = 0
11743No options
11744No first char
11745No need char
11746Subject length lower bound = -1
11747Starting chars: a b x
11748    ax
11749 0: x
11750
11751'a*(*ACCEPT)b'+
11752    \N\N
11753No 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
11762Capturing subpattern count = 0
11763No options
11764No first char
11765No need char
11766    bax
11767 0:
11768 0+ bax
11769
11770/z(*ACCEPT)a/+I
11771Capturing subpattern count = 0
11772No options
11773First char = 'z'
11774No need char
11775    baxzbx
11776 0: z
11777 0+ bx
11778
11779/a(?:.)*?a/ims
11780    \Mabbbbbbbbbbbbbbbbbbbbba
11781Minimum match() limit = 65
11782Minimum match() recursion limit = 2
11783 0: abbbbbbbbbbbbbbbbbbbbba
11784
11785/a(?:.(*THEN))*?a/ims
11786    \Mabbbbbbbbbbbbbbbbbbbbba
11787Minimum match() limit = 86
11788Minimum match() recursion limit = 45
11789 0: abbbbbbbbbbbbbbbbbbbbba
11790
11791/a(?:.(*THEN:ABC))*?a/ims
11792    \Mabbbbbbbbbbbbbbbbbbbbba
11793Minimum match() limit = 86
11794Minimum 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
11817No match
11818    aazz
11819No 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
11834No 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
11865Minimum match() limit = 7
11866Minimum match() recursion limit = 2
11867 0: aabbccddee
11868
11869/^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11870     \Maabbccddee
11871Minimum match() limit = 17
11872Minimum 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
11882Minimum match() limit = 13
11883Minimum 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
11893No match
11894    ax41z
11895No 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
11909No match
11910    au0041z
11911No 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
11921No match
11922    aAz
11923No match
11924
11925/^a\U0041z/<JS>
11926    aU0041z
11927 0: aU0041z
11928    *** Failers
11929No match
11930    aAz
11931No 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/
11971Failed: \N is not supported in a class at offset 3
11972
11973/a[B-\Nc]/
11974Failed: invalid range in character class at offset 5
11975
11976/a[B\Nc]/
11977Failed: \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
11984different behaviour in Perl. Perhaps it disables some optimization; no tag is
11985passed 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
11992MK: A
11993    XXYZ
11994 0: XXY
11995 1: <unset>
11996 2: <unset>
11997 3: X
11998 4: X
11999 5: Y
12000MK: B
12001    ** Failers
12002No match
12003    XAQQ
12004No match, mark = A
12005    XAQQXZZ
12006No match, mark = A
12007    AXQQQ
12008No match, mark = A
12009    AXXQQQ
12010No match, mark = B
12011
12012/-- Perl doesn't give marks for these, though it does if the alternatives are
12013replaced by single letters. --/
12014
12015/(b|q)(*:m)f|a(*:n)w/K
12016    aw
12017 0: aw
12018MK: n
12019    ** Failers
12020No match, mark = n
12021    abc
12022No match, mark = m
12023
12024/(q|b)(*:m)f|a(*:n)w/K
12025    aw
12026 0: aw
12027MK: n
12028    ** Failers
12029No match, mark = n
12030    abc
12031No 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
12037Partial 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:
12046MK: x
12047
12048/(?=(*:x))((*:y)q|)/K+
12049    abc
12050 0:
12051 0+ abc
12052 1:
12053MK: x
12054
12055/(?=(*:x))(?:(*:y)q|)/K+
12056    abc
12057 0:
12058 0+ abc
12059MK: x
12060
12061/(?=(*:x))(?>(*:y)q|)/K+
12062    abc
12063 0:
12064 0+ abc
12065MK: x
12066
12067/(?=a(*:x))(?!a(*:y)c)/K+
12068    ab
12069 0:
12070 0+ ab
12071MK: x
12072
12073/(?=a(*:x))(?=a(*:y)c|)/K+
12074    ab
12075 0:
12076 0+ ab
12077MK: x
12078
12079/(..)\1/
12080    ab\P
12081Partial match: ab
12082    aba\P
12083Partial match: aba
12084    abab\P
12085 0: abab
12086 1: ab
12087
12088/(..)\1/i
12089    ab\P
12090Partial match: ab
12091    abA\P
12092Partial match: abA
12093    aBAb\P
12094 0: aBAb
12095 1: aB
12096
12097/(..)\1{2,}/
12098    ab\P
12099Partial match: ab
12100    aba\P
12101Partial match: aba
12102    abab\P
12103Partial match: abab
12104    ababa\P
12105Partial match: ababa
12106    ababab\P
12107 0: ababab
12108 1: ab
12109    ababab\P\P
12110Partial match: ababab
12111    abababa\P
12112 0: ababab
12113 1: ab
12114    abababa\P\P
12115Partial match: abababa
12116
12117/(..)\1{2,}/i
12118    ab\P
12119Partial match: ab
12120    aBa\P
12121Partial match: aBa
12122    aBAb\P
12123Partial match: aBAb
12124    AbaBA\P
12125Partial match: AbaBA
12126    abABAb\P
12127 0: abABAb
12128 1: ab
12129    aBAbaB\P\P
12130Partial match: aBAbaB
12131    abABabA\P
12132 0: abABab
12133 1: ab
12134    abaBABa\P\P
12135Partial match: abaBABa
12136
12137/(..)\1{2,}?x/i
12138    ab\P
12139Partial match: ab
12140    abA\P
12141Partial match: abA
12142    aBAb\P
12143Partial match: aBAb
12144    abaBA\P
12145Partial match: abaBA
12146    abAbaB\P
12147Partial match: abAbaB
12148    abaBabA\P
12149Partial match: abaBabA
12150    abAbABaBx\P
12151 0: abAbABaBx
12152 1: ab
12153
12154/^(..)\1/
12155    aba\P
12156Partial match: aba
12157
12158/^(..)\1{2,3}x/
12159    aba\P
12160Partial match: aba
12161    ababa\P
12162Partial match: ababa
12163    ababa\P\P
12164Partial 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
12174Partial match: aba
12175    ababa\P
12176Partial match: ababa
12177    ababa\P\P
12178Partial 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
12196Partial match: \x0d
12197
12198/^\R{2,3}x/
12199    \r\P
12200Partial match: \x0d
12201    \r\P\P
12202Partial match: \x0d
12203    \r\r\P
12204Partial match: \x0d\x0d
12205    \r\r\P\P
12206Partial match: \x0d\x0d
12207    \r\r\r\P
12208Partial match: \x0d\x0d\x0d
12209    \r\r\r\P\P
12210Partial 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
12218Partial match: \x0d
12219    \r\P\P
12220Partial match: \x0d
12221    \r\r\P
12222Partial match: \x0d\x0d
12223    \r\r\P\P
12224Partial match: \x0d\x0d
12225    \r\r\r\P
12226Partial match: \x0d\x0d\x0d
12227    \r\r\r\P\P
12228Partial 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
12236Partial match: \x0d
12237    \r\P\P
12238Partial match: \x0d
12239    x
12240 0: x
12241    \rx
12242 0: \x0dx
12243
12244/^\R+x/
12245    \r\P
12246Partial match: \x0d
12247    \r\P\P
12248Partial match: \x0d
12249    \r\n\P
12250Partial match: \x0d\x0a
12251    \r\n\P\P
12252Partial match: \x0d\x0a
12253    \rx
12254 0: \x0dx
12255
12256/^a$/<CRLF>
12257    a\r\P
12258Partial match: a\x0d
12259    a\r\P\P
12260Partial match: a\x0d
12261
12262/^a$/m<CRLF>
12263    a\r\P
12264Partial match: a\x0d
12265    a\r\P\P
12266Partial 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
12273Partial 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
12280Partial match: a\x0d
12281
12282/./<CRLF>
12283    \r\P
12284 0: \x0d
12285    \r\P\P
12286Partial match: \x0d
12287
12288/.{2,3}/<CRLF>
12289    \r\P
12290Partial match: \x0d
12291    \r\P\P
12292Partial match: \x0d
12293    \r\r\P
12294 0: \x0d\x0d
12295    \r\r\P\P
12296Partial match: \x0d\x0d
12297    \r\r\r\P
12298 0: \x0d\x0d\x0d
12299    \r\r\r\P\P
12300Partial match: \x0d\x0d\x0d
12301
12302/.{2,3}?/<CRLF>
12303    \r\P
12304Partial match: \x0d
12305    \r\P\P
12306Partial match: \x0d
12307    \r\r\P
12308 0: \x0d\x0d
12309    \r\r\P\P
12310Partial 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
12318Matched, 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
12322settings of the anchored and startline bits. --/
12323
12324/(?>.*?a)(?<=ba)/I
12325Capturing subpattern count = 0
12326Max lookbehind = 2
12327No options
12328No first char
12329Need char = 'a'
12330
12331/(?:.*?a)(?<=ba)/I
12332Capturing subpattern count = 0
12333Max lookbehind = 2
12334No options
12335First char at start or follows newline
12336Need char = 'a'
12337
12338/.*?a(*PRUNE)b/I
12339Capturing subpattern count = 0
12340No options
12341No first char
12342Need char = 'b'
12343
12344/.*?a(*PRUNE)b/sI
12345Capturing subpattern count = 0
12346Options: dotall
12347No first char
12348Need char = 'b'
12349
12350/^a(*PRUNE)b/sI
12351Capturing subpattern count = 0
12352Options: anchored dotall
12353No first char
12354No need char
12355
12356/.*?a(*SKIP)b/I
12357Capturing subpattern count = 0
12358No options
12359No first char
12360Need char = 'b'
12361
12362/(?>.*?a)b/sI
12363Capturing subpattern count = 0
12364Options: dotall
12365No first char
12366Need char = 'b'
12367
12368/(?>.*?a)b/I
12369Capturing subpattern count = 0
12370No options
12371No first char
12372Need char = 'b'
12373
12374/(?>^a)b/sI
12375Capturing subpattern count = 0
12376Options: anchored dotall
12377No first char
12378No need char
12379
12380/(?>.*?)(?<=(abcd)|(wxyz))/I
12381Capturing subpattern count = 2
12382Max lookbehind = 4
12383May match empty string
12384No options
12385No first char
12386No need char
12387
12388/(?>.*)(?<=(abcd)|(wxyz))/I
12389Capturing subpattern count = 2
12390Max lookbehind = 4
12391May match empty string
12392No options
12393No first char
12394No need char
12395
12396"(?>.*)foo"I
12397Capturing subpattern count = 0
12398No options
12399No first char
12400Need char = 'o'
12401
12402"(?>.*?)foo"I
12403Capturing subpattern count = 0
12404No options
12405No first char
12406Need char = 'o'
12407
12408/(?>^abc)/mI
12409Capturing subpattern count = 0
12410Options: multiline
12411First char at start or follows newline
12412Need char = 'c'
12413
12414/(?>.*abc)/mI
12415Capturing subpattern count = 0
12416Options: multiline
12417No first char
12418Need char = 'c'
12419
12420/(?:.*abc)/mI
12421Capturing subpattern count = 0
12422Options: multiline
12423First char at start or follows newline
12424Need char = 'c'
12425
12426/-- Check PCRE_STUDY_EXTRA_NEEDED --/
12427
12428/.?/S-I
12429Capturing subpattern count = 0
12430May match empty string
12431No options
12432No first char
12433No need char
12434Study returned NULL
12435
12436/.?/S!I
12437Capturing subpattern count = 0
12438May match empty string
12439No options
12440No first char
12441No need char
12442Subject length lower bound = -1
12443No starting char list
12444
12445/(?:(a)+(?C1)bb|aa(?C2)b)/
12446    aab\C+
12447Callout 1: last capture = 1
12448 0: <unset>
12449 1: a
12450--->aab
12451    ^ ^     b
12452Callout 1: last capture = 1
12453 0: <unset>
12454 1: a
12455--->aab
12456    ^^      b
12457Callout 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+
12465Callout 1: last capture = 1
12466 0: <unset>
12467 1: a
12468--->aab
12469    ^ ^     b
12470Callout 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+
12478Callout 1: last capture = 1
12479 0: <unset>
12480 1: a
12481--->aab
12482    ^^      b
12483Callout 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+
12491Callout 1: last capture = -1
12492 0: <unset>
12493--->aab
12494    ^^      x
12495Callout 1: last capture = -1
12496 0: <unset>
12497--->aab
12498     ^^     x
12499Callout 2: last capture = -1
12500 0: <unset>
12501--->aab
12502     ^ ^    )
12503 0: ab
12504
12505/(?1)(?C1)((a)(?C2)){0}/
12506    aab\C+
12507Callout 2: last capture = 2
12508 0: <unset>
12509 1: <unset>
12510 2: a
12511--->aab
12512    ^^      )
12513Callout 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+
12521Callout 1: last capture = 1
12522 0: <unset>
12523 1: a
12524--->aab
12525    ^ ^     b
12526Callout 1: last capture = 1
12527 0: <unset>
12528 1: a
12529--->aab
12530    ^^      b
12531Callout 2: last capture = -1
12532 0: <unset>
12533--->aab
12534    ^ ^     b
12535 0: aab
12536    aab\C+\O2
12537Callout 1: last capture = 1
12538 0: <unset>
12539--->aab
12540    ^ ^     b
12541Callout 1: last capture = 1
12542 0: <unset>
12543--->aab
12544    ^^      b
12545Callout 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
12559Matched, but too many substrings
12560 0: ab
12561    ab\O2
12562Matched, but too many substrings
12563 0: ab
12564
12565/(?<=123)(*MARK:xx)abc/K
12566    xxxx123a\P\P
12567Partial match at offset 7, mark=xx: 123a
12568    xxxx123a\P
12569Partial match at offset 7, mark=xx: 123a
12570
12571/123\Kabc/
12572    xxxx123a\P\P
12573Partial match: 123a
12574    xxxx123a\P
12575Partial 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
12610backtracking 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
12620No 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
12660No match
12661
12662/(?=b(*THEN)a|)bn|bnn/
12663    bnn
12664 0: bn
12665
12666/-------------------------/
12667
12668/(*LIMIT_MATCH=12bc)abc/
12669Failed: (*VERB) not recognized or malformed at offset 7
12670
12671/(*LIMIT_MATCH=4294967290)abc/
12672Failed: (*VERB) not recognized or malformed at offset 7
12673
12674/(*LIMIT_RECURSION=4294967280)abc/I
12675Capturing subpattern count = 0
12676Recursion limit = 4294967280
12677No options
12678First char = 'a'
12679Need char = 'c'
12680
12681/(a+)*zz/
12682    aaaaaaaaaaaaaz
12683No match
12684    aaaaaaaaaaaaaz\q3000
12685Error -8 (match limit exceeded)
12686
12687/(a+)*zz/S-
12688    aaaaaaaaaaaaaz\Q10
12689Error -21 (recursion limit exceeded)
12690
12691/(*LIMIT_MATCH=3000)(a+)*zz/I
12692Capturing subpattern count = 1
12693Match limit = 3000
12694No options
12695No first char
12696Need char = 'z'
12697    aaaaaaaaaaaaaz
12698Error -8 (match limit exceeded)
12699    aaaaaaaaaaaaaz\q60000
12700Error -8 (match limit exceeded)
12701
12702/(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
12703Capturing subpattern count = 1
12704Match limit = 3000
12705No options
12706No first char
12707Need char = 'z'
12708    aaaaaaaaaaaaaz
12709Error -8 (match limit exceeded)
12710
12711/(*LIMIT_MATCH=60000)(a+)*zz/I
12712Capturing subpattern count = 1
12713Match limit = 60000
12714No options
12715No first char
12716Need char = 'z'
12717    aaaaaaaaaaaaaz
12718No match
12719    aaaaaaaaaaaaaz\q3000
12720Error -8 (match limit exceeded)
12721
12722/(*LIMIT_RECURSION=10)(a+)*zz/IS-
12723Capturing subpattern count = 1
12724Recursion limit = 10
12725No options
12726No first char
12727Need char = 'z'
12728Subject length lower bound = 2
12729Starting chars: a z
12730    aaaaaaaaaaaaaz
12731Error -21 (recursion limit exceeded)
12732    aaaaaaaaaaaaaz\Q1000
12733Error -21 (recursion limit exceeded)
12734
12735/(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12736Capturing subpattern count = 1
12737Recursion limit = 10
12738No options
12739No first char
12740Need char = 'z'
12741Subject length lower bound = 2
12742Starting chars: a z
12743    aaaaaaaaaaaaaz
12744Error -21 (recursion limit exceeded)
12745
12746/(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12747Capturing subpattern count = 1
12748Recursion limit = 1000
12749No options
12750No first char
12751Need char = 'z'
12752Subject length lower bound = 2
12753Starting chars: a z
12754    aaaaaaaaaaaaaz
12755No match
12756    aaaaaaaaaaaaaz\Q10
12757Error -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
12766Capturing subpattern count = 1
12767Named capturing subpatterns:
12768  n   1
12769Options: dupnames
12770No first char
12771No 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------------------------------------------------------------------
12788Capturing subpattern count = 3
12789Max back reference = 2
12790Named capturing subpatterns:
12791  a   1
12792  a   2
12793Options: dupnames
12794First char = 'a'
12795Need char = 'z'
12796Subject length lower bound = 5
12797No 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------------------------------------------------------------------
13904Capturing subpattern count = 0
13905No options
13906No first char
13907Need char = 'd'
13908Subject length lower bound = 1
13909Starting chars: a b c d
13910
13911/[a-c]+d/DZS
13912------------------------------------------------------------------
13913        Bra
13914        [a-c]++
13915        d
13916        Ket
13917        End
13918------------------------------------------------------------------
13919Capturing subpattern count = 0
13920No options
13921No first char
13922Need char = 'd'
13923Subject length lower bound = 2
13924Starting chars: a b c
13925
13926/[a-c]?d/DZS
13927------------------------------------------------------------------
13928        Bra
13929        [a-c]?+
13930        d
13931        Ket
13932        End
13933------------------------------------------------------------------
13934Capturing subpattern count = 0
13935No options
13936No first char
13937Need char = 'd'
13938Subject length lower bound = 1
13939Starting 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------------------------------------------------------------------
13949Capturing subpattern count = 0
13950No options
13951No first char
13952Need char = 'd'
13953Subject length lower bound = 5
13954Starting 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------------------------------------------------------------------
13964Capturing subpattern count = 0
13965No options
13966No first char
13967Need char = 'd'
13968Subject length lower bound = 1
13969Starting chars: a b c d
13970
13971/-- End of special auto-possessive tests --/
13972
13973/^A\o{1239}B/
13974Failed: non-octal character in \o{} (closing brace missing?) at offset 8
13975
13976/^A\oB/
13977Failed: missing opening brace after \o at offset 3
13978
13979/^A\x{zz}B/
13980Failed: non-hex character in \x{} (closing brace missing?) at offset 5
13981
13982/^A\x{12Z/
13983Failed: non-hex character in \x{} (closing brace missing?) at offset 7
13984
13985/^A\x{/
13986Failed: 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:]]+/
14021Failed: invalid range in character class at offset 3
14022
14023/[A-[:digit:]]+/
14024Failed: invalid range in character class at offset 3
14025
14026/[a-[.xxx.]]+/
14027Failed: invalid range in character class at offset 3
14028
14029/[a-[=xxx=]]+/
14030Failed: invalid range in character class at offset 3
14031
14032/[a-[!xxx!]]+/
14033Failed: range out of order in character class at offset 3
14034
14035/[A-[!xxx!]]+/
14036    A]]]
14037 0: A]]]
14038
14039/[a-\d]+/
14040Failed: invalid range in character class at offset 4
14041
14042/(?<0abc>xx)/
14043Failed: group name must start with a non-digit at offset 3
14044
14045/(?&1abc)xx(?<1abc>y)/
14046Failed: group name must start with a non-digit at offset 3
14047
14048/(?<ab-cd>xx)/
14049Failed: syntax error in subpattern name (missing terminator) at offset 5
14050
14051/(?'0abc'xx)/
14052Failed: group name must start with a non-digit at offset 3
14053
14054/(?P<0abc>xx)/
14055Failed: group name must start with a non-digit at offset 4
14056
14057/\k<5ghj>/
14058Failed: group name must start with a non-digit at offset 3
14059
14060/\k'5ghj'/
14061Failed: group name must start with a non-digit at offset 3
14062
14063/\k{2fgh}/
14064Failed: group name must start with a non-digit at offset 3
14065
14066/(?P=8yuki)/
14067Failed: group name must start with a non-digit at offset 4
14068
14069/\g{4df}/
14070Failed: group name must start with a non-digit at offset 3
14071
14072/(?&1abc)xx(?<1abc>y)/
14073Failed: group name must start with a non-digit at offset 3
14074
14075/(?P>1abc)xx(?<1abc>y)/
14076Failed: group name must start with a non-digit at offset 4
14077
14078/\g'3gh'/
14079Failed: \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>/
14082Failed: \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)/
14085Failed: group name must start with a non-digit at offset 4
14086
14087/(?('4gh')abc)/
14088Failed: group name must start with a non-digit at offset 4
14089
14090/(?(4gh)abc)/
14091Failed: malformed number or name after (?( at offset 4
14092
14093/(?(R&6yh)abc)/
14094Failed: group name must start with a non-digit at offset 5
14095
14096/(((a\2)|(a*)\g<-1>))*a?/BZ
14097------------------------------------------------------------------
14098        Bra
14099        Brazero
14100        SCBra 1
14101        Once
14102        CBra 2
14103        CBra 3
14104        a
14105        \2
14106        Ket
14107        Alt
14108        CBra 4
14109        a*
14110        Ket
14111        Recurse
14112        Ket
14113        Ket
14114        KetRmax
14115        a?+
14116        Ket
14117        End
14118------------------------------------------------------------------
14119
14120/-- Test the ugly "start or end of word" compatibility syntax --/
14121
14122/[[:<:]]red[[:>:]]/BZ
14123------------------------------------------------------------------
14124        Bra
14125        \b
14126        Assert
14127        \w
14128        Ket
14129        red
14130        \b
14131        AssertB
14132        Reverse
14133        \w
14134        Ket
14135        Ket
14136        End
14137------------------------------------------------------------------
14138    little red riding hood
14139 0: red
14140    a /red/ thing
14141 0: red
14142    red is a colour
14143 0: red
14144    put it all on red
14145 0: red
14146    ** Failers
14147No match
14148    no reduction
14149No match
14150    Alfred Winifred
14151No match
14152
14153/[a[:<:]] should give error/
14154Failed: unknown POSIX class name at offset 4
14155
14156/(?=ab\K)/+
14157    abcd
14158Start of matched string is beyond its end - displaying from end to start.
14159 0: ab
14160 0+ abcd
14161
14162/abcd/f<lf>
14163    xx\nxabcd
14164No match
14165
14166/ -- Test stack check external calls --/
14167
14168/(((((a)))))/Q0
14169
14170/(((((a)))))/Q1
14171Failed: parentheses are too deeply nested (stack check) at offset 0
14172
14173/(((((a)))))/Q
14174** Missing 0 or 1 after /Q
14175
14176/^\w+(?>\s*)(?<=\w)/BZ
14177------------------------------------------------------------------
14178        Bra
14179        ^
14180        \w+
14181        Once_NC
14182        \s*+
14183        Ket
14184        AssertB
14185        Reverse
14186        \w
14187        Ket
14188        Ket
14189        End
14190------------------------------------------------------------------
14191
14192/\othing/
14193Failed: missing opening brace after \o at offset 1
14194
14195/\o{}/
14196Failed: digits missing in \x{} or \o{} at offset 1
14197
14198/\o{whatever}/
14199Failed: non-octal character in \o{} (closing brace missing?) at offset 3
14200
14201/\xthing/
14202
14203/\x{}/
14204Failed: digits missing in \x{} or \o{} at offset 3
14205
14206/\x{whatever}/
14207Failed: non-hex character in \x{} (closing brace missing?) at offset 3
14208
14209/-- End of testinput2 --/
14210