xref: /PHP-7.1/ext/pcre/pcrelib/testdata/testoutput2 (revision 5f9df47e)
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: assertion expected after (?( at offset 3
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
1569Max back reference = 1
1570No options
1571First char = 'a'
1572No need char
1573
1574/a(?(1)bag|big)(.)/I
1575Capturing subpattern count = 1
1576Max back reference = 1
1577No options
1578First char = 'a'
1579Need char = 'g'
1580
1581/a(?(1)bag|big)*(.)/I
1582Capturing subpattern count = 1
1583Max back reference = 1
1584No options
1585First char = 'a'
1586No need char
1587
1588/a(?(1)bag|big)+(.)/I
1589Capturing subpattern count = 1
1590Max back reference = 1
1591No options
1592First char = 'a'
1593Need char = 'g'
1594
1595/a(?(1)b..|b..)(.)/I
1596Capturing subpattern count = 1
1597Max back reference = 1
1598No options
1599First char = 'a'
1600Need char = 'b'
1601
1602/ab\d{0}e/I
1603Capturing subpattern count = 0
1604No options
1605First char = 'a'
1606Need char = 'e'
1607
1608/a?b?/I
1609Capturing subpattern count = 0
1610May match empty string
1611No options
1612No first char
1613No need char
1614    a
1615 0: a
1616    b
1617 0: b
1618    ab
1619 0: ab
1620    \
1621 0:
1622    *** Failers
1623 0:
1624    \N
1625No match
1626
1627/|-/I
1628Capturing subpattern count = 0
1629May match empty string
1630No options
1631No first char
1632No need char
1633    abcd
1634 0:
1635    -abc
1636 0:
1637    \Nab-c
1638 0: -
1639    *** Failers
1640 0:
1641    \Nabc
1642No match
1643
1644/^.?abcd/IS
1645Capturing subpattern count = 0
1646Options: anchored
1647No first char
1648Need char = 'd'
1649Subject length lower bound = 4
1650No starting char list
1651
1652/\(             # ( at start
1653  (?:           # Non-capturing bracket
1654  (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
1655  |             # Or
1656  (?R)          # Recurse - i.e. nested bracketed string
1657  )*            # Zero or more contents
1658  \)            # Closing )
1659  /Ix
1660Capturing subpattern count = 0
1661Options: extended
1662First char = '('
1663Need char = ')'
1664    (abcd)
1665 0: (abcd)
1666    (abcd)xyz
1667 0: (abcd)
1668    xyz(abcd)
1669 0: (abcd)
1670    (ab(xy)cd)pqr
1671 0: (ab(xy)cd)
1672    (ab(xycd)pqr
1673 0: (xycd)
1674    () abc ()
1675 0: ()
1676    12(abcde(fsh)xyz(foo(bar))lmno)89
1677 0: (abcde(fsh)xyz(foo(bar))lmno)
1678    *** Failers
1679No match
1680    abcd
1681No match
1682    abcd)
1683No match
1684    (abcd
1685No match
1686
1687/\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1688Capturing subpattern count = 1
1689Options: extended
1690First char = '('
1691Need char = ')'
1692    (ab(xy)cd)pqr
1693 0: (ab(xy)cd)
1694 1: cd
1695    1(abcd)(x(y)z)pqr
1696 0: (abcd)
1697 1: abcd
1698 0: (x(y)z)
1699 1: z
1700
1701/\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1702Capturing subpattern count = 0
1703Options: extended
1704First char = '('
1705Need char = ')'
1706    (abcd)
1707 0: (abcd)
1708    (ab(xy)cd)
1709 0: (xy)
1710    (a(b(c)d)e)
1711 0: (c)
1712    ((ab))
1713 0: ((ab))
1714    *** Failers
1715No match
1716    ()
1717No match
1718
1719/\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1720Capturing subpattern count = 0
1721Options: extended
1722First char = '('
1723Need char = ')'
1724    ()
1725 0: ()
1726    12(abcde(fsh)xyz(foo(bar))lmno)89
1727 0: (fsh)
1728
1729/\(  ( (?>[^()]+) | (?R) )* \) /Ix
1730Capturing subpattern count = 1
1731Options: extended
1732First char = '('
1733Need char = ')'
1734    (ab(xy)cd)
1735 0: (ab(xy)cd)
1736 1: cd
1737
1738/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1739Capturing subpattern count = 2
1740Options: extended
1741First char = '('
1742Need char = ')'
1743    (ab(xy)cd)
1744 0: (ab(xy)cd)
1745 1: ab(xy)cd
1746 2: cd
1747
1748/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1749Capturing subpattern count = 3
1750Options: extended
1751First char = '('
1752Need char = ')'
1753    (ab(xy)cd)
1754 0: (ab(xy)cd)
1755 1: <unset>
1756 2: ab(xy)cd
1757 3: cd
1758    (123ab(xy)cd)
1759 0: (123ab(xy)cd)
1760 1: 123
1761 2: ab(xy)cd
1762 3: cd
1763
1764/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1765Capturing subpattern count = 3
1766Options: extended
1767First char = '('
1768Need char = ')'
1769    (ab(xy)cd)
1770 0: (ab(xy)cd)
1771 1: ab(xy)cd
1772 2: <unset>
1773 3: cd
1774    (123ab(xy)cd)
1775 0: (123ab(xy)cd)
1776 1: 123ab(xy)cd
1777 2: 123
1778 3: cd
1779
1780/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1781Capturing subpattern count = 11
1782Options: extended
1783First char = '('
1784Need char = ')'
1785    (ab(xy)cd)
1786 0: (ab(xy)cd)
1787 1: ab(xy)cd
1788 2: ab(xy)cd
1789 3: ab(xy)cd
1790 4: ab(xy)cd
1791 5: ab(xy)cd
1792 6: ab(xy)cd
1793 7: ab(xy)cd
1794 8: ab(xy)cd
1795 9: ab(xy)cd
179610: ab(xy)cd
179711: cd
1798
1799/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1800Capturing subpattern count = 3
1801Options: extended
1802First char = '('
1803Need char = ')'
1804    (abcd(xyz<p>qrs)123)
1805 0: (abcd(xyz<p>qrs)123)
1806 1: abcd(xyz<p>qrs)123
1807 2: 123
1808
1809/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1810Capturing subpattern count = 3
1811Options: extended
1812First char = '('
1813Need char = ')'
1814    (ab(cd)ef)
1815 0: (ab(cd)ef)
1816 1: ab(cd)ef
1817 2: ef
1818 3: (cd)
1819    (ab(cd(ef)gh)ij)
1820 0: (ab(cd(ef)gh)ij)
1821 1: ab(cd(ef)gh)ij
1822 2: ij
1823 3: (cd(ef)gh)
1824
1825/^[[:alnum:]]/DZ
1826------------------------------------------------------------------
1827        Bra
1828        ^
1829        [0-9A-Za-z]
1830        Ket
1831        End
1832------------------------------------------------------------------
1833Capturing subpattern count = 0
1834Options: anchored
1835No first char
1836No need char
1837
1838/^[[:^alnum:]]/DZ
1839------------------------------------------------------------------
1840        Bra
1841        ^
1842        [\x00-/:-@[-`{-\xff] (neg)
1843        Ket
1844        End
1845------------------------------------------------------------------
1846Capturing subpattern count = 0
1847Options: anchored
1848No first char
1849No need char
1850
1851/^[[:alpha:]]/DZ
1852------------------------------------------------------------------
1853        Bra
1854        ^
1855        [A-Za-z]
1856        Ket
1857        End
1858------------------------------------------------------------------
1859Capturing subpattern count = 0
1860Options: anchored
1861No first char
1862No need char
1863
1864/^[[:^alpha:]]/DZ
1865------------------------------------------------------------------
1866        Bra
1867        ^
1868        [\x00-@[-`{-\xff] (neg)
1869        Ket
1870        End
1871------------------------------------------------------------------
1872Capturing subpattern count = 0
1873Options: anchored
1874No first char
1875No need char
1876
1877/[_[:alpha:]]/IS
1878Capturing subpattern count = 0
1879No options
1880No first char
1881No need char
1882Subject length lower bound = 1
1883Starting 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
1884  _ 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
1885
1886/^[[:ascii:]]/DZ
1887------------------------------------------------------------------
1888        Bra
1889        ^
1890        [\x00-\x7f]
1891        Ket
1892        End
1893------------------------------------------------------------------
1894Capturing subpattern count = 0
1895Options: anchored
1896No first char
1897No need char
1898
1899/^[[:^ascii:]]/DZ
1900------------------------------------------------------------------
1901        Bra
1902        ^
1903        [\x80-\xff] (neg)
1904        Ket
1905        End
1906------------------------------------------------------------------
1907Capturing subpattern count = 0
1908Options: anchored
1909No first char
1910No need char
1911
1912/^[[:blank:]]/DZ
1913------------------------------------------------------------------
1914        Bra
1915        ^
1916        [\x09 ]
1917        Ket
1918        End
1919------------------------------------------------------------------
1920Capturing subpattern count = 0
1921Options: anchored
1922No first char
1923No need char
1924
1925/^[[:^blank:]]/DZ
1926------------------------------------------------------------------
1927        Bra
1928        ^
1929        [\x00-\x08\x0a-\x1f!-\xff] (neg)
1930        Ket
1931        End
1932------------------------------------------------------------------
1933Capturing subpattern count = 0
1934Options: anchored
1935No first char
1936No need char
1937
1938/[\n\x0b\x0c\x0d[:blank:]]/IS
1939Capturing subpattern count = 0
1940Contains explicit CR or LF match
1941No options
1942No first char
1943No need char
1944Subject length lower bound = 1
1945Starting chars: \x09 \x0a \x0b \x0c \x0d \x20
1946
1947/^[[:cntrl:]]/DZ
1948------------------------------------------------------------------
1949        Bra
1950        ^
1951        [\x00-\x1f\x7f]
1952        Ket
1953        End
1954------------------------------------------------------------------
1955Capturing subpattern count = 0
1956Options: anchored
1957No first char
1958No need char
1959
1960/^[[:digit:]]/DZ
1961------------------------------------------------------------------
1962        Bra
1963        ^
1964        [0-9]
1965        Ket
1966        End
1967------------------------------------------------------------------
1968Capturing subpattern count = 0
1969Options: anchored
1970No first char
1971No need char
1972
1973/^[[:graph:]]/DZ
1974------------------------------------------------------------------
1975        Bra
1976        ^
1977        [!-~]
1978        Ket
1979        End
1980------------------------------------------------------------------
1981Capturing subpattern count = 0
1982Options: anchored
1983No first char
1984No need char
1985
1986/^[[:lower:]]/DZ
1987------------------------------------------------------------------
1988        Bra
1989        ^
1990        [a-z]
1991        Ket
1992        End
1993------------------------------------------------------------------
1994Capturing subpattern count = 0
1995Options: anchored
1996No first char
1997No need char
1998
1999/^[[:print:]]/DZ
2000------------------------------------------------------------------
2001        Bra
2002        ^
2003        [ -~]
2004        Ket
2005        End
2006------------------------------------------------------------------
2007Capturing subpattern count = 0
2008Options: anchored
2009No first char
2010No need char
2011
2012/^[[:punct:]]/DZ
2013------------------------------------------------------------------
2014        Bra
2015        ^
2016        [!-/:-@[-`{-~]
2017        Ket
2018        End
2019------------------------------------------------------------------
2020Capturing subpattern count = 0
2021Options: anchored
2022No first char
2023No need char
2024
2025/^[[:space:]]/DZ
2026------------------------------------------------------------------
2027        Bra
2028        ^
2029        [\x09-\x0d ]
2030        Ket
2031        End
2032------------------------------------------------------------------
2033Capturing subpattern count = 0
2034Options: anchored
2035No first char
2036No need char
2037
2038/^[[:upper:]]/DZ
2039------------------------------------------------------------------
2040        Bra
2041        ^
2042        [A-Z]
2043        Ket
2044        End
2045------------------------------------------------------------------
2046Capturing subpattern count = 0
2047Options: anchored
2048No first char
2049No need char
2050
2051/^[[:xdigit:]]/DZ
2052------------------------------------------------------------------
2053        Bra
2054        ^
2055        [0-9A-Fa-f]
2056        Ket
2057        End
2058------------------------------------------------------------------
2059Capturing subpattern count = 0
2060Options: anchored
2061No first char
2062No need char
2063
2064/^[[:word:]]/DZ
2065------------------------------------------------------------------
2066        Bra
2067        ^
2068        [0-9A-Z_a-z]
2069        Ket
2070        End
2071------------------------------------------------------------------
2072Capturing subpattern count = 0
2073Options: anchored
2074No first char
2075No need char
2076
2077/^[[:^cntrl:]]/DZ
2078------------------------------------------------------------------
2079        Bra
2080        ^
2081        [ -~\x80-\xff] (neg)
2082        Ket
2083        End
2084------------------------------------------------------------------
2085Capturing subpattern count = 0
2086Options: anchored
2087No first char
2088No need char
2089
2090/^[12[:^digit:]]/DZ
2091------------------------------------------------------------------
2092        Bra
2093        ^
2094        [\x00-/12:-\xff] (neg)
2095        Ket
2096        End
2097------------------------------------------------------------------
2098Capturing subpattern count = 0
2099Options: anchored
2100No first char
2101No need char
2102
2103/^[[:^blank:]]/DZ
2104------------------------------------------------------------------
2105        Bra
2106        ^
2107        [\x00-\x08\x0a-\x1f!-\xff] (neg)
2108        Ket
2109        End
2110------------------------------------------------------------------
2111Capturing subpattern count = 0
2112Options: anchored
2113No first char
2114No need char
2115
2116/[01[:alpha:]%]/DZ
2117------------------------------------------------------------------
2118        Bra
2119        [%01A-Za-z]
2120        Ket
2121        End
2122------------------------------------------------------------------
2123Capturing subpattern count = 0
2124No options
2125No first char
2126No need char
2127
2128/[[.ch.]]/I
2129Failed: POSIX collating elements are not supported at offset 1
2130
2131/[[=ch=]]/I
2132Failed: POSIX collating elements are not supported at offset 1
2133
2134/[[:rhubarb:]]/I
2135Failed: unknown POSIX class name at offset 3
2136
2137/[[:upper:]]/Ii
2138Capturing subpattern count = 0
2139Options: caseless
2140No first char
2141No need char
2142    A
2143 0: A
2144    a
2145 0: a
2146
2147/[[:lower:]]/Ii
2148Capturing subpattern count = 0
2149Options: caseless
2150No first char
2151No need char
2152    A
2153 0: A
2154    a
2155 0: a
2156
2157/((?-i)[[:lower:]])[[:lower:]]/Ii
2158Capturing subpattern count = 1
2159Options: caseless
2160No first char
2161No need char
2162    ab
2163 0: ab
2164 1: a
2165    aB
2166 0: aB
2167 1: a
2168    *** Failers
2169 0: ai
2170 1: a
2171    Ab
2172No match
2173    AB
2174No match
2175
2176/[\200-\110]/I
2177Failed: range out of order in character class at offset 9
2178
2179/^(?(0)f|b)oo/I
2180Failed: invalid condition (?(0) at offset 6
2181
2182/This one's here because of the large output vector needed/I
2183Capturing subpattern count = 0
2184No options
2185First char = 'T'
2186Need char = 'd'
2187
2188/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2189Capturing subpattern count = 271
2190Max back reference = 270
2191No options
2192No first char
2193No need char
2194    \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
2195 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
2196 1: 1
2197 2: 2
2198 3: 3
2199 4: 4
2200 5: 5
2201 6: 6
2202 7: 7
2203 8: 8
2204 9: 9
220510: 10
220611: 11
220712: 12
220813: 13
220914: 14
221015: 15
221116: 16
221217: 17
221318: 18
221419: 19
221520: 20
221621: 21
221722: 22
221823: 23
221924: 24
222025: 25
222126: 26
222227: 27
222328: 28
222429: 29
222530: 30
222631: 31
222732: 32
222833: 33
222934: 34
223035: 35
223136: 36
223237: 37
223338: 38
223439: 39
223540: 40
223641: 41
223742: 42
223843: 43
223944: 44
224045: 45
224146: 46
224247: 47
224348: 48
224449: 49
224550: 50
224651: 51
224752: 52
224853: 53
224954: 54
225055: 55
225156: 56
225257: 57
225358: 58
225459: 59
225560: 60
225661: 61
225762: 62
225863: 63
225964: 64
226065: 65
226166: 66
226267: 67
226368: 68
226469: 69
226570: 70
226671: 71
226772: 72
226873: 73
226974: 74
227075: 75
227176: 76
227277: 77
227378: 78
227479: 79
227580: 80
227681: 81
227782: 82
227883: 83
227984: 84
228085: 85
228186: 86
228287: 87
228388: 88
228489: 89
228590: 90
228691: 91
228792: 92
228893: 93
228994: 94
229095: 95
229196: 96
229297: 97
229398: 98
229499: 99
2295100: 100
2296101: 101
2297102: 102
2298103: 103
2299104: 104
2300105: 105
2301106: 106
2302107: 107
2303108: 108
2304109: 109
2305110: 110
2306111: 111
2307112: 112
2308113: 113
2309114: 114
2310115: 115
2311116: 116
2312117: 117
2313118: 118
2314119: 119
2315120: 120
2316121: 121
2317122: 122
2318123: 123
2319124: 124
2320125: 125
2321126: 126
2322127: 127
2323128: 128
2324129: 129
2325130: 130
2326131: 131
2327132: 132
2328133: 133
2329134: 134
2330135: 135
2331136: 136
2332137: 137
2333138: 138
2334139: 139
2335140: 140
2336141: 141
2337142: 142
2338143: 143
2339144: 144
2340145: 145
2341146: 146
2342147: 147
2343148: 148
2344149: 149
2345150: 150
2346151: 151
2347152: 152
2348153: 153
2349154: 154
2350155: 155
2351156: 156
2352157: 157
2353158: 158
2354159: 159
2355160: 160
2356161: 161
2357162: 162
2358163: 163
2359164: 164
2360165: 165
2361166: 166
2362167: 167
2363168: 168
2364169: 169
2365170: 170
2366171: 171
2367172: 172
2368173: 173
2369174: 174
2370175: 175
2371176: 176
2372177: 177
2373178: 178
2374179: 179
2375180: 180
2376181: 181
2377182: 182
2378183: 183
2379184: 184
2380185: 185
2381186: 186
2382187: 187
2383188: 188
2384189: 189
2385190: 190
2386191: 191
2387192: 192
2388193: 193
2389194: 194
2390195: 195
2391196: 196
2392197: 197
2393198: 198
2394199: 199
2395200: 200
2396201: 201
2397202: 202
2398203: 203
2399204: 204
2400205: 205
2401206: 206
2402207: 207
2403208: 208
2404209: 209
2405210: 210
2406211: 211
2407212: 212
2408213: 213
2409214: 214
2410215: 215
2411216: 216
2412217: 217
2413218: 218
2414219: 219
2415220: 220
2416221: 221
2417222: 222
2418223: 223
2419224: 224
2420225: 225
2421226: 226
2422227: 227
2423228: 228
2424229: 229
2425230: 230
2426231: 231
2427232: 232
2428233: 233
2429234: 234
2430235: 235
2431236: 236
2432237: 237
2433238: 238
2434239: 239
2435240: 240
2436241: 241
2437242: 242
2438243: 243
2439244: 244
2440245: 245
2441246: 246
2442247: 247
2443248: 248
2444249: 249
2445250: 250
2446251: 251
2447252: 252
2448253: 253
2449254: 254
2450255: 255
2451256: 256
2452257: 257
2453258: 258
2454259: 259
2455260: 260
2456261: 261
2457262: 262
2458263: 263
2459264: 264
2460265: 265
2461266: 266
2462267: 267
2463268: 268
2464269: 269
2465270: ABC
2466271: ABC
2467
2468/This one's here because Perl does this differently and PCRE can't at present/I
2469Capturing subpattern count = 0
2470No options
2471First char = 'T'
2472Need char = 't'
2473
2474/(main(O)?)+/I
2475Capturing subpattern count = 2
2476No options
2477First char = 'm'
2478Need char = 'n'
2479    mainmain
2480 0: mainmain
2481 1: main
2482    mainOmain
2483 0: mainOmain
2484 1: main
2485 2: O
2486
2487/These are all cases where Perl does it differently (nested captures)/I
2488Capturing subpattern count = 1
2489No options
2490First char = 'T'
2491Need char = 's'
2492
2493/^(a(b)?)+$/I
2494Capturing subpattern count = 2
2495Options: anchored
2496No first char
2497No need char
2498    aba
2499 0: aba
2500 1: a
2501 2: b
2502
2503/^(aa(bb)?)+$/I
2504Capturing subpattern count = 2
2505Options: anchored
2506No first char
2507No need char
2508    aabbaa
2509 0: aabbaa
2510 1: aa
2511 2: bb
2512
2513/^(aa|aa(bb))+$/I
2514Capturing subpattern count = 2
2515Options: anchored
2516No first char
2517No need char
2518    aabbaa
2519 0: aabbaa
2520 1: aa
2521 2: bb
2522
2523/^(aa(bb)??)+$/I
2524Capturing subpattern count = 2
2525Options: anchored
2526No first char
2527No need char
2528    aabbaa
2529 0: aabbaa
2530 1: aa
2531 2: bb
2532
2533/^(?:aa(bb)?)+$/I
2534Capturing subpattern count = 1
2535Options: anchored
2536No first char
2537No need char
2538    aabbaa
2539 0: aabbaa
2540 1: bb
2541
2542/^(aa(b(b))?)+$/I
2543Capturing subpattern count = 3
2544Options: anchored
2545No first char
2546No need char
2547    aabbaa
2548 0: aabbaa
2549 1: aa
2550 2: bb
2551 3: b
2552
2553/^(?:aa(b(b))?)+$/I
2554Capturing subpattern count = 2
2555Options: anchored
2556No first char
2557No need char
2558    aabbaa
2559 0: aabbaa
2560 1: bb
2561 2: b
2562
2563/^(?:aa(b(?:b))?)+$/I
2564Capturing subpattern count = 1
2565Options: anchored
2566No first char
2567No need char
2568    aabbaa
2569 0: aabbaa
2570 1: bb
2571
2572/^(?:aa(bb(?:b))?)+$/I
2573Capturing subpattern count = 1
2574Options: anchored
2575No first char
2576No need char
2577    aabbbaa
2578 0: aabbbaa
2579 1: bbb
2580
2581/^(?:aa(b(?:bb))?)+$/I
2582Capturing subpattern count = 1
2583Options: anchored
2584No first char
2585No need char
2586    aabbbaa
2587 0: aabbbaa
2588 1: bbb
2589
2590/^(?:aa(?:b(b))?)+$/I
2591Capturing subpattern count = 1
2592Options: anchored
2593No first char
2594No need char
2595    aabbaa
2596 0: aabbaa
2597 1: b
2598
2599/^(?:aa(?:b(bb))?)+$/I
2600Capturing subpattern count = 1
2601Options: anchored
2602No first char
2603No need char
2604    aabbbaa
2605 0: aabbbaa
2606 1: bb
2607
2608/^(aa(b(bb))?)+$/I
2609Capturing subpattern count = 3
2610Options: anchored
2611No first char
2612No need char
2613    aabbbaa
2614 0: aabbbaa
2615 1: aa
2616 2: bbb
2617 3: bb
2618
2619/^(aa(bb(bb))?)+$/I
2620Capturing subpattern count = 3
2621Options: anchored
2622No first char
2623No need char
2624    aabbbbaa
2625 0: aabbbbaa
2626 1: aa
2627 2: bbbb
2628 3: bb
2629
2630/--------------------------------------------------------------------/I
2631Capturing subpattern count = 0
2632No options
2633First char = '-'
2634Need char = '-'
2635
2636/#/IxDZ
2637------------------------------------------------------------------
2638        Bra
2639        Ket
2640        End
2641------------------------------------------------------------------
2642Capturing subpattern count = 0
2643May match empty string
2644Options: extended
2645No first char
2646No need char
2647
2648/a#/IxDZ
2649------------------------------------------------------------------
2650        Bra
2651        a
2652        Ket
2653        End
2654------------------------------------------------------------------
2655Capturing subpattern count = 0
2656Options: extended
2657First char = 'a'
2658No need char
2659
2660/[\s]/DZ
2661------------------------------------------------------------------
2662        Bra
2663        [\x09-\x0d ]
2664        Ket
2665        End
2666------------------------------------------------------------------
2667Capturing subpattern count = 0
2668No options
2669No first char
2670No need char
2671
2672/[\S]/DZ
2673------------------------------------------------------------------
2674        Bra
2675        [\x00-\x08\x0e-\x1f!-\xff] (neg)
2676        Ket
2677        End
2678------------------------------------------------------------------
2679Capturing subpattern count = 0
2680No options
2681No first char
2682No need char
2683
2684/a(?i)b/DZ
2685------------------------------------------------------------------
2686        Bra
2687        a
2688     /i b
2689        Ket
2690        End
2691------------------------------------------------------------------
2692Capturing subpattern count = 0
2693No options
2694First char = 'a'
2695Need char = 'b' (caseless)
2696    ab
2697 0: ab
2698    aB
2699 0: aB
2700    *** Failers
2701No match
2702    AB
2703No match
2704
2705/(a(?i)b)/DZ
2706------------------------------------------------------------------
2707        Bra
2708        CBra 1
2709        a
2710     /i b
2711        Ket
2712        Ket
2713        End
2714------------------------------------------------------------------
2715Capturing subpattern count = 1
2716No options
2717First char = 'a'
2718Need char = 'b' (caseless)
2719    ab
2720 0: ab
2721 1: ab
2722    aB
2723 0: aB
2724 1: aB
2725    *** Failers
2726No match
2727    AB
2728No match
2729
2730/   (?i)abc/IxDZ
2731------------------------------------------------------------------
2732        Bra
2733     /i abc
2734        Ket
2735        End
2736------------------------------------------------------------------
2737Capturing subpattern count = 0
2738Options: caseless extended
2739First char = 'a' (caseless)
2740Need char = 'c' (caseless)
2741
2742/#this is a comment
2743  (?i)abc/IxDZ
2744------------------------------------------------------------------
2745        Bra
2746     /i abc
2747        Ket
2748        End
2749------------------------------------------------------------------
2750Capturing subpattern count = 0
2751Options: caseless extended
2752First char = 'a' (caseless)
2753Need char = 'c' (caseless)
2754
2755/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2756------------------------------------------------------------------
2757        Bra
2758        123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2759        Ket
2760        End
2761------------------------------------------------------------------
2762Capturing subpattern count = 0
2763No options
2764First char = '1'
2765Need char = '0'
2766
2767/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2768------------------------------------------------------------------
2769        Bra
2770        123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2771        Ket
2772        End
2773------------------------------------------------------------------
2774Capturing subpattern count = 0
2775No options
2776First char = '1'
2777Need char = '0'
2778
2779/\Q\E/DZ
2780------------------------------------------------------------------
2781        Bra
2782        Ket
2783        End
2784------------------------------------------------------------------
2785Capturing subpattern count = 0
2786May match empty string
2787No options
2788No first char
2789No need char
2790    \
2791 0:
2792
2793/\Q\Ex/DZ
2794------------------------------------------------------------------
2795        Bra
2796        x
2797        Ket
2798        End
2799------------------------------------------------------------------
2800Capturing subpattern count = 0
2801No options
2802First char = 'x'
2803No need char
2804
2805/ \Q\E/DZ
2806------------------------------------------------------------------
2807        Bra
2808
2809        Ket
2810        End
2811------------------------------------------------------------------
2812Capturing subpattern count = 0
2813No options
2814First char = ' '
2815No need char
2816
2817/a\Q\E/DZ
2818------------------------------------------------------------------
2819        Bra
2820        a
2821        Ket
2822        End
2823------------------------------------------------------------------
2824Capturing subpattern count = 0
2825No options
2826First char = 'a'
2827No need char
2828  abc
2829 0: a
2830  bca
2831 0: a
2832  bac
2833 0: a
2834
2835/a\Q\Eb/DZ
2836------------------------------------------------------------------
2837        Bra
2838        ab
2839        Ket
2840        End
2841------------------------------------------------------------------
2842Capturing subpattern count = 0
2843No options
2844First char = 'a'
2845Need char = 'b'
2846  abc
2847 0: ab
2848
2849/\Q\Eabc/DZ
2850------------------------------------------------------------------
2851        Bra
2852        abc
2853        Ket
2854        End
2855------------------------------------------------------------------
2856Capturing subpattern count = 0
2857No options
2858First char = 'a'
2859Need char = 'c'
2860
2861/x*+\w/DZ
2862------------------------------------------------------------------
2863        Bra
2864        x*+
2865        \w
2866        Ket
2867        End
2868------------------------------------------------------------------
2869Capturing subpattern count = 0
2870No options
2871No first char
2872No need char
2873    *** Failers
2874 0: F
2875    xxxxx
2876No match
2877
2878/x?+/DZ
2879------------------------------------------------------------------
2880        Bra
2881        x?+
2882        Ket
2883        End
2884------------------------------------------------------------------
2885Capturing subpattern count = 0
2886May match empty string
2887No options
2888No first char
2889No need char
2890
2891/x++/DZ
2892------------------------------------------------------------------
2893        Bra
2894        x++
2895        Ket
2896        End
2897------------------------------------------------------------------
2898Capturing subpattern count = 0
2899No options
2900First char = 'x'
2901No need char
2902
2903/x{1,3}+/BZO
2904------------------------------------------------------------------
2905        Bra
2906        x
2907        x{0,2}+
2908        Ket
2909        End
2910------------------------------------------------------------------
2911
2912/x{1,3}+/BZOi
2913------------------------------------------------------------------
2914        Bra
2915     /i x
2916     /i x{0,2}+
2917        Ket
2918        End
2919------------------------------------------------------------------
2920
2921/[^x]{1,3}+/BZO
2922------------------------------------------------------------------
2923        Bra
2924        [^x]
2925        [^x]{0,2}+
2926        Ket
2927        End
2928------------------------------------------------------------------
2929
2930/[^x]{1,3}+/BZOi
2931------------------------------------------------------------------
2932        Bra
2933     /i [^x]
2934     /i [^x]{0,2}+
2935        Ket
2936        End
2937------------------------------------------------------------------
2938
2939/(x)*+/DZ
2940------------------------------------------------------------------
2941        Bra
2942        Braposzero
2943        CBraPos 1
2944        x
2945        KetRpos
2946        Ket
2947        End
2948------------------------------------------------------------------
2949Capturing subpattern count = 1
2950May match empty string
2951No options
2952No first char
2953No need char
2954
2955/^(\w++|\s++)*$/I
2956Capturing subpattern count = 1
2957May match empty string
2958Options: anchored
2959No first char
2960No need char
2961    now is the time for all good men to come to the aid of the party
2962 0: now is the time for all good men to come to the aid of the party
2963 1: party
2964    *** Failers
2965No match
2966    this is not a line with only words and spaces!
2967No match
2968
2969/(\d++)(\w)/I
2970Capturing subpattern count = 2
2971No options
2972No first char
2973No need char
2974    12345a
2975 0: 12345a
2976 1: 12345
2977 2: a
2978    *** Failers
2979No match
2980    12345+
2981No match
2982
2983/a++b/I
2984Capturing subpattern count = 0
2985No options
2986First char = 'a'
2987Need char = 'b'
2988    aaab
2989 0: aaab
2990
2991/(a++b)/I
2992Capturing subpattern count = 1
2993No options
2994First char = 'a'
2995Need char = 'b'
2996    aaab
2997 0: aaab
2998 1: aaab
2999
3000/(a++)b/I
3001Capturing subpattern count = 1
3002No options
3003First char = 'a'
3004Need char = 'b'
3005    aaab
3006 0: aaab
3007 1: aaa
3008
3009/([^()]++|\([^()]*\))+/I
3010Capturing subpattern count = 1
3011No options
3012No first char
3013No need char
3014    ((abc(ade)ufh()()x
3015 0: abc(ade)ufh()()x
3016 1: x
3017
3018/\(([^()]++|\([^()]+\))+\)/I
3019Capturing subpattern count = 1
3020No options
3021First char = '('
3022Need char = ')'
3023    (abc)
3024 0: (abc)
3025 1: abc
3026    (abc(def)xyz)
3027 0: (abc(def)xyz)
3028 1: xyz
3029    *** Failers
3030No match
3031    ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3032No match
3033
3034/(abc){1,3}+/DZ
3035------------------------------------------------------------------
3036        Bra
3037        Once
3038        CBra 1
3039        abc
3040        Ket
3041        Brazero
3042        Bra
3043        CBra 1
3044        abc
3045        Ket
3046        Brazero
3047        CBra 1
3048        abc
3049        Ket
3050        Ket
3051        Ket
3052        Ket
3053        End
3054------------------------------------------------------------------
3055Capturing subpattern count = 1
3056No options
3057First char = 'a'
3058Need char = 'c'
3059
3060/a+?+/I
3061Failed: nothing to repeat at offset 3
3062
3063/a{2,3}?+b/I
3064Failed: nothing to repeat at offset 7
3065
3066/(?U)a+?+/I
3067Failed: nothing to repeat at offset 7
3068
3069/a{2,3}?+b/IU
3070Failed: nothing to repeat at offset 7
3071
3072/x(?U)a++b/DZ
3073------------------------------------------------------------------
3074        Bra
3075        x
3076        a++
3077        b
3078        Ket
3079        End
3080------------------------------------------------------------------
3081Capturing subpattern count = 0
3082No options
3083First char = 'x'
3084Need char = 'b'
3085    xaaaab
3086 0: xaaaab
3087
3088/(?U)xa++b/DZ
3089------------------------------------------------------------------
3090        Bra
3091        x
3092        a++
3093        b
3094        Ket
3095        End
3096------------------------------------------------------------------
3097Capturing subpattern count = 0
3098Options: ungreedy
3099First char = 'x'
3100Need char = 'b'
3101    xaaaab
3102 0: xaaaab
3103
3104/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3105------------------------------------------------------------------
3106        Bra
3107        ^
3108        CBra 1
3109        CBra 2
3110        a+
3111        Ket
3112        CBra 3
3113        [ab]+?
3114        Ket
3115        CBra 4
3116        [bc]+
3117        Ket
3118        CBra 5
3119        \w*+
3120        Ket
3121        Ket
3122        Ket
3123        End
3124------------------------------------------------------------------
3125Capturing subpattern count = 5
3126Options: anchored
3127No first char
3128No need char
3129
3130/^x(?U)a+b/DZ
3131------------------------------------------------------------------
3132        Bra
3133        ^
3134        x
3135        a++
3136        b
3137        Ket
3138        End
3139------------------------------------------------------------------
3140Capturing subpattern count = 0
3141Options: anchored
3142No first char
3143Need char = 'b'
3144
3145/^x(?U)(a+)b/DZ
3146------------------------------------------------------------------
3147        Bra
3148        ^
3149        x
3150        CBra 1
3151        a+?
3152        Ket
3153        b
3154        Ket
3155        End
3156------------------------------------------------------------------
3157Capturing subpattern count = 1
3158Options: anchored
3159No first char
3160Need char = 'b'
3161
3162/[.x.]/I
3163Failed: POSIX collating elements are not supported at offset 0
3164
3165/[=x=]/I
3166Failed: POSIX collating elements are not supported at offset 0
3167
3168/[:x:]/I
3169Failed: POSIX named classes are supported only within a class at offset 0
3170
3171/\l/I
3172Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3173
3174/\L/I
3175Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3176
3177/\N{name}/I
3178Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3179
3180/\u/I
3181Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3182
3183/\U/I
3184Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3185
3186/a{1,3}b/U
3187    ab
3188 0: ab
3189
3190/[/I
3191Failed: missing terminating ] for character class at offset 1
3192
3193/[a-/I
3194Failed: missing terminating ] for character class at offset 3
3195
3196/[[:space:]/I
3197Failed: missing terminating ] for character class at offset 10
3198
3199/[\s]/IDZ
3200------------------------------------------------------------------
3201        Bra
3202        [\x09-\x0d ]
3203        Ket
3204        End
3205------------------------------------------------------------------
3206Capturing subpattern count = 0
3207No options
3208No first char
3209No need char
3210
3211/[[:space:]]/IDZ
3212------------------------------------------------------------------
3213        Bra
3214        [\x09-\x0d ]
3215        Ket
3216        End
3217------------------------------------------------------------------
3218Capturing subpattern count = 0
3219No options
3220No first char
3221No need char
3222
3223/[[:space:]abcde]/IDZ
3224------------------------------------------------------------------
3225        Bra
3226        [\x09-\x0d a-e]
3227        Ket
3228        End
3229------------------------------------------------------------------
3230Capturing subpattern count = 0
3231No options
3232No first char
3233No need char
3234
3235/< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3236Capturing subpattern count = 0
3237Options: extended
3238First char = '<'
3239Need char = '>'
3240    <>
3241 0: <>
3242    <abcd>
3243 0: <abcd>
3244    <abc <123> hij>
3245 0: <abc <123> hij>
3246    <abc <def> hij>
3247 0: <def>
3248    <abc<>def>
3249 0: <abc<>def>
3250    <abc<>
3251 0: <>
3252    *** Failers
3253No match
3254    <abc
3255No match
3256
3257|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
3258------------------------------------------------------------------
3259        Bra
3260        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
3261        \b
3262        Ket
3263        End
3264------------------------------------------------------------------
3265Capturing subpattern count = 0
3266Max lookbehind = 1
3267No options
3268First char = '8'
3269Need char = 'X'
3270
3271|\$\<\.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
3272------------------------------------------------------------------
3273        Bra
3274        $<.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
3275        \b
3276        Ket
3277        End
3278------------------------------------------------------------------
3279Capturing subpattern count = 0
3280Max lookbehind = 1
3281No options
3282First char = '$'
3283Need char = 'X'
3284
3285/(.*)\d+\1/I
3286Capturing subpattern count = 1
3287Max back reference = 1
3288No options
3289No first char
3290No need char
3291
3292/(.*)\d+/I
3293Capturing subpattern count = 1
3294No options
3295First char at start or follows newline
3296No need char
3297
3298/(.*)\d+\1/Is
3299Capturing subpattern count = 1
3300Max back reference = 1
3301Options: dotall
3302No first char
3303No need char
3304
3305/(.*)\d+/Is
3306Capturing subpattern count = 1
3307Options: anchored dotall
3308No first char
3309No need char
3310
3311/(.*(xyz))\d+\2/I
3312Capturing subpattern count = 2
3313Max back reference = 2
3314No options
3315First char at start or follows newline
3316Need char = 'z'
3317
3318/((.*))\d+\1/I
3319Capturing subpattern count = 2
3320Max back reference = 1
3321No options
3322No first char
3323No need char
3324    abc123bc
3325 0: bc123bc
3326 1: bc
3327 2: bc
3328
3329/a[b]/I
3330Capturing subpattern count = 0
3331No options
3332First char = 'a'
3333Need char = 'b'
3334
3335/(?=a).*/I
3336Capturing subpattern count = 0
3337May match empty string
3338No options
3339First char = 'a'
3340No need char
3341
3342/(?=abc).xyz/IiI
3343Capturing subpattern count = 0
3344Options: caseless
3345First char = 'a' (caseless)
3346Need char = 'z' (caseless)
3347
3348/(?=abc)(?i).xyz/I
3349Capturing subpattern count = 0
3350No options
3351First char = 'a'
3352Need char = 'z' (caseless)
3353
3354/(?=a)(?=b)/I
3355Capturing subpattern count = 0
3356May match empty string
3357No options
3358First char = 'a'
3359No need char
3360
3361/(?=.)a/I
3362Capturing subpattern count = 0
3363No options
3364First char = 'a'
3365No need char
3366
3367/((?=abcda)a)/I
3368Capturing subpattern count = 1
3369No options
3370First char = 'a'
3371Need char = 'a'
3372
3373/((?=abcda)ab)/I
3374Capturing subpattern count = 1
3375No options
3376First char = 'a'
3377Need char = 'b'
3378
3379/()a/I
3380Capturing subpattern count = 1
3381No options
3382No first char
3383Need char = 'a'
3384
3385/(?(1)ab|ac)(.)/I
3386Capturing subpattern count = 1
3387Max back reference = 1
3388No options
3389First char = 'a'
3390No need char
3391
3392/(?(1)abz|acz)(.)/I
3393Capturing subpattern count = 1
3394Max back reference = 1
3395No options
3396First char = 'a'
3397Need char = 'z'
3398
3399/(?(1)abz)(.)/I
3400Capturing subpattern count = 1
3401Max back reference = 1
3402No options
3403No first char
3404No need char
3405
3406/(?(1)abz)(1)23/I
3407Capturing subpattern count = 1
3408Max back reference = 1
3409No options
3410No first char
3411Need char = '3'
3412
3413/(a)+/I
3414Capturing subpattern count = 1
3415No options
3416First char = 'a'
3417No need char
3418
3419/(a){2,3}/I
3420Capturing subpattern count = 1
3421No options
3422First char = 'a'
3423Need char = 'a'
3424
3425/(a)*/I
3426Capturing subpattern count = 1
3427May match empty string
3428No options
3429No first char
3430No need char
3431
3432/[a]/I
3433Capturing subpattern count = 0
3434No options
3435First char = 'a'
3436No need char
3437
3438/[ab]/I
3439Capturing subpattern count = 0
3440No options
3441No first char
3442No need char
3443
3444/[ab]/IS
3445Capturing subpattern count = 0
3446No options
3447No first char
3448No need char
3449Subject length lower bound = 1
3450Starting chars: a b
3451
3452/[^a]/I
3453Capturing subpattern count = 0
3454No options
3455No first char
3456No need char
3457
3458/\d456/I
3459Capturing subpattern count = 0
3460No options
3461No first char
3462Need char = '6'
3463
3464/\d456/IS
3465Capturing subpattern count = 0
3466No options
3467No first char
3468Need char = '6'
3469Subject length lower bound = 4
3470Starting chars: 0 1 2 3 4 5 6 7 8 9
3471
3472/a^b/I
3473Capturing subpattern count = 0
3474No options
3475First char = 'a'
3476Need char = 'b'
3477
3478/^a/Im
3479Capturing subpattern count = 0
3480Options: multiline
3481First char at start or follows newline
3482Need char = 'a'
3483  abcde
3484 0: a
3485  xy\nabc
3486 0: a
3487  *** Failers
3488No match
3489  xyabc
3490No match
3491
3492/c|abc/I
3493Capturing subpattern count = 0
3494No options
3495No first char
3496Need char = 'c'
3497
3498/(?i)[ab]/IS
3499Capturing subpattern count = 0
3500Options: caseless
3501No first char
3502No need char
3503Subject length lower bound = 1
3504Starting chars: A B a b
3505
3506/[ab](?i)cd/IS
3507Capturing subpattern count = 0
3508No options
3509No first char
3510Need char = 'd' (caseless)
3511Subject length lower bound = 3
3512Starting chars: a b
3513
3514/abc(?C)def/I
3515Capturing subpattern count = 0
3516No options
3517First char = 'a'
3518Need char = 'f'
3519    abcdef
3520--->abcdef
3521  0 ^  ^       d
3522 0: abcdef
3523    1234abcdef
3524--->1234abcdef
3525  0     ^  ^       d
3526 0: abcdef
3527    *** Failers
3528No match
3529    abcxyz
3530No match
3531    abcxyzf
3532--->abcxyzf
3533  0 ^  ^        d
3534No match
3535
3536/abc(?C)de(?C1)f/I
3537Capturing subpattern count = 0
3538No options
3539First char = 'a'
3540Need char = 'f'
3541    123abcdef
3542--->123abcdef
3543  0    ^  ^       d
3544  1    ^    ^     f
3545 0: abcdef
3546
3547/(?C1)\dabc(?C2)def/IS
3548Capturing subpattern count = 0
3549No options
3550No first char
3551Need char = 'f'
3552Subject length lower bound = 7
3553Starting chars: 0 1 2 3 4 5 6 7 8 9
3554    1234abcdef
3555--->1234abcdef
3556  1 ^              \d
3557  1  ^             \d
3558  1   ^            \d
3559  1    ^           \d
3560  2    ^   ^       d
3561 0: 4abcdef
3562    *** Failers
3563No match
3564    abcdef
3565No match
3566
3567/(?C1)\dabc(?C2)def/ISS
3568Capturing subpattern count = 0
3569No options
3570No first char
3571Need char = 'f'
3572    1234abcdef
3573--->1234abcdef
3574  1 ^              \d
3575  1  ^             \d
3576  1   ^            \d
3577  1    ^           \d
3578  2    ^   ^       d
3579 0: 4abcdef
3580    *** Failers
3581No match
3582    abcdef
3583--->abcdef
3584  1 ^          \d
3585  1  ^         \d
3586  1   ^        \d
3587  1    ^       \d
3588  1     ^      \d
3589  1      ^     \d
3590No match
3591
3592/(?C255)ab/I
3593Capturing subpattern count = 0
3594No options
3595First char = 'a'
3596Need char = 'b'
3597
3598/(?C256)ab/I
3599Failed: number after (?C is > 255 at offset 6
3600
3601/(?Cab)xx/I
3602Failed: closing ) for (?C expected at offset 3
3603
3604/(?C12vr)x/I
3605Failed: closing ) for (?C expected at offset 5
3606
3607/abc(?C)def/I
3608Capturing subpattern count = 0
3609No options
3610First char = 'a'
3611Need char = 'f'
3612    *** Failers
3613No match
3614    \x83\x0\x61bcdef
3615--->\x83\x00abcdef
3616  0         ^  ^       d
3617 0: abcdef
3618
3619/(abc)(?C)de(?C1)f/I
3620Capturing subpattern count = 1
3621No options
3622First char = 'a'
3623Need char = 'f'
3624    123abcdef
3625--->123abcdef
3626  0    ^  ^       d
3627  1    ^    ^     f
3628 0: abcdef
3629 1: abc
3630    123abcdef\C+
3631Callout 0: last capture = 1
3632 0: <unset>
3633 1: abc
3634--->123abcdef
3635       ^  ^       d
3636Callout 1: last capture = 1
3637 0: <unset>
3638 1: abc
3639--->123abcdef
3640       ^    ^     f
3641 0: abcdef
3642 1: abc
3643    123abcdef\C-
3644 0: abcdef
3645 1: abc
3646    *** Failers
3647No match
3648    123abcdef\C!1
3649--->123abcdef
3650  0    ^  ^       d
3651  1    ^    ^     f
3652No match
3653
3654/(?C0)(abc(?C1))*/I
3655Capturing subpattern count = 1
3656May match empty string
3657No options
3658No first char
3659No need char
3660    abcabcabc
3661--->abcabcabc
3662  0 ^             (abc(?C1))*
3663  1 ^  ^          )
3664  1 ^     ^       )
3665  1 ^        ^    )
3666 0: abcabcabc
3667 1: abc
3668    abcabc\C!1!3
3669--->abcabc
3670  0 ^          (abc(?C1))*
3671  1 ^  ^       )
3672  1 ^     ^    )
3673 0: abcabc
3674 1: abc
3675    *** Failers
3676--->*** Failers
3677  0 ^               (abc(?C1))*
3678 0:
3679    abcabcabc\C!1!3
3680--->abcabcabc
3681  0 ^             (abc(?C1))*
3682  1 ^  ^          )
3683  1 ^     ^       )
3684  1 ^        ^    )
3685 0: abcabc
3686 1: abc
3687
3688/(\d{3}(?C))*/I
3689Capturing subpattern count = 1
3690May match empty string
3691No options
3692No first char
3693No need char
3694    123\C+
3695Callout 0: last capture = -1
3696 0: <unset>
3697--->123
3698    ^  ^    )
3699 0: 123
3700 1: 123
3701    123456\C+
3702Callout 0: last capture = -1
3703 0: <unset>
3704--->123456
3705    ^  ^       )
3706Callout 0: last capture = 1
3707 0: <unset>
3708 1: 123
3709--->123456
3710    ^     ^    )
3711 0: 123456
3712 1: 456
3713    123456789\C+
3714Callout 0: last capture = -1
3715 0: <unset>
3716--->123456789
3717    ^  ^          )
3718Callout 0: last capture = 1
3719 0: <unset>
3720 1: 123
3721--->123456789
3722    ^     ^       )
3723Callout 0: last capture = 1
3724 0: <unset>
3725 1: 456
3726--->123456789
3727    ^        ^    )
3728 0: 123456789
3729 1: 789
3730
3731/((xyz)(?C)p|(?C1)xyzabc)/I
3732Capturing subpattern count = 2
3733No options
3734First char = 'x'
3735No need char
3736    xyzabc\C+
3737Callout 0: last capture = 2
3738 0: <unset>
3739 1: <unset>
3740 2: xyz
3741--->xyzabc
3742    ^  ^       p
3743Callout 1: last capture = -1
3744 0: <unset>
3745--->xyzabc
3746    ^          x
3747 0: xyzabc
3748 1: xyzabc
3749
3750/(X)((xyz)(?C)p|(?C1)xyzabc)/I
3751Capturing subpattern count = 3
3752No options
3753First char = 'X'
3754Need char = 'x'
3755    Xxyzabc\C+
3756Callout 0: last capture = 3
3757 0: <unset>
3758 1: X
3759 2: <unset>
3760 3: xyz
3761--->Xxyzabc
3762    ^   ^       p
3763Callout 1: last capture = 1
3764 0: <unset>
3765 1: X
3766--->Xxyzabc
3767    ^^          x
3768 0: Xxyzabc
3769 1: X
3770 2: xyzabc
3771
3772/(?=(abc))(?C)abcdef/I
3773Capturing subpattern count = 1
3774No options
3775First char = 'a'
3776Need char = 'f'
3777    abcdef\C+
3778Callout 0: last capture = 1
3779 0: <unset>
3780 1: abc
3781--->abcdef
3782    ^          a
3783 0: abcdef
3784 1: abc
3785
3786/(?!(abc)(?C1)d)(?C2)abcxyz/I
3787Capturing subpattern count = 1
3788No options
3789First char = 'a'
3790Need char = 'z'
3791    abcxyz\C+
3792Callout 1: last capture = 1
3793 0: <unset>
3794 1: abc
3795--->abcxyz
3796    ^  ^       d
3797Callout 2: last capture = -1
3798 0: <unset>
3799--->abcxyz
3800    ^          a
3801 0: abcxyz
3802
3803/(?<=(abc)(?C))xyz/I
3804Capturing subpattern count = 1
3805Max lookbehind = 3
3806No options
3807First char = 'x'
3808Need char = 'z'
3809   abcxyz\C+
3810Callout 0: last capture = 1
3811 0: <unset>
3812 1: abc
3813--->abcxyz
3814       ^       )
3815 0: xyz
3816 1: abc
3817
3818/a(b+)(c*)(?C1)/I
3819Capturing subpattern count = 2
3820No options
3821First char = 'a'
3822Need char = 'b'
3823    abbbbbccc\C*1
3824--->abbbbbccc
3825  1 ^        ^
3826Callout data = 1
3827No match
3828
3829/a(b+?)(c*?)(?C1)/I
3830Capturing subpattern count = 2
3831No options
3832First char = 'a'
3833Need char = 'b'
3834    abbbbbccc\C*1
3835--->abbbbbccc
3836  1 ^ ^
3837Callout data = 1
3838  1 ^  ^
3839Callout data = 1
3840  1 ^   ^
3841Callout data = 1
3842  1 ^    ^
3843Callout data = 1
3844  1 ^     ^
3845Callout data = 1
3846  1 ^      ^
3847Callout data = 1
3848  1 ^       ^
3849Callout data = 1
3850  1 ^        ^
3851Callout data = 1
3852No match
3853
3854/(?C)abc/I
3855Capturing subpattern count = 0
3856No options
3857First char = 'a'
3858Need char = 'c'
3859
3860/(?C)^abc/I
3861Capturing subpattern count = 0
3862Options: anchored
3863No first char
3864No need char
3865
3866/(?C)a|b/IS
3867Capturing subpattern count = 0
3868No options
3869No first char
3870No need char
3871Subject length lower bound = 1
3872Starting chars: a b
3873
3874/(?R)/I
3875Failed: recursive call could loop indefinitely at offset 3
3876
3877/(a|(?R))/I
3878Failed: recursive call could loop indefinitely at offset 6
3879
3880/(ab|(bc|(de|(?R))))/I
3881Failed: recursive call could loop indefinitely at offset 15
3882
3883/x(ab|(bc|(de|(?R))))/I
3884Capturing subpattern count = 3
3885No options
3886First char = 'x'
3887No need char
3888    xab
3889 0: xab
3890 1: ab
3891    xbc
3892 0: xbc
3893 1: bc
3894 2: bc
3895    xde
3896 0: xde
3897 1: de
3898 2: de
3899 3: de
3900    xxab
3901 0: xxab
3902 1: xab
3903 2: xab
3904 3: xab
3905    xxxab
3906 0: xxxab
3907 1: xxab
3908 2: xxab
3909 3: xxab
3910    *** Failers
3911No match
3912    xyab
3913No match
3914
3915/(ab|(bc|(de|(?1))))/I
3916Failed: recursive call could loop indefinitely at offset 15
3917
3918/x(ab|(bc|(de|(?1)x)x)x)/I
3919Failed: recursive call could loop indefinitely at offset 16
3920
3921/^([^()]|\((?1)*\))*$/I
3922Capturing subpattern count = 1
3923May match empty string
3924Options: anchored
3925No first char
3926No need char
3927    abc
3928 0: abc
3929 1: c
3930    a(b)c
3931 0: a(b)c
3932 1: c
3933    a(b(c))d
3934 0: a(b(c))d
3935 1: d
3936    *** Failers)
3937No match
3938    a(b(c)d
3939No match
3940
3941/^>abc>([^()]|\((?1)*\))*<xyz<$/I
3942Capturing subpattern count = 1
3943Options: anchored
3944No first char
3945Need char = '<'
3946   >abc>123<xyz<
3947 0: >abc>123<xyz<
3948 1: 3
3949   >abc>1(2)3<xyz<
3950 0: >abc>1(2)3<xyz<
3951 1: 3
3952   >abc>(1(2)3)<xyz<
3953 0: >abc>(1(2)3)<xyz<
3954 1: (1(2)3)
3955
3956/(a(?1)b)/DZ
3957------------------------------------------------------------------
3958        Bra
3959        CBra 1
3960        a
3961        Recurse
3962        b
3963        Ket
3964        Ket
3965        End
3966------------------------------------------------------------------
3967Capturing subpattern count = 1
3968No options
3969First char = 'a'
3970Need char = 'b'
3971
3972/(a(?1)+b)/DZ
3973------------------------------------------------------------------
3974        Bra
3975        CBra 1
3976        a
3977        Once
3978        Recurse
3979        KetRmax
3980        b
3981        Ket
3982        Ket
3983        End
3984------------------------------------------------------------------
3985Capturing subpattern count = 1
3986No options
3987First char = 'a'
3988Need char = 'b'
3989
3990/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3991Capturing subpattern count = 2
3992Options: anchored
3993No first char
3994No need char
3995    12
3996 0: 12
3997 1: 12
3998    (((2+2)*-3)-7)
3999 0: (((2+2)*-3)-7)
4000 1: (((2+2)*-3)-7)
4001 2: -
4002    -12
4003 0: -12
4004 1: -12
4005    *** Failers
4006No match
4007    ((2+2)*-3)-7)
4008No match
4009
4010/^(x(y|(?1){2})z)/I
4011Capturing subpattern count = 2
4012Options: anchored
4013No first char
4014No need char
4015    xyz
4016 0: xyz
4017 1: xyz
4018 2: y
4019    xxyzxyzz
4020 0: xxyzxyzz
4021 1: xxyzxyzz
4022 2: xyzxyz
4023    *** Failers
4024No match
4025    xxyzz
4026No match
4027    xxyzxyzxyzz
4028No match
4029
4030/((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4031Capturing subpattern count = 2
4032Options: extended
4033First char = '<'
4034Need char = '>'
4035    <>
4036 0: <>
4037 1: <>
4038 2: <>
4039    <abcd>
4040 0: <abcd>
4041 1: <abcd>
4042 2: <abcd>
4043    <abc <123> hij>
4044 0: <abc <123> hij>
4045 1: <abc <123> hij>
4046 2: <abc <123> hij>
4047    <abc <def> hij>
4048 0: <def>
4049 1: <def>
4050 2: <def>
4051    <abc<>def>
4052 0: <abc<>def>
4053 1: <abc<>def>
4054 2: <abc<>def>
4055    <abc<>
4056 0: <>
4057 1: <>
4058 2: <>
4059    *** Failers
4060No match
4061    <abc
4062No match
4063
4064/(?1)/I
4065Failed: reference to non-existent subpattern at offset 3
4066
4067/((?2)(abc)/I
4068Failed: missing ) at offset 10
4069
4070/^(abc)def(?1)/I
4071Capturing subpattern count = 1
4072Options: anchored
4073No first char
4074No need char
4075    abcdefabc
4076 0: abcdefabc
4077 1: abc
4078
4079/^(a|b|c)=(?1)+/I
4080Capturing subpattern count = 1
4081Options: anchored
4082No first char
4083No need char
4084    a=a
4085 0: a=a
4086 1: a
4087    a=b
4088 0: a=b
4089 1: a
4090    a=bc
4091 0: a=bc
4092 1: a
4093
4094/^(a|b|c)=((?1))+/I
4095Capturing subpattern count = 2
4096Options: anchored
4097No first char
4098No need char
4099    a=a
4100 0: a=a
4101 1: a
4102 2: a
4103    a=b
4104 0: a=b
4105 1: a
4106 2: b
4107    a=bc
4108 0: a=bc
4109 1: a
4110 2: c
4111
4112/a(?P<name1>b|c)d(?P<longername2>e)/DZ
4113------------------------------------------------------------------
4114        Bra
4115        a
4116        CBra 1
4117        b
4118        Alt
4119        c
4120        Ket
4121        d
4122        CBra 2
4123        e
4124        Ket
4125        Ket
4126        End
4127------------------------------------------------------------------
4128Capturing subpattern count = 2
4129Named capturing subpatterns:
4130  longername2   2
4131  name1         1
4132No options
4133First char = 'a'
4134Need char = 'e'
4135    abde
4136 0: abde
4137 1: b
4138 2: e
4139    acde
4140 0: acde
4141 1: c
4142 2: e
4143
4144/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4145------------------------------------------------------------------
4146        Bra
4147        Bra
4148        a
4149        CBra 1
4150        c
4151        CBra 2
4152        d
4153        Ket
4154        Ket
4155        Ket
4156        CBra 3
4157        a
4158        Ket
4159        Ket
4160        End
4161------------------------------------------------------------------
4162Capturing subpattern count = 3
4163Named capturing subpatterns:
4164  a   3
4165  c   1
4166  d   2
4167No options
4168First char = 'a'
4169Need char = 'a'
4170
4171/(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4172------------------------------------------------------------------
4173        Bra
4174        CBra 1
4175        a
4176        Ket
4177        Any
4178        Any
4179        Any
4180        \1
4181        bbb
4182        Recurse
4183        d
4184        Ket
4185        End
4186------------------------------------------------------------------
4187Capturing subpattern count = 1
4188Max back reference = 1
4189Named capturing subpatterns:
4190  a   1
4191No options
4192First char = 'a'
4193Need char = 'd'
4194
4195/^\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
4196Capturing subpattern count = 4
4197Max back reference = 4
4198Named capturing subpatterns:
4199  four    4
4200  one     1
4201  three   3
4202  two     2
4203May match empty string
4204Options: anchored caseless
4205No first char
4206No need char
4207    1221
4208 0: 1221
4209 1: 1221
4210 2: 1
4211    Satan, oscillate my metallic sonatas!
4212 0: Satan, oscillate my metallic sonatas!
4213 1: <unset>
4214 2: <unset>
4215 3: Satan, oscillate my metallic sonatas
4216 4: S
4217    A man, a plan, a canal: Panama!
4218 0: A man, a plan, a canal: Panama!
4219 1: <unset>
4220 2: <unset>
4221 3: A man, a plan, a canal: Panama
4222 4: A
4223    Able was I ere I saw Elba.
4224 0: Able was I ere I saw Elba.
4225 1: <unset>
4226 2: <unset>
4227 3: Able was I ere I saw Elba
4228 4: A
4229    *** Failers
4230No match
4231    The quick brown fox
4232No match
4233
4234/((?(R)a|b))\1(?1)?/I
4235Capturing subpattern count = 1
4236Max back reference = 1
4237No options
4238No first char
4239No need char
4240  bb
4241 0: bb
4242 1: b
4243  bbaa
4244 0: bba
4245 1: b
4246
4247/(.*)a/Is
4248Capturing subpattern count = 1
4249Options: anchored dotall
4250No first char
4251Need char = 'a'
4252
4253/(.*)a\1/Is
4254Capturing subpattern count = 1
4255Max back reference = 1
4256Options: dotall
4257No first char
4258Need char = 'a'
4259
4260/(.*)a(b)\2/Is
4261Capturing subpattern count = 2
4262Max back reference = 2
4263Options: anchored dotall
4264No first char
4265Need char = 'b'
4266
4267/((.*)a|(.*)b)z/Is
4268Capturing subpattern count = 3
4269Options: anchored dotall
4270No first char
4271Need char = 'z'
4272
4273/((.*)a|(.*)b)z\1/Is
4274Capturing subpattern count = 3
4275Max back reference = 1
4276Options: dotall
4277No first char
4278Need char = 'z'
4279
4280/((.*)a|(.*)b)z\2/Is
4281Capturing subpattern count = 3
4282Max back reference = 2
4283Options: dotall
4284No first char
4285Need char = 'z'
4286
4287/((.*)a|(.*)b)z\3/Is
4288Capturing subpattern count = 3
4289Max back reference = 3
4290Options: dotall
4291No first char
4292Need char = 'z'
4293
4294/((.*)a|^(.*)b)z\3/Is
4295Capturing subpattern count = 3
4296Max back reference = 3
4297Options: anchored dotall
4298No first char
4299Need char = 'z'
4300
4301/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4302Capturing subpattern count = 31
4303May match empty string
4304Options: anchored dotall
4305No first char
4306No need char
4307
4308/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4309Capturing subpattern count = 31
4310Max back reference = 31
4311May match empty string
4312Options: dotall
4313No first char
4314No need char
4315
4316/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4317Capturing subpattern count = 32
4318Max back reference = 32
4319May match empty string
4320Options: dotall
4321No first char
4322No need char
4323
4324/(a)(bc)/INDZ
4325------------------------------------------------------------------
4326        Bra
4327        Bra
4328        a
4329        Ket
4330        Bra
4331        bc
4332        Ket
4333        Ket
4334        End
4335------------------------------------------------------------------
4336Capturing subpattern count = 0
4337Options: no_auto_capture
4338First char = 'a'
4339Need char = 'c'
4340  abc
4341 0: abc
4342
4343/(?P<one>a)(bc)/INDZ
4344------------------------------------------------------------------
4345        Bra
4346        CBra 1
4347        a
4348        Ket
4349        Bra
4350        bc
4351        Ket
4352        Ket
4353        End
4354------------------------------------------------------------------
4355Capturing subpattern count = 1
4356Named capturing subpatterns:
4357  one   1
4358Options: no_auto_capture
4359First char = 'a'
4360Need char = 'c'
4361  abc
4362 0: abc
4363 1: a
4364
4365/(a)(?P<named>bc)/INDZ
4366------------------------------------------------------------------
4367        Bra
4368        Bra
4369        a
4370        Ket
4371        CBra 1
4372        bc
4373        Ket
4374        Ket
4375        End
4376------------------------------------------------------------------
4377Capturing subpattern count = 1
4378Named capturing subpatterns:
4379  named   1
4380Options: no_auto_capture
4381First char = 'a'
4382Need char = 'c'
4383
4384/(a+)*zz/I
4385Capturing subpattern count = 1
4386No options
4387No first char
4388Need char = 'z'
4389  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4390Minimum match() limit = 8
4391Minimum match() recursion limit = 6
4392 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4393 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4394  aaaaaaaaaaaaaz\M
4395Minimum match() limit = 32768
4396Minimum match() recursion limit = 29
4397No match
4398
4399/(aaa(?C1)bbb|ab)/I
4400Capturing subpattern count = 1
4401No options
4402First char = 'a'
4403Need char = 'b'
4404   aaabbb
4405--->aaabbb
4406  1 ^  ^       b
4407 0: aaabbb
4408 1: aaabbb
4409   aaabbb\C*0
4410--->aaabbb
4411  1 ^  ^       b
4412 0: aaabbb
4413 1: aaabbb
4414   aaabbb\C*1
4415--->aaabbb
4416  1 ^  ^       b
4417Callout data = 1
4418 0: ab
4419 1: ab
4420   aaabbb\C*-1
4421--->aaabbb
4422  1 ^  ^       b
4423Callout data = -1
4424No match
4425
4426/ab(?P<one>cd)ef(?P<two>gh)/I
4427Capturing subpattern count = 2
4428Named capturing subpatterns:
4429  one   1
4430  two   2
4431No options
4432First char = 'a'
4433Need char = 'h'
4434    abcdefgh
4435 0: abcdefgh
4436 1: cd
4437 2: gh
4438    abcdefgh\C1\Gtwo
4439 0: abcdefgh
4440 1: cd
4441 2: gh
4442 1C cd (2)
4443  G gh (2) two
4444    abcdefgh\Cone\Ctwo
4445 0: abcdefgh
4446 1: cd
4447 2: gh
4448  C cd (2) one
4449  C gh (2) two
4450    abcdefgh\Cthree
4451no parentheses with name "three"
4452 0: abcdefgh
4453 1: cd
4454 2: gh
4455copy substring three failed -7
4456
4457/(?P<Tes>)(?P<Test>)/DZ
4458------------------------------------------------------------------
4459        Bra
4460        CBra 1
4461        Ket
4462        CBra 2
4463        Ket
4464        Ket
4465        End
4466------------------------------------------------------------------
4467Capturing subpattern count = 2
4468Named capturing subpatterns:
4469  Tes    1
4470  Test   2
4471May match empty string
4472No options
4473No first char
4474No need char
4475
4476/(?P<Test>)(?P<Tes>)/DZ
4477------------------------------------------------------------------
4478        Bra
4479        CBra 1
4480        Ket
4481        CBra 2
4482        Ket
4483        Ket
4484        End
4485------------------------------------------------------------------
4486Capturing subpattern count = 2
4487Named capturing subpatterns:
4488  Tes    2
4489  Test   1
4490May match empty string
4491No options
4492No first char
4493No need char
4494
4495/(?P<Z>zz)(?P<A>aa)/I
4496Capturing subpattern count = 2
4497Named capturing subpatterns:
4498  A   2
4499  Z   1
4500No options
4501First char = 'z'
4502Need char = 'a'
4503    zzaa\CZ
4504 0: zzaa
4505 1: zz
4506 2: aa
4507  C zz (2) Z
4508    zzaa\CA
4509 0: zzaa
4510 1: zz
4511 2: aa
4512  C aa (2) A
4513
4514/(?P<x>eks)(?P<x>eccs)/I
4515Failed: two named subpatterns have the same name at offset 15
4516
4517/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4518Failed: two named subpatterns have the same name at offset 30
4519
4520"\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4521Capturing subpattern count = 3
4522Named capturing subpatterns:
4523  elem   2
4524No options
4525First char = '['
4526Need char = ']'
4527    [10,20,30,5,5,4,4,2,43,23,4234]
4528 0: [10,20,30,5,5,4,4,2,43,23,4234]
4529 1: 10,20,30,5,5,4,4,2,43,23,4234
4530 2: 10
4531 3: ,4234
4532    *** Failers
4533No match
4534    []
4535No match
4536
4537"\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4538Capturing subpattern count = 3
4539Named capturing subpatterns:
4540  elem   2
4541No options
4542First char = '['
4543Need char = ']'
4544    [10,20,30,5,5,4,4,2,43,23,4234]
4545 0: [10,20,30,5,5,4,4,2,43,23,4234]
4546 1: 10,20,30,5,5,4,4,2,43,23,4234
4547 2: 10
4548 3: ,4234
4549    []
4550 0: []
4551
4552/(a(b(?2)c))?/DZ
4553------------------------------------------------------------------
4554        Bra
4555        Brazero
4556        CBra 1
4557        a
4558        CBra 2
4559        b
4560        Recurse
4561        c
4562        Ket
4563        Ket
4564        Ket
4565        End
4566------------------------------------------------------------------
4567Capturing subpattern count = 2
4568May match empty string
4569No options
4570No first char
4571No need char
4572
4573/(a(b(?2)c))*/DZ
4574------------------------------------------------------------------
4575        Bra
4576        Brazero
4577        CBra 1
4578        a
4579        CBra 2
4580        b
4581        Recurse
4582        c
4583        Ket
4584        KetRmax
4585        Ket
4586        End
4587------------------------------------------------------------------
4588Capturing subpattern count = 2
4589May match empty string
4590No options
4591No first char
4592No need char
4593
4594/(a(b(?2)c)){0,2}/DZ
4595------------------------------------------------------------------
4596        Bra
4597        Brazero
4598        Bra
4599        CBra 1
4600        a
4601        CBra 2
4602        b
4603        Recurse
4604        c
4605        Ket
4606        Ket
4607        Brazero
4608        CBra 1
4609        a
4610        CBra 2
4611        b
4612        Recurse
4613        c
4614        Ket
4615        Ket
4616        Ket
4617        Ket
4618        End
4619------------------------------------------------------------------
4620Capturing subpattern count = 2
4621May match empty string
4622No options
4623No first char
4624No need char
4625
4626/[ab]{1}+/DZ
4627------------------------------------------------------------------
4628        Bra
4629        [ab]{1,1}+
4630        Ket
4631        End
4632------------------------------------------------------------------
4633Capturing subpattern count = 0
4634No options
4635No first char
4636No need char
4637
4638/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4639Capturing subpattern count = 3
4640Options: caseless
4641No first char
4642Need char = 'g' (caseless)
4643     Baby Bjorn Active Carrier - With free SHIPPING!!
4644 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4645 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4646
4647/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4648Capturing subpattern count = 3
4649Options: caseless
4650No first char
4651Need char = 'g' (caseless)
4652Subject length lower bound = 8
4653No starting char list
4654     Baby Bjorn Active Carrier - With free SHIPPING!!
4655 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4656 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4657
4658/a*.*b/ISDZ
4659------------------------------------------------------------------
4660        Bra
4661        a*
4662        Any*
4663        b
4664        Ket
4665        End
4666------------------------------------------------------------------
4667Capturing subpattern count = 0
4668No options
4669No first char
4670Need char = 'b'
4671Subject length lower bound = 1
4672No starting char list
4673
4674/(a|b)*.?c/ISDZ
4675------------------------------------------------------------------
4676        Bra
4677        Brazero
4678        CBra 1
4679        a
4680        Alt
4681        b
4682        KetRmax
4683        Any?
4684        c
4685        Ket
4686        End
4687------------------------------------------------------------------
4688Capturing subpattern count = 1
4689No options
4690No first char
4691Need char = 'c'
4692Subject length lower bound = 1
4693No starting char list
4694
4695/abc(?C255)de(?C)f/DZ
4696------------------------------------------------------------------
4697        Bra
4698        abc
4699        Callout 255 10 1
4700        de
4701        Callout 0 16 1
4702        f
4703        Ket
4704        End
4705------------------------------------------------------------------
4706Capturing subpattern count = 0
4707No options
4708First char = 'a'
4709Need char = 'f'
4710
4711/abcde/ICDZ
4712------------------------------------------------------------------
4713        Bra
4714        Callout 255 0 1
4715        a
4716        Callout 255 1 1
4717        b
4718        Callout 255 2 1
4719        c
4720        Callout 255 3 1
4721        d
4722        Callout 255 4 1
4723        e
4724        Callout 255 5 0
4725        Ket
4726        End
4727------------------------------------------------------------------
4728Capturing subpattern count = 0
4729Options:
4730First char = 'a'
4731Need char = 'e'
4732  abcde
4733--->abcde
4734 +0 ^         a
4735 +1 ^^        b
4736 +2 ^ ^       c
4737 +3 ^  ^      d
4738 +4 ^   ^     e
4739 +5 ^    ^
4740 0: abcde
4741  abcdfe
4742--->abcdfe
4743 +0 ^          a
4744 +1 ^^         b
4745 +2 ^ ^        c
4746 +3 ^  ^       d
4747 +4 ^   ^      e
4748No match
4749
4750/a*b/ICDZS
4751------------------------------------------------------------------
4752        Bra
4753        Callout 255 0 2
4754        a*+
4755        Callout 255 2 1
4756        b
4757        Callout 255 3 0
4758        Ket
4759        End
4760------------------------------------------------------------------
4761Capturing subpattern count = 0
4762Options:
4763No first char
4764Need char = 'b'
4765Subject length lower bound = 1
4766Starting chars: a b
4767  ab
4768--->ab
4769 +0 ^      a*
4770 +2 ^^     b
4771 +3 ^ ^
4772 0: ab
4773  aaaab
4774--->aaaab
4775 +0 ^         a*
4776 +2 ^   ^     b
4777 +3 ^    ^
4778 0: aaaab
4779  aaaacb
4780--->aaaacb
4781 +0 ^          a*
4782 +2 ^   ^      b
4783 +0  ^         a*
4784 +2  ^  ^      b
4785 +0   ^        a*
4786 +2   ^ ^      b
4787 +0    ^       a*
4788 +2    ^^      b
4789 +0      ^     a*
4790 +2      ^     b
4791 +3      ^^
4792 0: b
4793
4794/a*b/ICDZSS
4795------------------------------------------------------------------
4796        Bra
4797        Callout 255 0 2
4798        a*+
4799        Callout 255 2 1
4800        b
4801        Callout 255 3 0
4802        Ket
4803        End
4804------------------------------------------------------------------
4805Capturing subpattern count = 0
4806Options:
4807No first char
4808Need char = 'b'
4809  ab
4810--->ab
4811 +0 ^      a*
4812 +2 ^^     b
4813 +3 ^ ^
4814 0: ab
4815  aaaab
4816--->aaaab
4817 +0 ^         a*
4818 +2 ^   ^     b
4819 +3 ^    ^
4820 0: aaaab
4821  aaaacb
4822--->aaaacb
4823 +0 ^          a*
4824 +2 ^   ^      b
4825 +0  ^         a*
4826 +2  ^  ^      b
4827 +0   ^        a*
4828 +2   ^ ^      b
4829 +0    ^       a*
4830 +2    ^^      b
4831 +0     ^      a*
4832 +2     ^      b
4833 +0      ^     a*
4834 +2      ^     b
4835 +3      ^^
4836 0: b
4837
4838/a+b/ICDZ
4839------------------------------------------------------------------
4840        Bra
4841        Callout 255 0 2
4842        a++
4843        Callout 255 2 1
4844        b
4845        Callout 255 3 0
4846        Ket
4847        End
4848------------------------------------------------------------------
4849Capturing subpattern count = 0
4850Options:
4851First char = 'a'
4852Need char = 'b'
4853  ab
4854--->ab
4855 +0 ^      a+
4856 +2 ^^     b
4857 +3 ^ ^
4858 0: ab
4859  aaaab
4860--->aaaab
4861 +0 ^         a+
4862 +2 ^   ^     b
4863 +3 ^    ^
4864 0: aaaab
4865  aaaacb
4866--->aaaacb
4867 +0 ^          a+
4868 +2 ^   ^      b
4869 +0  ^         a+
4870 +2  ^  ^      b
4871 +0   ^        a+
4872 +2   ^ ^      b
4873 +0    ^       a+
4874 +2    ^^      b
4875No match
4876
4877/(abc|def)x/ICDZS
4878------------------------------------------------------------------
4879        Bra
4880        Callout 255 0 9
4881        CBra 1
4882        Callout 255 1 1
4883        a
4884        Callout 255 2 1
4885        b
4886        Callout 255 3 1
4887        c
4888        Callout 255 4 0
4889        Alt
4890        Callout 255 5 1
4891        d
4892        Callout 255 6 1
4893        e
4894        Callout 255 7 1
4895        f
4896        Callout 255 8 0
4897        Ket
4898        Callout 255 9 1
4899        x
4900        Callout 255 10 0
4901        Ket
4902        End
4903------------------------------------------------------------------
4904Capturing subpattern count = 1
4905Options:
4906No first char
4907Need char = 'x'
4908Subject length lower bound = 4
4909Starting chars: a d
4910  abcx
4911--->abcx
4912 +0 ^        (abc|def)
4913 +1 ^        a
4914 +2 ^^       b
4915 +3 ^ ^      c
4916 +4 ^  ^     |
4917 +9 ^  ^     x
4918+10 ^   ^
4919 0: abcx
4920 1: abc
4921  defx
4922--->defx
4923 +0 ^        (abc|def)
4924 +1 ^        a
4925 +5 ^        d
4926 +6 ^^       e
4927 +7 ^ ^      f
4928 +8 ^  ^     )
4929 +9 ^  ^     x
4930+10 ^   ^
4931 0: defx
4932 1: def
4933  ** Failers
4934No match
4935  abcdefzx
4936--->abcdefzx
4937 +0 ^            (abc|def)
4938 +1 ^            a
4939 +2 ^^           b
4940 +3 ^ ^          c
4941 +4 ^  ^         |
4942 +9 ^  ^         x
4943 +5 ^            d
4944 +0    ^         (abc|def)
4945 +1    ^         a
4946 +5    ^         d
4947 +6    ^^        e
4948 +7    ^ ^       f
4949 +8    ^  ^      )
4950 +9    ^  ^      x
4951No match
4952
4953/(abc|def)x/ICDZSS
4954------------------------------------------------------------------
4955        Bra
4956        Callout 255 0 9
4957        CBra 1
4958        Callout 255 1 1
4959        a
4960        Callout 255 2 1
4961        b
4962        Callout 255 3 1
4963        c
4964        Callout 255 4 0
4965        Alt
4966        Callout 255 5 1
4967        d
4968        Callout 255 6 1
4969        e
4970        Callout 255 7 1
4971        f
4972        Callout 255 8 0
4973        Ket
4974        Callout 255 9 1
4975        x
4976        Callout 255 10 0
4977        Ket
4978        End
4979------------------------------------------------------------------
4980Capturing subpattern count = 1
4981Options:
4982No first char
4983Need char = 'x'
4984  abcx
4985--->abcx
4986 +0 ^        (abc|def)
4987 +1 ^        a
4988 +2 ^^       b
4989 +3 ^ ^      c
4990 +4 ^  ^     |
4991 +9 ^  ^     x
4992+10 ^   ^
4993 0: abcx
4994 1: abc
4995  defx
4996--->defx
4997 +0 ^        (abc|def)
4998 +1 ^        a
4999 +5 ^        d
5000 +6 ^^       e
5001 +7 ^ ^      f
5002 +8 ^  ^     )
5003 +9 ^  ^     x
5004+10 ^   ^
5005 0: defx
5006 1: def
5007  ** Failers
5008No match
5009  abcdefzx
5010--->abcdefzx
5011 +0 ^            (abc|def)
5012 +1 ^            a
5013 +2 ^^           b
5014 +3 ^ ^          c
5015 +4 ^  ^         |
5016 +9 ^  ^         x
5017 +5 ^            d
5018 +0  ^           (abc|def)
5019 +1  ^           a
5020 +5  ^           d
5021 +0   ^          (abc|def)
5022 +1   ^          a
5023 +5   ^          d
5024 +0    ^         (abc|def)
5025 +1    ^         a
5026 +5    ^         d
5027 +6    ^^        e
5028 +7    ^ ^       f
5029 +8    ^  ^      )
5030 +9    ^  ^      x
5031 +0     ^        (abc|def)
5032 +1     ^        a
5033 +5     ^        d
5034 +0      ^       (abc|def)
5035 +1      ^       a
5036 +5      ^       d
5037 +0       ^      (abc|def)
5038 +1       ^      a
5039 +5       ^      d
5040 +0        ^     (abc|def)
5041 +1        ^     a
5042 +5        ^     d
5043No match
5044
5045/(ab|cd){3,4}/IC
5046Capturing subpattern count = 1
5047Options:
5048No first char
5049No need char
5050  ababab
5051--->ababab
5052 +0 ^          (ab|cd){3,4}
5053 +1 ^          a
5054 +2 ^^         b
5055 +3 ^ ^        |
5056 +1 ^ ^        a
5057 +2 ^  ^       b
5058 +3 ^   ^      |
5059 +1 ^   ^      a
5060 +2 ^    ^     b
5061 +3 ^     ^    |
5062 +1 ^     ^    a
5063 +4 ^     ^    c
5064+12 ^     ^
5065 0: ababab
5066 1: ab
5067  abcdabcd
5068--->abcdabcd
5069 +0 ^            (ab|cd){3,4}
5070 +1 ^            a
5071 +2 ^^           b
5072 +3 ^ ^          |
5073 +1 ^ ^          a
5074 +4 ^ ^          c
5075 +5 ^  ^         d
5076 +6 ^   ^        )
5077 +1 ^   ^        a
5078 +2 ^    ^       b
5079 +3 ^     ^      |
5080 +1 ^     ^      a
5081 +4 ^     ^      c
5082 +5 ^      ^     d
5083 +6 ^       ^    )
5084+12 ^       ^
5085 0: abcdabcd
5086 1: cd
5087  abcdcdcdcdcd
5088--->abcdcdcdcdcd
5089 +0 ^                (ab|cd){3,4}
5090 +1 ^                a
5091 +2 ^^               b
5092 +3 ^ ^              |
5093 +1 ^ ^              a
5094 +4 ^ ^              c
5095 +5 ^  ^             d
5096 +6 ^   ^            )
5097 +1 ^   ^            a
5098 +4 ^   ^            c
5099 +5 ^    ^           d
5100 +6 ^     ^          )
5101 +1 ^     ^          a
5102 +4 ^     ^          c
5103 +5 ^      ^         d
5104 +6 ^       ^        )
5105+12 ^       ^
5106 0: abcdcdcd
5107 1: cd
5108
5109/([ab]{,4}c|xy)/ICDZS
5110------------------------------------------------------------------
5111        Bra
5112        Callout 255 0 14
5113        CBra 1
5114        Callout 255 1 4
5115        [ab]
5116        Callout 255 5 1
5117        {
5118        Callout 255 6 1
5119        ,
5120        Callout 255 7 1
5121        4
5122        Callout 255 8 1
5123        }
5124        Callout 255 9 1
5125        c
5126        Callout 255 10 0
5127        Alt
5128        Callout 255 11 1
5129        x
5130        Callout 255 12 1
5131        y
5132        Callout 255 13 0
5133        Ket
5134        Callout 255 14 0
5135        Ket
5136        End
5137------------------------------------------------------------------
5138Capturing subpattern count = 1
5139Options:
5140No first char
5141No need char
5142Subject length lower bound = 2
5143Starting chars: a b x
5144    Note: that { does NOT introduce a quantifier
5145--->Note: that { does NOT introduce a quantifier
5146 +0         ^                                        ([ab]{,4}c|xy)
5147 +1         ^                                        [ab]
5148 +5         ^^                                       {
5149+11         ^                                        x
5150 +0                                 ^                ([ab]{,4}c|xy)
5151 +1                                 ^                [ab]
5152 +5                                 ^^               {
5153+11                                 ^                x
5154 +0                                     ^            ([ab]{,4}c|xy)
5155 +1                                     ^            [ab]
5156 +5                                     ^^           {
5157+11                                     ^            x
5158No match
5159
5160/([ab]{,4}c|xy)/ICDZSS
5161------------------------------------------------------------------
5162        Bra
5163        Callout 255 0 14
5164        CBra 1
5165        Callout 255 1 4
5166        [ab]
5167        Callout 255 5 1
5168        {
5169        Callout 255 6 1
5170        ,
5171        Callout 255 7 1
5172        4
5173        Callout 255 8 1
5174        }
5175        Callout 255 9 1
5176        c
5177        Callout 255 10 0
5178        Alt
5179        Callout 255 11 1
5180        x
5181        Callout 255 12 1
5182        y
5183        Callout 255 13 0
5184        Ket
5185        Callout 255 14 0
5186        Ket
5187        End
5188------------------------------------------------------------------
5189Capturing subpattern count = 1
5190Options:
5191No first char
5192No need char
5193    Note: that { does NOT introduce a quantifier
5194--->Note: that { does NOT introduce a quantifier
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+11      ^                                           x
5213 +0       ^                                          ([ab]{,4}c|xy)
5214 +1       ^                                          [ab]
5215+11       ^                                          x
5216 +0        ^                                         ([ab]{,4}c|xy)
5217 +1        ^                                         [ab]
5218+11        ^                                         x
5219 +0         ^                                        ([ab]{,4}c|xy)
5220 +1         ^                                        [ab]
5221 +5         ^^                                       {
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+11                              ^                   x
5286 +0                               ^                  ([ab]{,4}c|xy)
5287 +1                               ^                  [ab]
5288+11                               ^                  x
5289 +0                                ^                 ([ab]{,4}c|xy)
5290 +1                                ^                 [ab]
5291+11                                ^                 x
5292 +0                                 ^                ([ab]{,4}c|xy)
5293 +1                                 ^                [ab]
5294 +5                                 ^^               {
5295+11                                 ^                x
5296 +0                                  ^               ([ab]{,4}c|xy)
5297 +1                                  ^               [ab]
5298+11                                  ^               x
5299 +0                                   ^              ([ab]{,4}c|xy)
5300 +1                                   ^              [ab]
5301+11                                   ^              x
5302 +0                                    ^             ([ab]{,4}c|xy)
5303 +1                                    ^             [ab]
5304+11                                    ^             x
5305 +0                                     ^            ([ab]{,4}c|xy)
5306 +1                                     ^            [ab]
5307 +5                                     ^^           {
5308+11                                     ^            x
5309 +0                                      ^           ([ab]{,4}c|xy)
5310 +1                                      ^           [ab]
5311+11                                      ^           x
5312 +0                                       ^          ([ab]{,4}c|xy)
5313 +1                                       ^          [ab]
5314+11                                       ^          x
5315 +0                                        ^         ([ab]{,4}c|xy)
5316 +1                                        ^         [ab]
5317+11                                        ^         x
5318 +0                                         ^        ([ab]{,4}c|xy)
5319 +1                                         ^        [ab]
5320+11                                         ^        x
5321 +0                                          ^       ([ab]{,4}c|xy)
5322 +1                                          ^       [ab]
5323+11                                          ^       x
5324 +0                                           ^      ([ab]{,4}c|xy)
5325 +1                                           ^      [ab]
5326+11                                           ^      x
5327 +0                                            ^     ([ab]{,4}c|xy)
5328 +1                                            ^     [ab]
5329+11                                            ^     x
5330 +0                                             ^    ([ab]{,4}c|xy)
5331 +1                                             ^    [ab]
5332+11                                             ^    x
5333No match
5334
5335/([ab]{1,4}c|xy){4,5}?123/ICDZ
5336------------------------------------------------------------------
5337        Bra
5338        Callout 255 0 21
5339        CBra 1
5340        Callout 255 1 9
5341        [ab]{1,4}+
5342        Callout 255 10 1
5343        c
5344        Callout 255 11 0
5345        Alt
5346        Callout 255 12 1
5347        x
5348        Callout 255 13 1
5349        y
5350        Callout 255 14 0
5351        Ket
5352        CBra 1
5353        Callout 255 1 9
5354        [ab]{1,4}+
5355        Callout 255 10 1
5356        c
5357        Callout 255 11 0
5358        Alt
5359        Callout 255 12 1
5360        x
5361        Callout 255 13 1
5362        y
5363        Callout 255 14 0
5364        Ket
5365        CBra 1
5366        Callout 255 1 9
5367        [ab]{1,4}+
5368        Callout 255 10 1
5369        c
5370        Callout 255 11 0
5371        Alt
5372        Callout 255 12 1
5373        x
5374        Callout 255 13 1
5375        y
5376        Callout 255 14 0
5377        Ket
5378        CBra 1
5379        Callout 255 1 9
5380        [ab]{1,4}+
5381        Callout 255 10 1
5382        c
5383        Callout 255 11 0
5384        Alt
5385        Callout 255 12 1
5386        x
5387        Callout 255 13 1
5388        y
5389        Callout 255 14 0
5390        Ket
5391        Braminzero
5392        CBra 1
5393        Callout 255 1 9
5394        [ab]{1,4}+
5395        Callout 255 10 1
5396        c
5397        Callout 255 11 0
5398        Alt
5399        Callout 255 12 1
5400        x
5401        Callout 255 13 1
5402        y
5403        Callout 255 14 0
5404        Ket
5405        Callout 255 21 1
5406        1
5407        Callout 255 22 1
5408        2
5409        Callout 255 23 1
5410        3
5411        Callout 255 24 0
5412        Ket
5413        End
5414------------------------------------------------------------------
5415Capturing subpattern count = 1
5416Options:
5417No first char
5418Need char = '3'
5419    aacaacaacaacaac123
5420--->aacaacaacaacaac123
5421 +0 ^                      ([ab]{1,4}c|xy){4,5}?
5422 +1 ^                      [ab]{1,4}
5423+10 ^ ^                    c
5424+11 ^  ^                   |
5425 +1 ^  ^                   [ab]{1,4}
5426+10 ^    ^                 c
5427+11 ^     ^                |
5428 +1 ^     ^                [ab]{1,4}
5429+10 ^       ^              c
5430+11 ^        ^             |
5431 +1 ^        ^             [ab]{1,4}
5432+10 ^          ^           c
5433+11 ^           ^          |
5434+21 ^           ^          1
5435 +1 ^           ^          [ab]{1,4}
5436+10 ^             ^        c
5437+11 ^              ^       |
5438+21 ^              ^       1
5439+22 ^               ^      2
5440+23 ^                ^     3
5441+24 ^                 ^
5442 0: aacaacaacaacaac123
5443 1: aac
5444
5445/\b.*/I
5446Capturing subpattern count = 0
5447Max lookbehind = 1
5448May match empty string
5449No options
5450No first char
5451No need char
5452  ab cd\>1
5453 0:  cd
5454
5455/\b.*/Is
5456Capturing subpattern count = 0
5457Max lookbehind = 1
5458May match empty string
5459Options: dotall
5460No first char
5461No need char
5462  ab cd\>1
5463 0:  cd
5464
5465/(?!.bcd).*/I
5466Capturing subpattern count = 0
5467May match empty string
5468No options
5469No first char
5470No need char
5471  Xbcd12345
5472 0: bcd12345
5473
5474/abcde/I
5475Capturing subpattern count = 0
5476No options
5477First char = 'a'
5478Need char = 'e'
5479    ab\P
5480Partial match: ab
5481    abc\P
5482Partial match: abc
5483    abcd\P
5484Partial match: abcd
5485    abcde\P
5486 0: abcde
5487    the quick brown abc\P
5488Partial match: abc
5489    ** Failers\P
5490No match
5491    the quick brown abxyz fox\P
5492No match
5493
5494"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
5495Capturing subpattern count = 3
5496Options: anchored
5497No first char
5498Need char = '/'
5499    13/05/04\P
5500 0: 13/05/04
5501 1: 13
5502 2: 05
5503    13/5/2004\P
5504 0: 13/5/2004
5505 1: 13
5506 2: 5
5507 3: 20
5508    02/05/09\P
5509 0: 02/05/09
5510 1: 02
5511 2: 05
5512    1\P
5513Partial match: 1
5514    1/2\P
5515Partial match: 1/2
5516    1/2/0\P
5517Partial match: 1/2/0
5518    1/2/04\P
5519 0: 1/2/04
5520 1: 1
5521 2: 2
5522    0\P
5523Partial match: 0
5524    02/\P
5525Partial match: 02/
5526    02/0\P
5527Partial match: 02/0
5528    02/1\P
5529Partial match: 02/1
5530    ** Failers\P
5531No match
5532    \P
5533No match
5534    123\P
5535No match
5536    33/4/04\P
5537No match
5538    3/13/04\P
5539No match
5540    0/1/2003\P
5541No match
5542    0/\P
5543No match
5544    02/0/\P
5545No match
5546    02/13\P
5547No match
5548
5549/0{0,2}ABC/I
5550Capturing subpattern count = 0
5551No options
5552No first char
5553Need char = 'C'
5554
5555/\d{3,}ABC/I
5556Capturing subpattern count = 0
5557No options
5558No first char
5559Need char = 'C'
5560
5561/\d*ABC/I
5562Capturing subpattern count = 0
5563No options
5564No first char
5565Need char = 'C'
5566
5567/[abc]+DE/I
5568Capturing subpattern count = 0
5569No options
5570No first char
5571Need char = 'E'
5572
5573/[abc]?123/I
5574Capturing subpattern count = 0
5575No options
5576No first char
5577Need char = '3'
5578    123\P
5579 0: 123
5580    a\P
5581Partial match: a
5582    b\P
5583Partial match: b
5584    c\P
5585Partial match: c
5586    c12\P
5587Partial match: c12
5588    c123\P
5589 0: c123
5590
5591/^(?:\d){3,5}X/I
5592Capturing subpattern count = 0
5593Options: anchored
5594No first char
5595Need char = 'X'
5596    1\P
5597Partial match: 1
5598    123\P
5599Partial match: 123
5600    123X
5601 0: 123X
5602    1234\P
5603Partial match: 1234
5604    1234X
5605 0: 1234X
5606    12345\P
5607Partial match: 12345
5608    12345X
5609 0: 12345X
5610    *** Failers
5611No match
5612    1X
5613No match
5614    123456\P
5615No match
5616
5617//KF>testsavedregex
5618Compiled pattern written to testsavedregex
5619Study data written to testsavedregex
5620
5621/abc/IS>testsavedregex
5622Capturing subpattern count = 0
5623No options
5624First char = 'a'
5625Need char = 'c'
5626Subject length lower bound = 3
5627No starting char list
5628Compiled pattern written to testsavedregex
5629Study data written to testsavedregex
5630<testsavedregex
5631Compiled pattern loaded from testsavedregex
5632Study data loaded from testsavedregex
5633    abc
5634 0: abc
5635    ** Failers
5636No match
5637    bca
5638No match
5639
5640/abc/ISS>testsavedregex
5641Capturing subpattern count = 0
5642No options
5643First char = 'a'
5644Need char = 'c'
5645Compiled pattern written to testsavedregex
5646<testsavedregex
5647Compiled pattern loaded from testsavedregex
5648No study data
5649    abc
5650 0: abc
5651    ** Failers
5652No match
5653    bca
5654No match
5655
5656/abc/IFS>testsavedregex
5657Capturing subpattern count = 0
5658No options
5659First char = 'a'
5660Need char = 'c'
5661Subject length lower bound = 3
5662No starting char list
5663Compiled pattern written to testsavedregex
5664Study data written to testsavedregex
5665<testsavedregex
5666Compiled pattern (byte-inverted) loaded from testsavedregex
5667Study data loaded from testsavedregex
5668    abc
5669 0: abc
5670    ** Failers
5671No match
5672    bca
5673No match
5674
5675/abc/IFSS>testsavedregex
5676Capturing subpattern count = 0
5677No options
5678First char = 'a'
5679Need char = 'c'
5680Compiled pattern written to testsavedregex
5681<testsavedregex
5682Compiled pattern (byte-inverted) loaded from testsavedregex
5683No study data
5684    abc
5685 0: abc
5686    ** Failers
5687No match
5688    bca
5689No match
5690
5691/(a|b)/IS>testsavedregex
5692Capturing subpattern count = 1
5693No options
5694No first char
5695No need char
5696Subject length lower bound = 1
5697Starting chars: a b
5698Compiled pattern written to testsavedregex
5699Study data written to testsavedregex
5700<testsavedregex
5701Compiled pattern loaded from testsavedregex
5702Study data loaded from testsavedregex
5703    abc
5704 0: a
5705 1: a
5706    ** Failers
5707 0: a
5708 1: a
5709    def
5710No match
5711
5712/(a|b)/ISS>testsavedregex
5713Capturing subpattern count = 1
5714No options
5715No first char
5716No need char
5717Compiled pattern written to testsavedregex
5718<testsavedregex
5719Compiled pattern loaded from testsavedregex
5720No study data
5721    abc
5722 0: a
5723 1: a
5724    ** Failers
5725 0: a
5726 1: a
5727    def
5728No match
5729
5730/(a|b)/ISF>testsavedregex
5731Capturing subpattern count = 1
5732No options
5733No first char
5734No need char
5735Subject length lower bound = 1
5736Starting chars: a b
5737Compiled pattern written to testsavedregex
5738Study data written to testsavedregex
5739<testsavedregex
5740Compiled pattern (byte-inverted) loaded from testsavedregex
5741Study data loaded from testsavedregex
5742    abc
5743 0: a
5744 1: a
5745    ** Failers
5746 0: a
5747 1: a
5748    def
5749No match
5750
5751/(a|b)/ISSF>testsavedregex
5752Capturing subpattern count = 1
5753No options
5754No first char
5755No need char
5756Compiled pattern written to testsavedregex
5757<testsavedregex
5758Compiled pattern (byte-inverted) loaded from testsavedregex
5759No study data
5760    abc
5761 0: a
5762 1: a
5763    ** Failers
5764 0: a
5765 1: a
5766    def
5767No match
5768
5769~<(\w+)/?>(.)*</(\1)>~smgI
5770Capturing subpattern count = 3
5771Max back reference = 1
5772Options: multiline dotall
5773First char = '<'
5774Need char = '>'
5775    \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>
5776 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>
5777 1: seite
5778 2: \x0a
5779 3: seite
5780
5781/^a/IF
5782Capturing subpattern count = 0
5783Options: anchored
5784No first char
5785No need char
5786
5787/line\nbreak/I
5788Capturing subpattern count = 0
5789Contains explicit CR or LF match
5790No options
5791First char = 'l'
5792Need char = 'k'
5793    this is a line\nbreak
5794 0: line\x0abreak
5795    line one\nthis is a line\nbreak in the second line
5796 0: line\x0abreak
5797
5798/line\nbreak/If
5799Capturing subpattern count = 0
5800Contains explicit CR or LF match
5801Options: 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/line\nbreak/Imf
5812Capturing subpattern count = 0
5813Contains explicit CR or LF match
5814Options: multiline firstline
5815First char = 'l'
5816Need char = 'k'
5817    this is a line\nbreak
5818 0: line\x0abreak
5819    ** Failers
5820No match
5821    line one\nthis is a line\nbreak in the second line
5822No match
5823
5824/(?i)(?-i)AbCd/I
5825Capturing subpattern count = 0
5826No options
5827First char = 'A'
5828Need char = 'd'
5829    AbCd
5830 0: AbCd
5831    ** Failers
5832No match
5833    abcd
5834No match
5835
5836/a{11111111111111111111}/I
5837Failed: number too big in {} quantifier at offset 8
5838
5839/(){64294967295}/I
5840Failed: number too big in {} quantifier at offset 9
5841
5842/(){2,4294967295}/I
5843Failed: number too big in {} quantifier at offset 11
5844
5845"(?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
5846Capturing subpattern count = 1
5847Max back reference = 1
5848No options
5849First char = 'a' (caseless)
5850Need char = 'B'
5851    abcdefghijklAkB
5852 0: abcdefghijklAkB
5853 1: k
5854
5855"(?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
5856Capturing subpattern count = 12
5857Max back reference = 11
5858Named capturing subpatterns:
5859  n0    1
5860  n1    2
5861  n10  11
5862  n11  12
5863  n2    3
5864  n3    4
5865  n4    5
5866  n5    6
5867  n6    7
5868  n7    8
5869  n8    9
5870  n9   10
5871No options
5872First char = 'a'
5873Need char = 'B'
5874    abcdefghijklAkB
5875 0: abcdefghijklAkB
5876 1: a
5877 2: b
5878 3: c
5879 4: d
5880 5: e
5881 6: f
5882 7: g
5883 8: h
5884 9: i
588510: j
588611: k
588712: l
5888
5889"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
5890Capturing subpattern count = 12
5891Max back reference = 11
5892No options
5893First char = 'a'
5894Need char = 'B'
5895    abcdefghijklAkB
5896 0: abcdefghijklAkB
5897 1: a
5898 2: b
5899 3: c
5900 4: d
5901 5: e
5902 6: f
5903 7: g
5904 8: h
5905 9: i
590610: j
590711: k
590812: l
5909
5910"(?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
5911Capturing subpattern count = 101
5912Named capturing subpatterns:
5913  name0     1
5914  name1     2
5915  name10   11
5916  name100 101
5917  name11   12
5918  name12   13
5919  name13   14
5920  name14   15
5921  name15   16
5922  name16   17
5923  name17   18
5924  name18   19
5925  name19   20
5926  name2     3
5927  name20   21
5928  name21   22
5929  name22   23
5930  name23   24
5931  name24   25
5932  name25   26
5933  name26   27
5934  name27   28
5935  name28   29
5936  name29   30
5937  name3     4
5938  name30   31
5939  name31   32
5940  name32   33
5941  name33   34
5942  name34   35
5943  name35   36
5944  name36   37
5945  name37   38
5946  name38   39
5947  name39   40
5948  name4     5
5949  name40   41
5950  name41   42
5951  name42   43
5952  name43   44
5953  name44   45
5954  name45   46
5955  name46   47
5956  name47   48
5957  name48   49
5958  name49   50
5959  name5     6
5960  name50   51
5961  name51   52
5962  name52   53
5963  name53   54
5964  name54   55
5965  name55   56
5966  name56   57
5967  name57   58
5968  name58   59
5969  name59   60
5970  name6     7
5971  name60   61
5972  name61   62
5973  name62   63
5974  name63   64
5975  name64   65
5976  name65   66
5977  name66   67
5978  name67   68
5979  name68   69
5980  name69   70
5981  name7     8
5982  name70   71
5983  name71   72
5984  name72   73
5985  name73   74
5986  name74   75
5987  name75   76
5988  name76   77
5989  name77   78
5990  name78   79
5991  name79   80
5992  name8     9
5993  name80   81
5994  name81   82
5995  name82   83
5996  name83   84
5997  name84   85
5998  name85   86
5999  name86   87
6000  name87   88
6001  name88   89
6002  name89   90
6003  name9    10
6004  name90   91
6005  name91   92
6006  name92   93
6007  name93   94
6008  name94   95
6009  name95   96
6010  name96   97
6011  name97   98
6012  name98   99
6013  name99  100
6014No options
6015First char = 'a'
6016Need char = 'a'
6017    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6018Matched, but too many substrings
6019 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6020 1: a
6021 2: a
6022 3: a
6023 4: a
6024 5: a
6025 6: a
6026 7: a
6027 8: a
6028 9: a
602910: a
603011: a
603112: a
603213: a
603314: a
6034
6035"(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
6036Capturing subpattern count = 101
6037No options
6038First char = 'a'
6039Need char = 'a'
6040    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6041Matched, but too many substrings
6042 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6043 1: a
6044 2: a
6045 3: a
6046 4: a
6047 5: a
6048 6: a
6049 7: a
6050 8: a
6051 9: a
605210: a
605311: a
605412: a
605513: a
605614: a
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    (this(and)that)stuff
6069 0: (this(and)that)stuff
6070
6071/[^()]*(?:\((?>(?R))\)[^()]*)*/I
6072Capturing subpattern count = 0
6073May match empty string
6074No options
6075No first char
6076No need char
6077    (this(and)that
6078 0:
6079    (this(and)that)
6080 0: (this(and)that)
6081
6082/[^()]*(?:\((?R)\))*[^()]*/I
6083Capturing subpattern count = 0
6084May match empty string
6085No options
6086No first char
6087No need char
6088    (this(and)that
6089 0:
6090    (this(and)that)
6091 0: (this(and)that)
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
6106/(?:\((?R)\))|[^()]*/I
6107Capturing subpattern count = 0
6108May match empty string
6109No options
6110No first char
6111No need char
6112    (this(and)that
6113 0:
6114    (this(and)that)
6115 0:
6116    (this)
6117 0: (this)
6118    ((this))
6119 0: ((this))
6120
6121/\x{0000ff}/I
6122Capturing subpattern count = 0
6123No options
6124First char = \xff
6125No need char
6126
6127/^((?P<A>a1)|(?P<A>a2)b)/I
6128Failed: two named subpatterns have the same name at offset 17
6129
6130/^((?P<A>a1)|(?P<A>a2)b)/IJ
6131Capturing subpattern count = 3
6132Named capturing subpatterns:
6133  A   2
6134  A   3
6135Options: anchored dupnames
6136No first char
6137No need char
6138    a1b\CA
6139 0: a1
6140 1: a1
6141 2: a1
6142  C a1 (2) A
6143    a2b\CA
6144 0: a2b
6145 1: a2b
6146 2: <unset>
6147 3: a2
6148  C a2 (2) A
6149    ** Failers
6150No match
6151    a1b\CZ\CA
6152no parentheses with name "Z"
6153 0: a1
6154 1: a1
6155 2: a1
6156copy substring Z failed -7
6157  C a1 (2) A
6158
6159/(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6160Capturing subpattern count = 3
6161Named capturing subpatterns:
6162  a   1
6163  a   3
6164  b   2
6165May match empty string
6166Options: dupnames
6167No first char
6168No need char
6169
6170/^(?P<A>a)(?P<A>b)/IJ
6171Capturing subpattern count = 2
6172Named capturing subpatterns:
6173  A   1
6174  A   2
6175Options: anchored dupnames
6176No first char
6177No need char
6178    ab\CA
6179 0: ab
6180 1: a
6181 2: b
6182  C a (1) A
6183
6184/^(?P<A>a)(?P<A>b)|cd/IJ
6185Capturing subpattern count = 2
6186Named capturing subpatterns:
6187  A   1
6188  A   2
6189Options: dupnames
6190No first char
6191No need char
6192    ab\CA
6193 0: ab
6194 1: a
6195 2: b
6196  C a (1) A
6197    cd\CA
6198 0: cd
6199copy substring A failed -7
6200
6201/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6202Capturing subpattern count = 4
6203Named capturing subpatterns:
6204  A   1
6205  A   2
6206  A   3
6207  A   4
6208Options: dupnames
6209No first char
6210No need char
6211    cdefgh\CA
6212 0: cdefgh
6213 1: <unset>
6214 2: <unset>
6215 3: ef
6216 4: gh
6217  C ef (2) A
6218
6219/^((?P<A>a1)|(?P<A>a2)b)/IJ
6220Capturing subpattern count = 3
6221Named capturing subpatterns:
6222  A   2
6223  A   3
6224Options: anchored dupnames
6225No first char
6226No need char
6227    a1b\GA
6228 0: a1
6229 1: a1
6230 2: a1
6231  G a1 (2) A
6232    a2b\GA
6233 0: a2b
6234 1: a2b
6235 2: <unset>
6236 3: a2
6237  G a2 (2) A
6238    ** Failers
6239No match
6240    a1b\GZ\GA
6241no parentheses with name "Z"
6242 0: a1
6243 1: a1
6244 2: a1
6245get substring Z failed -7
6246  G a1 (2) A
6247
6248/^(?P<A>a)(?P<A>b)/IJ
6249Capturing subpattern count = 2
6250Named capturing subpatterns:
6251  A   1
6252  A   2
6253Options: anchored dupnames
6254No first char
6255No need char
6256    ab\GA
6257 0: ab
6258 1: a
6259 2: b
6260  G a (1) A
6261
6262/^(?P<A>a)(?P<A>b)|cd/IJ
6263Capturing subpattern count = 2
6264Named capturing subpatterns:
6265  A   1
6266  A   2
6267Options: dupnames
6268No first char
6269No need char
6270    ab\GA
6271 0: ab
6272 1: a
6273 2: b
6274  G a (1) A
6275    cd\GA
6276 0: cd
6277get substring A failed -7
6278
6279/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6280Capturing subpattern count = 4
6281Named capturing subpatterns:
6282  A   1
6283  A   2
6284  A   3
6285  A   4
6286Options: dupnames
6287No first char
6288No need char
6289    cdefgh\GA
6290 0: cdefgh
6291 1: <unset>
6292 2: <unset>
6293 3: ef
6294 4: gh
6295  G ef (2) A
6296
6297/(?J)^((?P<A>a1)|(?P<A>a2)b)/I
6298Capturing subpattern count = 3
6299Named capturing subpatterns:
6300  A   2
6301  A   3
6302Options: anchored dupnames
6303Duplicate name status changes
6304No first char
6305No need char
6306    a1b\CA
6307 0: a1
6308 1: a1
6309 2: a1
6310  C a1 (2) A
6311    a2b\CA
6312 0: a2b
6313 1: a2b
6314 2: <unset>
6315 3: a2
6316  C a2 (2) A
6317
6318/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
6319Failed: two named subpatterns have the same name at offset 37
6320
6321/ In this next test, J is not set at the outer level; consequently it isn't
6322set in the pattern's options; consequently pcre_get_named_substring() produces
6323a random value. /Ix
6324Capturing subpattern count = 1
6325Options: extended
6326First char = 'I'
6327Need char = 'e'
6328
6329/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
6330Capturing subpattern count = 4
6331Named capturing subpatterns:
6332  A   1
6333  B   2
6334  B   3
6335  C   4
6336Options: anchored
6337Duplicate name status changes
6338No first char
6339No need char
6340    a bc d\CA\CB\CC
6341 0: a bc d
6342 1: a
6343 2: b
6344 3: c
6345 4: d
6346  C a (1) A
6347  C b (1) B
6348  C d (1) C
6349
6350/^(?P<A>a)?(?(A)a|b)/I
6351Capturing subpattern count = 1
6352Max back reference = 1
6353Named capturing subpatterns:
6354  A   1
6355Options: anchored
6356No first char
6357No need char
6358    aabc
6359 0: aa
6360 1: a
6361    bc
6362 0: b
6363    ** Failers
6364No match
6365    abc
6366No match
6367
6368/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
6369Capturing subpattern count = 1
6370Max back reference = 1
6371Named capturing subpatterns:
6372  ZZ   1
6373No options
6374No first char
6375Need char = 'X'
6376    bXaX
6377 0: bXaX
6378 1: X
6379
6380/(?:(?(2y)a|b)(X))+/I
6381Failed: malformed number or name after (?( at offset 7
6382
6383/(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6384Failed: reference to non-existent subpattern at offset 9
6385
6386/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
6387Capturing subpattern count = 1
6388Max back reference = 1
6389Named capturing subpatterns:
6390  ZZ   1
6391No options
6392No first char
6393Need char = 'X'
6394    bbXaaX
6395 0: bbXaaX
6396 1: X
6397
6398/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
6399Capturing subpattern count = 1
6400Max back reference = 1
6401Named capturing subpatterns:
6402  ZZ   1
6403No options
6404No first char
6405Need char = 'X'
6406    (b)\\Xa\\X
6407 0: (b)\Xa\X
6408 1: X
6409
6410/(?P<ABC/I
6411Failed: syntax error in subpattern name (missing terminator) at offset 7
6412
6413/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6414Capturing subpattern count = 1
6415Max back reference = 1
6416Named capturing subpatterns:
6417  A   1
6418No options
6419No first char
6420No need char
6421    bXXaYYaY
6422 0: bXXaYYaY
6423 1: Y
6424    bXYaXXaX
6425 0: bX
6426 1: X
6427
6428/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6429Capturing subpattern count = 10
6430Max back reference = 10
6431Named capturing subpatterns:
6432  A  10
6433No options
6434No first char
6435No need char
6436    bXXaYYaY
6437 0: bXXaYYaY
6438 1:
6439 2:
6440 3:
6441 4:
6442 5:
6443 6:
6444 7:
6445 8:
6446 9:
644710: Y
6448
6449/\s*,\s*/IS
6450Capturing subpattern count = 0
6451No options
6452No first char
6453Need char = ','
6454Subject length lower bound = 1
6455Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 ,
6456    \x0b,\x0b
6457 0: \x0b,\x0b
6458    \x0c,\x0d
6459 0: \x0c,\x0d
6460
6461/^abc/Im
6462Capturing subpattern count = 0
6463Options: multiline
6464First char at start or follows newline
6465Need char = 'c'
6466    xyz\nabc
6467 0: abc
6468    xyz\nabc\<lf>
6469 0: abc
6470    xyz\r\nabc\<lf>
6471 0: abc
6472    xyz\rabc\<cr>
6473 0: abc
6474    xyz\r\nabc\<crlf>
6475 0: abc
6476    ** Failers
6477No match
6478    xyz\nabc\<cr>
6479No match
6480    xyz\r\nabc\<cr>
6481No match
6482    xyz\nabc\<crlf>
6483No match
6484    xyz\rabc\<crlf>
6485No match
6486    xyz\rabc\<lf>
6487No match
6488
6489/abc$/Im<lf>
6490Capturing subpattern count = 0
6491Options: multiline
6492Forced newline sequence: LF
6493First char = 'a'
6494Need char = 'c'
6495    xyzabc
6496 0: abc
6497    xyzabc\n
6498 0: abc
6499    xyzabc\npqr
6500 0: abc
6501    xyzabc\r\<cr>
6502 0: abc
6503    xyzabc\rpqr\<cr>
6504 0: abc
6505    xyzabc\r\n\<crlf>
6506 0: abc
6507    xyzabc\r\npqr\<crlf>
6508 0: abc
6509    ** Failers
6510No match
6511    xyzabc\r
6512No match
6513    xyzabc\rpqr
6514No match
6515    xyzabc\r\n
6516No match
6517    xyzabc\r\npqr
6518No match
6519
6520/^abc/Im<cr>
6521Capturing subpattern count = 0
6522Options: multiline
6523Forced newline sequence: CR
6524First char at start or follows newline
6525Need char = 'c'
6526    xyz\rabcdef
6527 0: abc
6528    xyz\nabcdef\<lf>
6529 0: abc
6530    ** Failers
6531No match
6532    xyz\nabcdef
6533No match
6534
6535/^abc/Im<lf>
6536Capturing subpattern count = 0
6537Options: multiline
6538Forced newline sequence: LF
6539First char at start or follows newline
6540Need char = 'c'
6541    xyz\nabcdef
6542 0: abc
6543    xyz\rabcdef\<cr>
6544 0: abc
6545    ** Failers
6546No match
6547    xyz\rabcdef
6548No match
6549
6550/^abc/Im<crlf>
6551Capturing subpattern count = 0
6552Options: multiline
6553Forced newline sequence: CRLF
6554First char at start or follows newline
6555Need char = 'c'
6556    xyz\r\nabcdef
6557 0: abc
6558    xyz\rabcdef\<cr>
6559 0: abc
6560    ** Failers
6561No match
6562    xyz\rabcdef
6563No match
6564
6565/^abc/Im<bad>
6566Unknown modifier at: <bad>
6567
6568
6569/abc/I
6570Capturing subpattern count = 0
6571No options
6572First char = 'a'
6573Need char = 'c'
6574    xyz\rabc\<bad>
6575Unknown escape sequence at: <bad>
6576    abc
6577 0: abc
6578
6579/.*/I<lf>
6580Capturing subpattern count = 0
6581May match empty string
6582Options:
6583Forced newline sequence: LF
6584First char at start or follows newline
6585No need char
6586    abc\ndef
6587 0: abc
6588    abc\rdef
6589 0: abc\x0ddef
6590    abc\r\ndef
6591 0: abc\x0d
6592    \<cr>abc\ndef
6593 0: abc\x0adef
6594    \<cr>abc\rdef
6595 0: abc
6596    \<cr>abc\r\ndef
6597 0: abc
6598    \<crlf>abc\ndef
6599 0: abc\x0adef
6600    \<crlf>abc\rdef
6601 0: abc\x0ddef
6602    \<crlf>abc\r\ndef
6603 0: abc
6604
6605/\w+(.)(.)?def/Is
6606Capturing subpattern count = 2
6607Options: dotall
6608No first char
6609Need char = 'f'
6610    abc\ndef
6611 0: abc\x0adef
6612 1: \x0a
6613    abc\rdef
6614 0: abc\x0ddef
6615 1: \x0d
6616    abc\r\ndef
6617 0: abc\x0d\x0adef
6618 1: \x0d
6619 2: \x0a
6620
6621+((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6622Capturing subpattern count = 1
6623May match empty string
6624No options
6625No first char
6626No need char
6627   /* this is a C style comment */\M
6628Minimum match() limit = 120
6629Minimum match() recursion limit = 6
6630 0: /* this is a C style comment */
6631 1: /* this is a C style comment */
6632
6633/(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
6634Capturing subpattern count = 1
6635Named capturing subpatterns:
6636  B   1
6637No options
6638No first char
6639Need char = '.'
6640
6641/()()()()()()()()()()()()()()()()()()()()
6642 ()()()()()()()()()()()()()()()()()()()()
6643 ()()()()()()()()()()()()()()()()()()()()
6644 ()()()()()()()()()()()()()()()()()()()()
6645 ()()()()()()()()()()()()()()()()()()()()
6646 (.(.))/Ix
6647Capturing subpattern count = 102
6648Options: extended
6649No first char
6650No need char
6651    XY\O400
6652 0: XY
6653 1:
6654 2:
6655 3:
6656 4:
6657 5:
6658 6:
6659 7:
6660 8:
6661 9:
666210:
666311:
666412:
666513:
666614:
666715:
666816:
666917:
667018:
667119:
667220:
667321:
667422:
667523:
667624:
667725:
667826:
667927:
668028:
668129:
668230:
668331:
668432:
668533:
668634:
668735:
668836:
668937:
669038:
669139:
669240:
669341:
669442:
669543:
669644:
669745:
669846:
669947:
670048:
670149:
670250:
670351:
670452:
670553:
670654:
670755:
670856:
670957:
671058:
671159:
671260:
671361:
671462:
671563:
671664:
671765:
671866:
671967:
672068:
672169:
672270:
672371:
672472:
672573:
672674:
672775:
672876:
672977:
673078:
673179:
673280:
673381:
673482:
673583:
673684:
673785:
673886:
673987:
674088:
674189:
674290:
674391:
674492:
674593:
674694:
674795:
674896:
674997:
675098:
675199:
6752100:
6753101: XY
6754102: Y
6755
6756/(a*b|(?i:c*(?-i)d))/IS
6757Capturing subpattern count = 1
6758No options
6759No first char
6760No need char
6761Subject length lower bound = 1
6762Starting chars: C a b c d
6763
6764/()[ab]xyz/IS
6765Capturing subpattern count = 1
6766No options
6767No first char
6768Need char = 'z'
6769Subject length lower bound = 4
6770Starting chars: a b
6771
6772/(|)[ab]xyz/IS
6773Capturing subpattern count = 1
6774No options
6775No first char
6776Need char = 'z'
6777Subject length lower bound = 4
6778Starting chars: a b
6779
6780/(|c)[ab]xyz/IS
6781Capturing subpattern count = 1
6782No options
6783No first char
6784Need char = 'z'
6785Subject length lower bound = 4
6786Starting chars: a b c
6787
6788/(|c?)[ab]xyz/IS
6789Capturing subpattern count = 1
6790No options
6791No first char
6792Need char = 'z'
6793Subject length lower bound = 4
6794Starting chars: a b c
6795
6796/(d?|c?)[ab]xyz/IS
6797Capturing subpattern count = 1
6798No options
6799No first char
6800Need char = 'z'
6801Subject length lower bound = 4
6802Starting chars: a b c d
6803
6804/(d?|c)[ab]xyz/IS
6805Capturing subpattern count = 1
6806No options
6807No first char
6808Need char = 'z'
6809Subject length lower bound = 4
6810Starting chars: a b c d
6811
6812/^a*b\d/DZ
6813------------------------------------------------------------------
6814        Bra
6815        ^
6816        a*+
6817        b
6818        \d
6819        Ket
6820        End
6821------------------------------------------------------------------
6822Capturing subpattern count = 0
6823Options: anchored
6824No first char
6825Need char = 'b'
6826
6827/^a*+b\d/DZ
6828------------------------------------------------------------------
6829        Bra
6830        ^
6831        a*+
6832        b
6833        \d
6834        Ket
6835        End
6836------------------------------------------------------------------
6837Capturing subpattern count = 0
6838Options: anchored
6839No first char
6840Need char = 'b'
6841
6842/^a*?b\d/DZ
6843------------------------------------------------------------------
6844        Bra
6845        ^
6846        a*+
6847        b
6848        \d
6849        Ket
6850        End
6851------------------------------------------------------------------
6852Capturing subpattern count = 0
6853Options: anchored
6854No first char
6855Need char = 'b'
6856
6857/^a+A\d/DZ
6858------------------------------------------------------------------
6859        Bra
6860        ^
6861        a++
6862        A
6863        \d
6864        Ket
6865        End
6866------------------------------------------------------------------
6867Capturing subpattern count = 0
6868Options: anchored
6869No first char
6870Need char = 'A'
6871    aaaA5
6872 0: aaaA5
6873    ** Failers
6874No match
6875    aaaa5
6876No match
6877
6878/^a*A\d/IiDZ
6879------------------------------------------------------------------
6880        Bra
6881        ^
6882     /i a*
6883     /i A
6884        \d
6885        Ket
6886        End
6887------------------------------------------------------------------
6888Capturing subpattern count = 0
6889Options: anchored caseless
6890No first char
6891Need char = 'A' (caseless)
6892    aaaA5
6893 0: aaaA5
6894    aaaa5
6895 0: aaaa5
6896
6897/(a*|b*)[cd]/IS
6898Capturing subpattern count = 1
6899No options
6900No first char
6901No need char
6902Subject length lower bound = 1
6903Starting chars: a b c d
6904
6905/(a+|b*)[cd]/IS
6906Capturing subpattern count = 1
6907No options
6908No first char
6909No need char
6910Subject length lower bound = 1
6911Starting chars: a b c d
6912
6913/(a*|b+)[cd]/IS
6914Capturing subpattern count = 1
6915No options
6916No first char
6917No need char
6918Subject length lower bound = 1
6919Starting chars: a b c d
6920
6921/(a+|b+)[cd]/IS
6922Capturing subpattern count = 1
6923No options
6924No first char
6925No need char
6926Subject length lower bound = 2
6927Starting chars: a b
6928
6929/((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6930 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6931 (((
6932 a
6933 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6934 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6935 )))
6936/Ix
6937Capturing subpattern count = 203
6938Options: extended
6939First char = 'a'
6940No need char
6941  large nest
6942Matched, but too many substrings
6943 0: a
6944 1: a
6945 2: a
6946 3: a
6947 4: a
6948 5: a
6949 6: a
6950 7: a
6951 8: a
6952 9: a
695310: a
695411: a
695512: a
695613: a
695714: a
6958
6959/a*\d/BZ
6960------------------------------------------------------------------
6961        Bra
6962        a*+
6963        \d
6964        Ket
6965        End
6966------------------------------------------------------------------
6967
6968/a*\D/BZ
6969------------------------------------------------------------------
6970        Bra
6971        a*
6972        \D
6973        Ket
6974        End
6975------------------------------------------------------------------
6976
6977/0*\d/BZ
6978------------------------------------------------------------------
6979        Bra
6980        0*
6981        \d
6982        Ket
6983        End
6984------------------------------------------------------------------
6985
6986/0*\D/BZ
6987------------------------------------------------------------------
6988        Bra
6989        0*+
6990        \D
6991        Ket
6992        End
6993------------------------------------------------------------------
6994
6995/a*\s/BZ
6996------------------------------------------------------------------
6997        Bra
6998        a*+
6999        \s
7000        Ket
7001        End
7002------------------------------------------------------------------
7003
7004/a*\S/BZ
7005------------------------------------------------------------------
7006        Bra
7007        a*
7008        \S
7009        Ket
7010        End
7011------------------------------------------------------------------
7012
7013/ *\s/BZ
7014------------------------------------------------------------------
7015        Bra
7016         *
7017        \s
7018        Ket
7019        End
7020------------------------------------------------------------------
7021
7022/ *\S/BZ
7023------------------------------------------------------------------
7024        Bra
7025         *+
7026        \S
7027        Ket
7028        End
7029------------------------------------------------------------------
7030
7031/a*\w/BZ
7032------------------------------------------------------------------
7033        Bra
7034        a*
7035        \w
7036        Ket
7037        End
7038------------------------------------------------------------------
7039
7040/a*\W/BZ
7041------------------------------------------------------------------
7042        Bra
7043        a*+
7044        \W
7045        Ket
7046        End
7047------------------------------------------------------------------
7048
7049/=*\w/BZ
7050------------------------------------------------------------------
7051        Bra
7052        =*+
7053        \w
7054        Ket
7055        End
7056------------------------------------------------------------------
7057
7058/=*\W/BZ
7059------------------------------------------------------------------
7060        Bra
7061        =*
7062        \W
7063        Ket
7064        End
7065------------------------------------------------------------------
7066
7067/\d*a/BZ
7068------------------------------------------------------------------
7069        Bra
7070        \d*+
7071        a
7072        Ket
7073        End
7074------------------------------------------------------------------
7075
7076/\d*2/BZ
7077------------------------------------------------------------------
7078        Bra
7079        \d*
7080        2
7081        Ket
7082        End
7083------------------------------------------------------------------
7084
7085/\d*\d/BZ
7086------------------------------------------------------------------
7087        Bra
7088        \d*
7089        \d
7090        Ket
7091        End
7092------------------------------------------------------------------
7093
7094/\d*\D/BZ
7095------------------------------------------------------------------
7096        Bra
7097        \d*+
7098        \D
7099        Ket
7100        End
7101------------------------------------------------------------------
7102
7103/\d*\s/BZ
7104------------------------------------------------------------------
7105        Bra
7106        \d*+
7107        \s
7108        Ket
7109        End
7110------------------------------------------------------------------
7111
7112/\d*\S/BZ
7113------------------------------------------------------------------
7114        Bra
7115        \d*
7116        \S
7117        Ket
7118        End
7119------------------------------------------------------------------
7120
7121/\d*\w/BZ
7122------------------------------------------------------------------
7123        Bra
7124        \d*
7125        \w
7126        Ket
7127        End
7128------------------------------------------------------------------
7129
7130/\d*\W/BZ
7131------------------------------------------------------------------
7132        Bra
7133        \d*+
7134        \W
7135        Ket
7136        End
7137------------------------------------------------------------------
7138
7139/\D*a/BZ
7140------------------------------------------------------------------
7141        Bra
7142        \D*
7143        a
7144        Ket
7145        End
7146------------------------------------------------------------------
7147
7148/\D*2/BZ
7149------------------------------------------------------------------
7150        Bra
7151        \D*+
7152        2
7153        Ket
7154        End
7155------------------------------------------------------------------
7156
7157/\D*\d/BZ
7158------------------------------------------------------------------
7159        Bra
7160        \D*+
7161        \d
7162        Ket
7163        End
7164------------------------------------------------------------------
7165
7166/\D*\D/BZ
7167------------------------------------------------------------------
7168        Bra
7169        \D*
7170        \D
7171        Ket
7172        End
7173------------------------------------------------------------------
7174
7175/\D*\s/BZ
7176------------------------------------------------------------------
7177        Bra
7178        \D*
7179        \s
7180        Ket
7181        End
7182------------------------------------------------------------------
7183
7184/\D*\S/BZ
7185------------------------------------------------------------------
7186        Bra
7187        \D*
7188        \S
7189        Ket
7190        End
7191------------------------------------------------------------------
7192
7193/\D*\w/BZ
7194------------------------------------------------------------------
7195        Bra
7196        \D*
7197        \w
7198        Ket
7199        End
7200------------------------------------------------------------------
7201
7202/\D*\W/BZ
7203------------------------------------------------------------------
7204        Bra
7205        \D*
7206        \W
7207        Ket
7208        End
7209------------------------------------------------------------------
7210
7211/\s*a/BZ
7212------------------------------------------------------------------
7213        Bra
7214        \s*+
7215        a
7216        Ket
7217        End
7218------------------------------------------------------------------
7219
7220/\s*2/BZ
7221------------------------------------------------------------------
7222        Bra
7223        \s*+
7224        2
7225        Ket
7226        End
7227------------------------------------------------------------------
7228
7229/\s*\d/BZ
7230------------------------------------------------------------------
7231        Bra
7232        \s*+
7233        \d
7234        Ket
7235        End
7236------------------------------------------------------------------
7237
7238/\s*\D/BZ
7239------------------------------------------------------------------
7240        Bra
7241        \s*
7242        \D
7243        Ket
7244        End
7245------------------------------------------------------------------
7246
7247/\s*\s/BZ
7248------------------------------------------------------------------
7249        Bra
7250        \s*
7251        \s
7252        Ket
7253        End
7254------------------------------------------------------------------
7255
7256/\s*\S/BZ
7257------------------------------------------------------------------
7258        Bra
7259        \s*+
7260        \S
7261        Ket
7262        End
7263------------------------------------------------------------------
7264
7265/\s*\w/BZ
7266------------------------------------------------------------------
7267        Bra
7268        \s*+
7269        \w
7270        Ket
7271        End
7272------------------------------------------------------------------
7273
7274/\s*\W/BZ
7275------------------------------------------------------------------
7276        Bra
7277        \s*
7278        \W
7279        Ket
7280        End
7281------------------------------------------------------------------
7282
7283/\S*a/BZ
7284------------------------------------------------------------------
7285        Bra
7286        \S*
7287        a
7288        Ket
7289        End
7290------------------------------------------------------------------
7291
7292/\S*2/BZ
7293------------------------------------------------------------------
7294        Bra
7295        \S*
7296        2
7297        Ket
7298        End
7299------------------------------------------------------------------
7300
7301/\S*\d/BZ
7302------------------------------------------------------------------
7303        Bra
7304        \S*
7305        \d
7306        Ket
7307        End
7308------------------------------------------------------------------
7309
7310/\S*\D/BZ
7311------------------------------------------------------------------
7312        Bra
7313        \S*
7314        \D
7315        Ket
7316        End
7317------------------------------------------------------------------
7318
7319/\S*\s/BZ
7320------------------------------------------------------------------
7321        Bra
7322        \S*+
7323        \s
7324        Ket
7325        End
7326------------------------------------------------------------------
7327
7328/\S*\S/BZ
7329------------------------------------------------------------------
7330        Bra
7331        \S*
7332        \S
7333        Ket
7334        End
7335------------------------------------------------------------------
7336
7337/\S*\w/BZ
7338------------------------------------------------------------------
7339        Bra
7340        \S*
7341        \w
7342        Ket
7343        End
7344------------------------------------------------------------------
7345
7346/\S*\W/BZ
7347------------------------------------------------------------------
7348        Bra
7349        \S*
7350        \W
7351        Ket
7352        End
7353------------------------------------------------------------------
7354
7355/\w*a/BZ
7356------------------------------------------------------------------
7357        Bra
7358        \w*
7359        a
7360        Ket
7361        End
7362------------------------------------------------------------------
7363
7364/\w*2/BZ
7365------------------------------------------------------------------
7366        Bra
7367        \w*
7368        2
7369        Ket
7370        End
7371------------------------------------------------------------------
7372
7373/\w*\d/BZ
7374------------------------------------------------------------------
7375        Bra
7376        \w*
7377        \d
7378        Ket
7379        End
7380------------------------------------------------------------------
7381
7382/\w*\D/BZ
7383------------------------------------------------------------------
7384        Bra
7385        \w*
7386        \D
7387        Ket
7388        End
7389------------------------------------------------------------------
7390
7391/\w*\s/BZ
7392------------------------------------------------------------------
7393        Bra
7394        \w*+
7395        \s
7396        Ket
7397        End
7398------------------------------------------------------------------
7399
7400/\w*\S/BZ
7401------------------------------------------------------------------
7402        Bra
7403        \w*
7404        \S
7405        Ket
7406        End
7407------------------------------------------------------------------
7408
7409/\w*\w/BZ
7410------------------------------------------------------------------
7411        Bra
7412        \w*
7413        \w
7414        Ket
7415        End
7416------------------------------------------------------------------
7417
7418/\w*\W/BZ
7419------------------------------------------------------------------
7420        Bra
7421        \w*+
7422        \W
7423        Ket
7424        End
7425------------------------------------------------------------------
7426
7427/\W*a/BZ
7428------------------------------------------------------------------
7429        Bra
7430        \W*+
7431        a
7432        Ket
7433        End
7434------------------------------------------------------------------
7435
7436/\W*2/BZ
7437------------------------------------------------------------------
7438        Bra
7439        \W*+
7440        2
7441        Ket
7442        End
7443------------------------------------------------------------------
7444
7445/\W*\d/BZ
7446------------------------------------------------------------------
7447        Bra
7448        \W*+
7449        \d
7450        Ket
7451        End
7452------------------------------------------------------------------
7453
7454/\W*\D/BZ
7455------------------------------------------------------------------
7456        Bra
7457        \W*
7458        \D
7459        Ket
7460        End
7461------------------------------------------------------------------
7462
7463/\W*\s/BZ
7464------------------------------------------------------------------
7465        Bra
7466        \W*
7467        \s
7468        Ket
7469        End
7470------------------------------------------------------------------
7471
7472/\W*\S/BZ
7473------------------------------------------------------------------
7474        Bra
7475        \W*
7476        \S
7477        Ket
7478        End
7479------------------------------------------------------------------
7480
7481/\W*\w/BZ
7482------------------------------------------------------------------
7483        Bra
7484        \W*+
7485        \w
7486        Ket
7487        End
7488------------------------------------------------------------------
7489
7490/\W*\W/BZ
7491------------------------------------------------------------------
7492        Bra
7493        \W*
7494        \W
7495        Ket
7496        End
7497------------------------------------------------------------------
7498
7499/[^a]+a/BZ
7500------------------------------------------------------------------
7501        Bra
7502        [^a]++
7503        a
7504        Ket
7505        End
7506------------------------------------------------------------------
7507
7508/[^a]+a/BZi
7509------------------------------------------------------------------
7510        Bra
7511     /i [^a]++
7512     /i a
7513        Ket
7514        End
7515------------------------------------------------------------------
7516
7517/[^a]+A/BZi
7518------------------------------------------------------------------
7519        Bra
7520     /i [^a]++
7521     /i A
7522        Ket
7523        End
7524------------------------------------------------------------------
7525
7526/[^a]+b/BZ
7527------------------------------------------------------------------
7528        Bra
7529        [^a]+
7530        b
7531        Ket
7532        End
7533------------------------------------------------------------------
7534
7535/[^a]+\d/BZ
7536------------------------------------------------------------------
7537        Bra
7538        [^a]+
7539        \d
7540        Ket
7541        End
7542------------------------------------------------------------------
7543
7544/a*[^a]/BZ
7545------------------------------------------------------------------
7546        Bra
7547        a*+
7548        [^a]
7549        Ket
7550        End
7551------------------------------------------------------------------
7552
7553/(?P<abc>x)(?P<xyz>y)/I
7554Capturing subpattern count = 2
7555Named capturing subpatterns:
7556  abc   1
7557  xyz   2
7558No options
7559First char = 'x'
7560Need char = 'y'
7561    xy\Cabc\Cxyz
7562 0: xy
7563 1: x
7564 2: y
7565  C x (1) abc
7566  C y (1) xyz
7567
7568/(?<abc>x)(?'xyz'y)/I
7569Capturing subpattern count = 2
7570Named capturing subpatterns:
7571  abc   1
7572  xyz   2
7573No options
7574First char = 'x'
7575Need char = 'y'
7576    xy\Cabc\Cxyz
7577 0: xy
7578 1: x
7579 2: y
7580  C x (1) abc
7581  C y (1) xyz
7582
7583/(?<abc'x)(?'xyz'y)/I
7584Failed: syntax error in subpattern name (missing terminator) at offset 6
7585
7586/(?<abc>x)(?'xyz>y)/I
7587Failed: syntax error in subpattern name (missing terminator) at offset 15
7588
7589/(?P'abc'x)(?P<xyz>y)/I
7590Failed: unrecognized character after (?P at offset 3
7591
7592/^(?:(?(ZZ)a|b)(?<ZZ>X))+/
7593    bXaX
7594 0: bXaX
7595 1: X
7596    bXbX
7597 0: bX
7598 1: X
7599    ** Failers
7600No match
7601    aXaX
7602No match
7603    aXbX
7604No match
7605
7606/^(?P>abc)(?<abcd>xxx)/
7607Failed: reference to non-existent subpattern at offset 8
7608
7609/^(?P>abc)(?<abc>x|y)/
7610    xx
7611 0: xx
7612 1: x
7613    xy
7614 0: xy
7615 1: y
7616    yy
7617 0: yy
7618 1: y
7619    yx
7620 0: yx
7621 1: x
7622
7623/^(?P>abc)(?P<abc>x|y)/
7624    xx
7625 0: xx
7626 1: x
7627    xy
7628 0: xy
7629 1: y
7630    yy
7631 0: yy
7632 1: y
7633    yx
7634 0: yx
7635 1: x
7636
7637/^((?(abc)a|b)(?<abc>x|y))+/
7638    bxay
7639 0: bxay
7640 1: ay
7641 2: y
7642    bxby
7643 0: bx
7644 1: bx
7645 2: x
7646    ** Failers
7647No match
7648    axby
7649No match
7650
7651/^(((?P=abc)|X)(?<abc>x|y))+/
7652    XxXxxx
7653 0: XxXxxx
7654 1: xx
7655 2: x
7656 3: x
7657    XxXyyx
7658 0: XxXyyx
7659 1: yx
7660 2: y
7661 3: x
7662    XxXyxx
7663 0: XxXy
7664 1: Xy
7665 2: X
7666 3: y
7667    ** Failers
7668No match
7669    x
7670No match
7671
7672/^(?1)(abc)/
7673    abcabc
7674 0: abcabc
7675 1: abc
7676
7677/^(?:(?:\1|X)(a|b))+/
7678    Xaaa
7679 0: Xaaa
7680 1: a
7681    Xaba
7682 0: Xa
7683 1: a
7684
7685/^[\E\Qa\E-\Qz\E]+/BZ
7686------------------------------------------------------------------
7687        Bra
7688        ^
7689        [a-z]++
7690        Ket
7691        End
7692------------------------------------------------------------------
7693
7694/^[a\Q]bc\E]/BZ
7695------------------------------------------------------------------
7696        Bra
7697        ^
7698        [\]a-c]
7699        Ket
7700        End
7701------------------------------------------------------------------
7702
7703/^[a-\Q\E]/BZ
7704------------------------------------------------------------------
7705        Bra
7706        ^
7707        [\-a]
7708        Ket
7709        End
7710------------------------------------------------------------------
7711
7712/^(?P>abc)[()](?<abc>)/BZ
7713------------------------------------------------------------------
7714        Bra
7715        ^
7716        Recurse
7717        [()]
7718        CBra 1
7719        Ket
7720        Ket
7721        End
7722------------------------------------------------------------------
7723
7724/^((?(abc)y)[()](?P<abc>x))+/BZ
7725------------------------------------------------------------------
7726        Bra
7727        ^
7728        CBra 1
7729        Cond
7730      2 Cond ref
7731        y
7732        Ket
7733        [()]
7734        CBra 2
7735        x
7736        Ket
7737        KetRmax
7738        Ket
7739        End
7740------------------------------------------------------------------
7741    (xy)x
7742 0: (xy)x
7743 1: y)x
7744 2: x
7745
7746/^(?P>abc)\Q()\E(?<abc>)/BZ
7747------------------------------------------------------------------
7748        Bra
7749        ^
7750        Recurse
7751        ()
7752        CBra 1
7753        Ket
7754        Ket
7755        End
7756------------------------------------------------------------------
7757
7758/^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
7759------------------------------------------------------------------
7760        Bra
7761        ^
7762        Recurse
7763        [(\]a]
7764        CBra 1
7765        Ket
7766        Ket
7767        End
7768------------------------------------------------------------------
7769
7770/^(?P>abc) # this is (a comment)
7771  (?<abc>)/BZx
7772------------------------------------------------------------------
7773        Bra
7774        ^
7775        Recurse
7776        CBra 1
7777        Ket
7778        Ket
7779        End
7780------------------------------------------------------------------
7781
7782/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
7783Capturing subpattern count = 4
7784Max back reference = 4
7785Named capturing subpatterns:
7786  four    4
7787  one     1
7788  three   3
7789  two     2
7790May match empty string
7791Options: anchored caseless
7792No first char
7793No need char
7794    1221
7795 0: 1221
7796 1: 1221
7797 2: 1
7798    Satan, oscillate my metallic sonatas!
7799 0: Satan, oscillate my metallic sonatas!
7800 1: <unset>
7801 2: <unset>
7802 3: Satan, oscillate my metallic sonatas
7803 4: S
7804    A man, a plan, a canal: Panama!
7805 0: A man, a plan, a canal: Panama!
7806 1: <unset>
7807 2: <unset>
7808 3: A man, a plan, a canal: Panama
7809 4: A
7810    Able was I ere I saw Elba.
7811 0: Able was I ere I saw Elba.
7812 1: <unset>
7813 2: <unset>
7814 3: Able was I ere I saw Elba
7815 4: A
7816    *** Failers
7817No match
7818    The quick brown fox
7819No match
7820
7821/(?=(\w+))\1:/I
7822Capturing subpattern count = 1
7823Max back reference = 1
7824No options
7825No first char
7826Need char = ':'
7827    abcd:
7828 0: abcd:
7829 1: abcd
7830
7831/(?=(?'abc'\w+))\k<abc>:/I
7832Capturing subpattern count = 1
7833Max back reference = 1
7834Named capturing subpatterns:
7835  abc   1
7836No options
7837No first char
7838Need char = ':'
7839    abcd:
7840 0: abcd:
7841 1: abcd
7842
7843/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7844    adaa
7845 0: adaa
7846 1: a
7847 2: d
7848    ** Failers
7849No match
7850    addd
7851No match
7852    adbb
7853No match
7854
7855/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
7856    bdaa
7857 0: bdaa
7858 1: b
7859 2: d
7860    bdab
7861 0: bdab
7862 1: b
7863 2: d
7864    ** Failers
7865No match
7866    bddd
7867No match
7868
7869/(?(<bc))/
7870Failed: malformed number or name after (?( at offset 6
7871
7872/(?(''))/
7873Failed: assertion expected after (?( at offset 4
7874
7875/(?('R')stuff)/
7876Failed: reference to non-existent subpattern at offset 7
7877
7878/((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
7879    abcabc1Xabc2XabcXabcabc
7880 0: abcabc1Xabc2XabcX
7881 1: abcabc1Xabc2XabcX
7882 2: abcabc1Xabc2XabcX
7883
7884/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
7885    abcabc1Xabc2XabcXabcabc
7886 0: abcabc1Xabc2XabcX
7887 1: abcabc1Xabc2XabcX
7888 2: abcabc1Xabc2XabcX
7889
7890/(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
7891Failed: reference to non-existent subpattern at offset 29
7892
7893/^(?(DEFINE) abc | xyz ) /x
7894Failed: DEFINE group contains more than one branch at offset 22
7895
7896/(?(DEFINE) abc) xyz/xI
7897Capturing subpattern count = 0
7898Options: extended
7899First char = 'x'
7900Need char = 'z'
7901
7902/(a|)*\d/
7903  \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7904No match
7905  \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
7906Matched, but too many substrings
7907
7908/^a.b/<lf>
7909    a\rb
7910 0: a\x0db
7911    a\nb\<cr>
7912 0: a\x0ab
7913    a\x85b\<anycrlf>
7914 0: a\x85b
7915    ** Failers
7916No match
7917    a\nb
7918No match
7919    a\nb\<any>
7920No match
7921    a\rb\<cr>
7922No match
7923    a\rb\<any>
7924No match
7925    a\x85b\<any>
7926No match
7927    a\rb\<anycrlf>
7928No match
7929
7930/^abc./mgx<any>
7931    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7932 0: abc1
7933 0: abc2
7934 0: abc3
7935 0: abc4
7936 0: abc5
7937 0: abc6
7938 0: abc7
7939
7940/abc.$/mgx<any>
7941    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7942 0: abc1
7943 0: abc2
7944 0: abc3
7945 0: abc4
7946 0: abc5
7947 0: abc6
7948 0: abc9
7949
7950/a/<cr><any>
7951
7952/a/<any><crlf>
7953Failed: inconsistent NEWLINE options at offset 0
7954
7955/^a\Rb/<bsr_unicode>
7956    a\nb
7957 0: a\x0ab
7958    a\rb
7959 0: a\x0db
7960    a\r\nb
7961 0: a\x0d\x0ab
7962    a\x0bb
7963 0: a\x0bb
7964    a\x0cb
7965 0: a\x0cb
7966    a\x85b
7967 0: a\x85b
7968    ** Failers
7969No match
7970    a\n\rb
7971No match
7972
7973/^a\R*b/<bsr_unicode>
7974    ab
7975 0: ab
7976    a\nb
7977 0: a\x0ab
7978    a\rb
7979 0: a\x0db
7980    a\r\nb
7981 0: a\x0d\x0ab
7982    a\x0bb
7983 0: a\x0bb
7984    a\x0cb
7985 0: a\x0cb
7986    a\x85b
7987 0: a\x85b
7988    a\n\rb
7989 0: a\x0a\x0db
7990    a\n\r\x85\x0cb
7991 0: a\x0a\x0d\x85\x0cb
7992
7993/^a\R+b/<bsr_unicode>
7994    a\nb
7995 0: a\x0ab
7996    a\rb
7997 0: a\x0db
7998    a\r\nb
7999 0: a\x0d\x0ab
8000    a\x0bb
8001 0: a\x0bb
8002    a\x0cb
8003 0: a\x0cb
8004    a\x85b
8005 0: a\x85b
8006    a\n\rb
8007 0: a\x0a\x0db
8008    a\n\r\x85\x0cb
8009 0: a\x0a\x0d\x85\x0cb
8010    ** Failers
8011No match
8012    ab
8013No match
8014
8015/^a\R{1,3}b/<bsr_unicode>
8016    a\nb
8017 0: a\x0ab
8018    a\n\rb
8019 0: a\x0a\x0db
8020    a\n\r\x85b
8021 0: a\x0a\x0d\x85b
8022    a\r\n\r\nb
8023 0: a\x0d\x0a\x0d\x0ab
8024    a\r\n\r\n\r\nb
8025 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
8026    a\n\r\n\rb
8027 0: a\x0a\x0d\x0a\x0db
8028    a\n\n\r\nb
8029 0: a\x0a\x0a\x0d\x0ab
8030    ** Failers
8031No match
8032    a\n\n\n\rb
8033No match
8034    a\r
8035No match
8036
8037/^a[\R]b/<bsr_unicode>
8038    aRb
8039 0: aRb
8040    ** Failers
8041No match
8042    a\nb
8043No match
8044
8045/(?&abc)X(?<abc>P)/I
8046Capturing subpattern count = 1
8047Named capturing subpatterns:
8048  abc   1
8049No options
8050No first char
8051Need char = 'P'
8052    abcPXP123
8053 0: PXP
8054 1: P
8055
8056/(?1)X(?<abc>P)/I
8057Capturing subpattern count = 1
8058Named capturing subpatterns:
8059  abc   1
8060No options
8061No first char
8062Need char = 'P'
8063    abcPXP123
8064 0: PXP
8065 1: P
8066
8067/(?:a(?&abc)b)*(?<abc>x)/
8068    123axbaxbaxbx456
8069 0: axbaxbaxbx
8070 1: x
8071    123axbaxbaxb456
8072 0: x
8073 1: x
8074
8075/(?:a(?&abc)b){1,5}(?<abc>x)/
8076    123axbaxbaxbx456
8077 0: axbaxbaxbx
8078 1: x
8079
8080/(?:a(?&abc)b){2,5}(?<abc>x)/
8081    123axbaxbaxbx456
8082 0: axbaxbaxbx
8083 1: x
8084
8085/(?:a(?&abc)b){2,}(?<abc>x)/
8086    123axbaxbaxbx456
8087 0: axbaxbaxbx
8088 1: x
8089
8090/(abc)(?i:(?1))/
8091   defabcabcxyz
8092 0: abcabc
8093 1: abc
8094   DEFabcABCXYZ
8095No match
8096
8097/(abc)(?:(?i)(?1))/
8098   defabcabcxyz
8099 0: abcabc
8100 1: abc
8101   DEFabcABCXYZ
8102No match
8103
8104/^(a)\g-2/
8105Failed: reference to non-existent subpattern at offset 7
8106
8107/^(a)\g/
8108Failed: a numbered reference must not be zero at offset 5
8109
8110/^(a)\g{0}/
8111Failed: a numbered reference must not be zero at offset 8
8112
8113/^(a)\g{3/
8114Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8115
8116/^(a)\g{aa}/
8117Failed: reference to non-existent subpattern at offset 9
8118
8119/^a.b/<lf>
8120    a\rb
8121 0: a\x0db
8122    *** Failers
8123No match
8124    a\nb
8125No match
8126
8127/.+foo/
8128    afoo
8129 0: afoo
8130    ** Failers
8131No match
8132    \r\nfoo
8133No match
8134    \nfoo
8135No match
8136
8137/.+foo/<crlf>
8138    afoo
8139 0: afoo
8140    \nfoo
8141 0: \x0afoo
8142    ** Failers
8143No match
8144    \r\nfoo
8145No match
8146
8147/.+foo/<any>
8148    afoo
8149 0: afoo
8150    ** Failers
8151No match
8152    \nfoo
8153No match
8154    \r\nfoo
8155No match
8156
8157/.+foo/s
8158    afoo
8159 0: afoo
8160    \r\nfoo
8161 0: \x0d\x0afoo
8162    \nfoo
8163 0: \x0afoo
8164
8165/^$/mg<any>
8166    abc\r\rxyz
8167 0:
8168    abc\n\rxyz
8169 0:
8170    ** Failers
8171No match
8172    abc\r\nxyz
8173No match
8174
8175/(?m)^$/<any>g+
8176    abc\r\n\r\n
8177 0:
8178 0+ \x0d\x0a
8179
8180/(?m)^$|^\r\n/<any>g+
8181    abc\r\n\r\n
8182 0:
8183 0+ \x0d\x0a
8184 0: \x0d\x0a
8185 0+
8186
8187/(?m)$/<any>g+
8188    abc\r\n\r\n
8189 0:
8190 0+ \x0d\x0a\x0d\x0a
8191 0:
8192 0+ \x0d\x0a
8193 0:
8194 0+
8195
8196/abc.$/mgx<anycrlf>
8197    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
8198 0: abc1
8199 0: abc4
8200 0: abc5
8201 0: abc9
8202
8203/^X/m
8204    XABC
8205 0: X
8206    ** Failers
8207No match
8208    XABC\B
8209No match
8210
8211/(ab|c)(?-1)/BZ
8212------------------------------------------------------------------
8213        Bra
8214        CBra 1
8215        ab
8216        Alt
8217        c
8218        Ket
8219        Recurse
8220        Ket
8221        End
8222------------------------------------------------------------------
8223    abc
8224 0: abc
8225 1: ab
8226
8227/xy(?+1)(abc)/BZ
8228------------------------------------------------------------------
8229        Bra
8230        xy
8231        Recurse
8232        CBra 1
8233        abc
8234        Ket
8235        Ket
8236        End
8237------------------------------------------------------------------
8238    xyabcabc
8239 0: xyabcabc
8240 1: abc
8241    ** Failers
8242No match
8243    xyabc
8244No match
8245
8246/x(?-0)y/
8247Failed: a numbered reference must not be zero at offset 5
8248
8249/x(?-1)y/
8250Failed: reference to non-existent subpattern at offset 5
8251
8252/x(?+0)y/
8253Failed: a numbered reference must not be zero at offset 5
8254
8255/x(?+1)y/
8256Failed: reference to non-existent subpattern at offset 5
8257
8258/^(abc)?(?(-1)X|Y)/BZ
8259------------------------------------------------------------------
8260        Bra
8261        ^
8262        Brazero
8263        CBra 1
8264        abc
8265        Ket
8266        Cond
8267      1 Cond ref
8268        X
8269        Alt
8270        Y
8271        Ket
8272        Ket
8273        End
8274------------------------------------------------------------------
8275    abcX
8276 0: abcX
8277 1: abc
8278    Y
8279 0: Y
8280    ** Failers
8281No match
8282    abcY
8283No match
8284
8285/^((?(+1)X|Y)(abc))+/BZ
8286------------------------------------------------------------------
8287        Bra
8288        ^
8289        CBra 1
8290        Cond
8291      2 Cond ref
8292        X
8293        Alt
8294        Y
8295        Ket
8296        CBra 2
8297        abc
8298        Ket
8299        KetRmax
8300        Ket
8301        End
8302------------------------------------------------------------------
8303    YabcXabc
8304 0: YabcXabc
8305 1: Xabc
8306 2: abc
8307    YabcXabcXabc
8308 0: YabcXabcXabc
8309 1: Xabc
8310 2: abc
8311    ** Failers
8312No match
8313    XabcXabc
8314No match
8315
8316/(?(-1)a)/BZ
8317Failed: reference to non-existent subpattern at offset 6
8318
8319/((?(-1)a))/BZ
8320------------------------------------------------------------------
8321        Bra
8322        CBra 1
8323        Cond
8324      1 Cond ref
8325        a
8326        Ket
8327        Ket
8328        Ket
8329        End
8330------------------------------------------------------------------
8331
8332/((?(-2)a))/BZ
8333Failed: reference to non-existent subpattern at offset 7
8334
8335/^(?(+1)X|Y)(.)/BZ
8336------------------------------------------------------------------
8337        Bra
8338        ^
8339        Cond
8340      1 Cond ref
8341        X
8342        Alt
8343        Y
8344        Ket
8345        CBra 1
8346        Any
8347        Ket
8348        Ket
8349        End
8350------------------------------------------------------------------
8351    Y!
8352 0: Y!
8353 1: !
8354
8355/(?<A>tom|bon)-\k{A}/
8356    tom-tom
8357 0: tom-tom
8358 1: tom
8359    bon-bon
8360 0: bon-bon
8361 1: bon
8362    ** Failers
8363No match
8364    tom-bon
8365No match
8366
8367/\g{A/
8368Failed: syntax error in subpattern name (missing terminator) at offset 4
8369
8370/(?|(abc)|(xyz))/BZ
8371------------------------------------------------------------------
8372        Bra
8373        Bra
8374        CBra 1
8375        abc
8376        Ket
8377        Alt
8378        CBra 1
8379        xyz
8380        Ket
8381        Ket
8382        Ket
8383        End
8384------------------------------------------------------------------
8385   >abc<
8386 0: abc
8387 1: abc
8388   >xyz<
8389 0: xyz
8390 1: xyz
8391
8392/(x)(?|(abc)|(xyz))(x)/BZ
8393------------------------------------------------------------------
8394        Bra
8395        CBra 1
8396        x
8397        Ket
8398        Bra
8399        CBra 2
8400        abc
8401        Ket
8402        Alt
8403        CBra 2
8404        xyz
8405        Ket
8406        Ket
8407        CBra 3
8408        x
8409        Ket
8410        Ket
8411        End
8412------------------------------------------------------------------
8413    xabcx
8414 0: xabcx
8415 1: x
8416 2: abc
8417 3: x
8418    xxyzx
8419 0: xxyzx
8420 1: x
8421 2: xyz
8422 3: x
8423
8424/(x)(?|(abc)(pqr)|(xyz))(x)/BZ
8425------------------------------------------------------------------
8426        Bra
8427        CBra 1
8428        x
8429        Ket
8430        Bra
8431        CBra 2
8432        abc
8433        Ket
8434        CBra 3
8435        pqr
8436        Ket
8437        Alt
8438        CBra 2
8439        xyz
8440        Ket
8441        Ket
8442        CBra 4
8443        x
8444        Ket
8445        Ket
8446        End
8447------------------------------------------------------------------
8448    xabcpqrx
8449 0: xabcpqrx
8450 1: x
8451 2: abc
8452 3: pqr
8453 4: x
8454    xxyzx
8455 0: xxyzx
8456 1: x
8457 2: xyz
8458 3: <unset>
8459 4: x
8460
8461/\H++X/BZ
8462------------------------------------------------------------------
8463        Bra
8464        \H++
8465        X
8466        Ket
8467        End
8468------------------------------------------------------------------
8469    ** Failers
8470No match
8471    XXXX
8472No match
8473
8474/\H+\hY/BZ
8475------------------------------------------------------------------
8476        Bra
8477        \H++
8478        \h
8479        Y
8480        Ket
8481        End
8482------------------------------------------------------------------
8483    XXXX Y
8484 0: XXXX Y
8485
8486/\H+ Y/BZ
8487------------------------------------------------------------------
8488        Bra
8489        \H++
8490         Y
8491        Ket
8492        End
8493------------------------------------------------------------------
8494
8495/\h+A/BZ
8496------------------------------------------------------------------
8497        Bra
8498        \h++
8499        A
8500        Ket
8501        End
8502------------------------------------------------------------------
8503
8504/\v*B/BZ
8505------------------------------------------------------------------
8506        Bra
8507        \v*+
8508        B
8509        Ket
8510        End
8511------------------------------------------------------------------
8512
8513/\V+\x0a/BZ
8514------------------------------------------------------------------
8515        Bra
8516        \V++
8517        \x0a
8518        Ket
8519        End
8520------------------------------------------------------------------
8521
8522/A+\h/BZ
8523------------------------------------------------------------------
8524        Bra
8525        A++
8526        \h
8527        Ket
8528        End
8529------------------------------------------------------------------
8530
8531/ *\H/BZ
8532------------------------------------------------------------------
8533        Bra
8534         *+
8535        \H
8536        Ket
8537        End
8538------------------------------------------------------------------
8539
8540/A*\v/BZ
8541------------------------------------------------------------------
8542        Bra
8543        A*+
8544        \v
8545        Ket
8546        End
8547------------------------------------------------------------------
8548
8549/\x0b*\V/BZ
8550------------------------------------------------------------------
8551        Bra
8552        \x0b*+
8553        \V
8554        Ket
8555        End
8556------------------------------------------------------------------
8557
8558/\d+\h/BZ
8559------------------------------------------------------------------
8560        Bra
8561        \d++
8562        \h
8563        Ket
8564        End
8565------------------------------------------------------------------
8566
8567/\d*\v/BZ
8568------------------------------------------------------------------
8569        Bra
8570        \d*+
8571        \v
8572        Ket
8573        End
8574------------------------------------------------------------------
8575
8576/S+\h\S+\v/BZ
8577------------------------------------------------------------------
8578        Bra
8579        S++
8580        \h
8581        \S++
8582        \v
8583        Ket
8584        End
8585------------------------------------------------------------------
8586
8587/\w{3,}\h\w+\v/BZ
8588------------------------------------------------------------------
8589        Bra
8590        \w{3}
8591        \w*+
8592        \h
8593        \w++
8594        \v
8595        Ket
8596        End
8597------------------------------------------------------------------
8598
8599/\h+\d\h+\w\h+\S\h+\H/BZ
8600------------------------------------------------------------------
8601        Bra
8602        \h++
8603        \d
8604        \h++
8605        \w
8606        \h++
8607        \S
8608        \h++
8609        \H
8610        Ket
8611        End
8612------------------------------------------------------------------
8613
8614/\v+\d\v+\w\v+\S\v+\V/BZ
8615------------------------------------------------------------------
8616        Bra
8617        \v++
8618        \d
8619        \v++
8620        \w
8621        \v++
8622        \S
8623        \v++
8624        \V
8625        Ket
8626        End
8627------------------------------------------------------------------
8628
8629/\H+\h\H+\d/BZ
8630------------------------------------------------------------------
8631        Bra
8632        \H++
8633        \h
8634        \H+
8635        \d
8636        Ket
8637        End
8638------------------------------------------------------------------
8639
8640/\V+\v\V+\w/BZ
8641------------------------------------------------------------------
8642        Bra
8643        \V++
8644        \v
8645        \V+
8646        \w
8647        Ket
8648        End
8649------------------------------------------------------------------
8650
8651/\( (?: [^()]* | (?R) )* \)/x
8652\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)
8653 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8654
8655/[\E]AAA/
8656Failed: missing terminating ] for character class at offset 7
8657
8658/[\Q\E]AAA/
8659Failed: missing terminating ] for character class at offset 9
8660
8661/[^\E]AAA/
8662Failed: missing terminating ] for character class at offset 8
8663
8664/[^\Q\E]AAA/
8665Failed: missing terminating ] for character class at offset 10
8666
8667/[\E^]AAA/
8668Failed: missing terminating ] for character class at offset 8
8669
8670/[\Q\E^]AAA/
8671Failed: missing terminating ] for character class at offset 10
8672
8673/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
8674------------------------------------------------------------------
8675        Bra
8676        A
8677        *PRUNE
8678        B
8679        *SKIP
8680        C
8681        *THEN
8682        D
8683        *COMMIT
8684        E
8685        *FAIL
8686        F
8687        *FAIL
8688        G
8689        *FAIL
8690        H
8691        *ACCEPT
8692        I
8693        Ket
8694        End
8695------------------------------------------------------------------
8696
8697/^a+(*FAIL)/C
8698    aaaaaa
8699--->aaaaaa
8700 +0 ^          ^
8701 +1 ^          a+
8702 +3 ^     ^    (*FAIL)
8703 +3 ^    ^     (*FAIL)
8704 +3 ^   ^      (*FAIL)
8705 +3 ^  ^       (*FAIL)
8706 +3 ^ ^        (*FAIL)
8707 +3 ^^         (*FAIL)
8708No match
8709
8710/a+b?c+(*FAIL)/C
8711    aaabccc
8712--->aaabccc
8713 +0 ^           a+
8714 +2 ^  ^        b?
8715 +4 ^   ^       c+
8716 +6 ^      ^    (*FAIL)
8717 +6 ^     ^     (*FAIL)
8718 +6 ^    ^      (*FAIL)
8719 +0  ^          a+
8720 +2  ^ ^        b?
8721 +4  ^  ^       c+
8722 +6  ^     ^    (*FAIL)
8723 +6  ^    ^     (*FAIL)
8724 +6  ^   ^      (*FAIL)
8725 +0   ^         a+
8726 +2   ^^        b?
8727 +4   ^ ^       c+
8728 +6   ^    ^    (*FAIL)
8729 +6   ^   ^     (*FAIL)
8730 +6   ^  ^      (*FAIL)
8731No match
8732
8733/a+b?(*PRUNE)c+(*FAIL)/C
8734    aaabccc
8735--->aaabccc
8736 +0 ^           a+
8737 +2 ^  ^        b?
8738 +4 ^   ^       (*PRUNE)
8739+12 ^   ^       c+
8740+14 ^      ^    (*FAIL)
8741+14 ^     ^     (*FAIL)
8742+14 ^    ^      (*FAIL)
8743 +0  ^          a+
8744 +2  ^ ^        b?
8745 +4  ^  ^       (*PRUNE)
8746+12  ^  ^       c+
8747+14  ^     ^    (*FAIL)
8748+14  ^    ^     (*FAIL)
8749+14  ^   ^      (*FAIL)
8750 +0   ^         a+
8751 +2   ^^        b?
8752 +4   ^ ^       (*PRUNE)
8753+12   ^ ^       c+
8754+14   ^    ^    (*FAIL)
8755+14   ^   ^     (*FAIL)
8756+14   ^  ^      (*FAIL)
8757No match
8758
8759/a+b?(*COMMIT)c+(*FAIL)/C
8760    aaabccc
8761--->aaabccc
8762 +0 ^           a+
8763 +2 ^  ^        b?
8764 +4 ^   ^       (*COMMIT)
8765+13 ^   ^       c+
8766+15 ^      ^    (*FAIL)
8767+15 ^     ^     (*FAIL)
8768+15 ^    ^      (*FAIL)
8769No match
8770
8771/a+b?(*SKIP)c+(*FAIL)/C
8772    aaabcccaaabccc
8773--->aaabcccaaabccc
8774 +0 ^                  a+
8775 +2 ^  ^               b?
8776 +4 ^   ^              (*SKIP)
8777+11 ^   ^              c+
8778+13 ^      ^           (*FAIL)
8779+13 ^     ^            (*FAIL)
8780+13 ^    ^             (*FAIL)
8781 +0        ^           a+
8782 +2        ^  ^        b?
8783 +4        ^   ^       (*SKIP)
8784+11        ^   ^       c+
8785+13        ^      ^    (*FAIL)
8786+13        ^     ^     (*FAIL)
8787+13        ^    ^      (*FAIL)
8788No match
8789
8790/a+b?(*THEN)c+(*FAIL)/C
8791    aaabccc
8792--->aaabccc
8793 +0 ^           a+
8794 +2 ^  ^        b?
8795 +4 ^   ^       (*THEN)
8796+11 ^   ^       c+
8797+13 ^      ^    (*FAIL)
8798+13 ^     ^     (*FAIL)
8799+13 ^    ^      (*FAIL)
8800 +0  ^          a+
8801 +2  ^ ^        b?
8802 +4  ^  ^       (*THEN)
8803+11  ^  ^       c+
8804+13  ^     ^    (*FAIL)
8805+13  ^    ^     (*FAIL)
8806+13  ^   ^      (*FAIL)
8807 +0   ^         a+
8808 +2   ^^        b?
8809 +4   ^ ^       (*THEN)
8810+11   ^ ^       c+
8811+13   ^    ^    (*FAIL)
8812+13   ^   ^     (*FAIL)
8813+13   ^  ^      (*FAIL)
8814No match
8815
8816/a(*MARK)b/
8817Failed: (*MARK) must have an argument at offset 7
8818
8819/(?i:A{1,}\6666666666)/
8820Failed: number is too big at offset 19
8821
8822/\g6666666666/
8823Failed: number is too big at offset 11
8824
8825/[\g6666666666]/BZ
8826------------------------------------------------------------------
8827        Bra
8828        [6g]
8829        Ket
8830        End
8831------------------------------------------------------------------
8832
8833/(?1)\c[/
8834Failed: reference to non-existent subpattern at offset 3
8835
8836/.+A/<crlf>
8837    \r\nA
8838No match
8839
8840/\nA/<crlf>
8841    \r\nA
8842 0: \x0aA
8843
8844/[\r\n]A/<crlf>
8845    \r\nA
8846 0: \x0aA
8847
8848/(\r|\n)A/<crlf>
8849    \r\nA
8850 0: \x0aA
8851 1: \x0a
8852
8853/a(*CR)b/
8854Failed: (*VERB) not recognized or malformed at offset 5
8855
8856/(*CR)a.b/
8857    a\nb
8858 0: a\x0ab
8859    ** Failers
8860No match
8861    a\rb
8862No match
8863
8864/(*CR)a.b/<lf>
8865    a\nb
8866 0: a\x0ab
8867    ** Failers
8868No match
8869    a\rb
8870No match
8871
8872/(*LF)a.b/<CRLF>
8873    a\rb
8874 0: a\x0db
8875    ** Failers
8876No match
8877    a\nb
8878No match
8879
8880/(*CRLF)a.b/
8881    a\rb
8882 0: a\x0db
8883    a\nb
8884 0: a\x0ab
8885    ** Failers
8886No match
8887    a\r\nb
8888No match
8889
8890/(*ANYCRLF)a.b/<CR>
8891    ** Failers
8892No match
8893    a\rb
8894No match
8895    a\nb
8896No match
8897    a\r\nb
8898No match
8899
8900/(*ANY)a.b/<cr>
8901    ** Failers
8902No match
8903    a\rb
8904No match
8905    a\nb
8906No match
8907    a\r\nb
8908No match
8909    a\x85b
8910No match
8911
8912/(*ANY).*/g
8913    abc\r\ndef
8914 0: abc
8915 0:
8916 0: def
8917 0:
8918
8919/(*ANYCRLF).*/g
8920    abc\r\ndef
8921 0: abc
8922 0:
8923 0: def
8924 0:
8925
8926/(*CRLF).*/g
8927    abc\r\ndef
8928 0: abc
8929 0:
8930 0: def
8931 0:
8932
8933/a\Rb/I<bsr_anycrlf>
8934Capturing subpattern count = 0
8935Options: bsr_anycrlf
8936First char = 'a'
8937Need char = 'b'
8938    a\rb
8939 0: a\x0db
8940    a\nb
8941 0: a\x0ab
8942    a\r\nb
8943 0: a\x0d\x0ab
8944    ** Failers
8945No match
8946    a\x85b
8947No match
8948    a\x0bb
8949No match
8950
8951/a\Rb/I<bsr_unicode>
8952Capturing subpattern count = 0
8953Options: bsr_unicode
8954First char = 'a'
8955Need char = 'b'
8956    a\rb
8957 0: a\x0db
8958    a\nb
8959 0: a\x0ab
8960    a\r\nb
8961 0: a\x0d\x0ab
8962    a\x85b
8963 0: a\x85b
8964    a\x0bb
8965 0: a\x0bb
8966    ** Failers
8967No match
8968    a\x85b\<bsr_anycrlf>
8969No match
8970    a\x0bb\<bsr_anycrlf>
8971No match
8972
8973/a\R?b/I<bsr_anycrlf>
8974Capturing subpattern count = 0
8975Options: bsr_anycrlf
8976First char = 'a'
8977Need char = 'b'
8978    a\rb
8979 0: a\x0db
8980    a\nb
8981 0: a\x0ab
8982    a\r\nb
8983 0: a\x0d\x0ab
8984    ** Failers
8985No match
8986    a\x85b
8987No match
8988    a\x0bb
8989No match
8990
8991/a\R?b/I<bsr_unicode>
8992Capturing subpattern count = 0
8993Options: bsr_unicode
8994First char = 'a'
8995Need char = 'b'
8996    a\rb
8997 0: a\x0db
8998    a\nb
8999 0: a\x0ab
9000    a\r\nb
9001 0: a\x0d\x0ab
9002    a\x85b
9003 0: a\x85b
9004    a\x0bb
9005 0: a\x0bb
9006    ** Failers
9007No match
9008    a\x85b\<bsr_anycrlf>
9009No match
9010    a\x0bb\<bsr_anycrlf>
9011No match
9012
9013/a\R{2,4}b/I<bsr_anycrlf>
9014Capturing subpattern count = 0
9015Options: bsr_anycrlf
9016First char = 'a'
9017Need char = 'b'
9018    a\r\n\nb
9019 0: a\x0d\x0a\x0ab
9020    a\n\r\rb
9021 0: a\x0a\x0d\x0db
9022    a\r\n\r\n\r\n\r\nb
9023 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
9024    ** Failers
9025No match
9026    a\x85\85b
9027No match
9028    a\x0b\0bb
9029No match
9030
9031/a\R{2,4}b/I<bsr_unicode>
9032Capturing subpattern count = 0
9033Options: bsr_unicode
9034First char = 'a'
9035Need char = 'b'
9036    a\r\rb
9037 0: a\x0d\x0db
9038    a\n\n\nb
9039 0: a\x0a\x0a\x0ab
9040    a\r\n\n\r\rb
9041 0: a\x0d\x0a\x0a\x0d\x0db
9042    a\x85\85b
9043No match
9044    a\x0b\0bb
9045No match
9046    ** Failers
9047No match
9048    a\r\r\r\r\rb
9049No match
9050    a\x85\85b\<bsr_anycrlf>
9051No match
9052    a\x0b\0bb\<bsr_anycrlf>
9053No match
9054
9055/(*BSR_ANYCRLF)a\Rb/I
9056Capturing subpattern count = 0
9057Options: bsr_anycrlf
9058First char = 'a'
9059Need char = 'b'
9060    a\nb
9061 0: a\x0ab
9062    a\rb
9063 0: a\x0db
9064
9065/(*BSR_UNICODE)a\Rb/I
9066Capturing subpattern count = 0
9067Options: bsr_unicode
9068First char = 'a'
9069Need char = 'b'
9070    a\x85b
9071 0: a\x85b
9072
9073/(*BSR_ANYCRLF)(*CRLF)a\Rb/I
9074Capturing subpattern count = 0
9075Options: bsr_anycrlf
9076Forced newline sequence: CRLF
9077First char = 'a'
9078Need char = 'b'
9079    a\nb
9080 0: a\x0ab
9081    a\rb
9082 0: a\x0db
9083
9084/(*CRLF)(*BSR_UNICODE)a\Rb/I
9085Capturing subpattern count = 0
9086Options: bsr_unicode
9087Forced newline sequence: CRLF
9088First char = 'a'
9089Need char = 'b'
9090    a\x85b
9091 0: a\x85b
9092
9093/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
9094Capturing subpattern count = 0
9095Options: bsr_anycrlf
9096Forced newline sequence: CR
9097First char = 'a'
9098Need char = 'b'
9099
9100/(?<a>)(?&)/
9101Failed: subpattern name expected at offset 9
9102
9103/(?<abc>)(?&a)/
9104Failed: reference to non-existent subpattern at offset 12
9105
9106/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
9107Failed: reference to non-existent subpattern at offset 32
9108
9109/(?+-a)/
9110Failed: digit expected after (?+ at offset 3
9111
9112/(?-+a)/
9113Failed: unrecognized character after (? or (?- at offset 3
9114
9115/(?(-1))/
9116Failed: reference to non-existent subpattern at offset 6
9117
9118/(?(+10))/
9119Failed: reference to non-existent subpattern at offset 7
9120
9121/(?(10))/
9122Failed: reference to non-existent subpattern at offset 6
9123
9124/(?(+2))()()/
9125
9126/(?(2))()()/
9127
9128/\k''/
9129Failed: subpattern name expected at offset 3
9130
9131/\k<>/
9132Failed: subpattern name expected at offset 3
9133
9134/\k{}/
9135Failed: subpattern name expected at offset 3
9136
9137/\k/
9138Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1
9139
9140/\kabc/
9141Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1
9142
9143/(?P=)/
9144Failed: subpattern name expected at offset 4
9145
9146/(?P>)/
9147Failed: subpattern name expected at offset 4
9148
9149/(?!\w)(?R)/
9150Failed: recursive call could loop indefinitely at offset 9
9151
9152/(?=\w)(?R)/
9153Failed: recursive call could loop indefinitely at offset 9
9154
9155/(?<!\w)(?R)/
9156Failed: recursive call could loop indefinitely at offset 10
9157
9158/(?<=\w)(?R)/
9159Failed: recursive call could loop indefinitely at offset 10
9160
9161/[[:foo:]]/
9162Failed: unknown POSIX class name at offset 3
9163
9164/[[:1234:]]/
9165Failed: unknown POSIX class name at offset 3
9166
9167/[[:f\oo:]]/
9168Failed: unknown POSIX class name at offset 3
9169
9170/[[: :]]/
9171Failed: unknown POSIX class name at offset 3
9172
9173/[[:...:]]/
9174Failed: unknown POSIX class name at offset 3
9175
9176/[[:l\ower:]]/
9177Failed: unknown POSIX class name at offset 3
9178
9179/[[:abc\:]]/
9180Failed: unknown POSIX class name at offset 3
9181
9182/[abc[:x\]pqr:]]/
9183Failed: unknown POSIX class name at offset 6
9184
9185/[[:a\dz:]]/
9186Failed: unknown POSIX class name at offset 3
9187
9188/(^(a|b\g<-1'c))/
9189Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
9190
9191/^(?+1)(?<a>x|y){0}z/
9192    xzxx
9193 0: xz
9194    yzyy
9195 0: yz
9196    ** Failers
9197No match
9198    xxz
9199No match
9200
9201/(\3)(\1)(a)/
9202    cat
9203No match
9204
9205/(\3)(\1)(a)/<JS>
9206    cat
9207 0: a
9208 1:
9209 2:
9210 3: a
9211
9212/TA]/
9213    The ACTA] comes
9214 0: TA]
9215
9216/TA]/<JS>
9217Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9218
9219/(?2)[]a()b](abc)/
9220Failed: reference to non-existent subpattern at offset 3
9221
9222/(?2)[^]a()b](abc)/
9223Failed: reference to non-existent subpattern at offset 3
9224
9225/(?1)[]a()b](abc)/
9226    abcbabc
9227 0: abcbabc
9228 1: abc
9229    ** Failers
9230No match
9231    abcXabc
9232No match
9233
9234/(?1)[^]a()b](abc)/
9235    abcXabc
9236 0: abcXabc
9237 1: abc
9238    ** Failers
9239No match
9240    abcbabc
9241No match
9242
9243/(?2)[]a()b](abc)(xyz)/
9244    xyzbabcxyz
9245 0: xyzbabcxyz
9246 1: abc
9247 2: xyz
9248
9249/(?&N)[]a(?<N>)](?<M>abc)/
9250Failed: reference to non-existent subpattern at offset 4
9251
9252/(?&N)[]a(?<N>)](abc)/
9253Failed: reference to non-existent subpattern at offset 4
9254
9255/a[]b/
9256Failed: missing terminating ] for character class at offset 4
9257
9258/a[^]b/
9259Failed: missing terminating ] for character class at offset 5
9260
9261/a[]b/<JS>
9262    ** Failers
9263No match
9264    ab
9265No match
9266
9267/a[]+b/<JS>
9268    ** Failers
9269No match
9270    ab
9271No match
9272
9273/a[]*+b/<JS>
9274    ** Failers
9275No match
9276    ab
9277No match
9278
9279/a[^]b/<JS>
9280    aXb
9281 0: aXb
9282    a\nb
9283 0: a\x0ab
9284    ** Failers
9285No match
9286    ab
9287No match
9288
9289/a[^]+b/<JS>
9290    aXb
9291 0: aXb
9292    a\nX\nXb
9293 0: a\x0aX\x0aXb
9294    ** Failers
9295No match
9296    ab
9297No match
9298
9299/a(?!)b/BZ
9300------------------------------------------------------------------
9301        Bra
9302        a
9303        *FAIL
9304        b
9305        Ket
9306        End
9307------------------------------------------------------------------
9308
9309/(?!)?a/BZ
9310------------------------------------------------------------------
9311        Bra
9312        Brazero
9313        Assert not
9314        Ket
9315        a
9316        Ket
9317        End
9318------------------------------------------------------------------
9319    ab
9320 0: a
9321
9322/a(*FAIL)+b/
9323Failed: nothing to repeat at offset 8
9324
9325/(abc|pqr|123){0}[xyz]/SI
9326Capturing subpattern count = 1
9327No options
9328No first char
9329No need char
9330Subject length lower bound = 1
9331Starting chars: x y z
9332
9333/(?(?=.*b)b|^)/CI
9334Capturing subpattern count = 0
9335May match empty string
9336Options:
9337No first char
9338No need char
9339   adc
9340--->adc
9341 +0 ^       (?(?=.*b)b|^)
9342 +2 ^       (?=.*b)
9343 +5 ^       .*
9344 +7 ^  ^    b
9345 +7 ^ ^     b
9346 +7 ^^      b
9347 +7 ^       b
9348+11 ^       ^
9349+12 ^       )
9350+13 ^
9351 0:
9352   abc
9353--->abc
9354 +0 ^       (?(?=.*b)b|^)
9355 +2 ^       (?=.*b)
9356 +5 ^       .*
9357 +7 ^  ^    b
9358 +7 ^ ^     b
9359 +7 ^^      b
9360 +8 ^ ^     )
9361 +9 ^       b
9362 +0  ^      (?(?=.*b)b|^)
9363 +2  ^      (?=.*b)
9364 +5  ^      .*
9365 +7  ^ ^    b
9366 +7  ^^     b
9367 +7  ^      b
9368 +8  ^^     )
9369 +9  ^      b
9370+10  ^^     |
9371+13  ^^
9372 0: b
9373
9374/(?(?=b).*b|^d)/I
9375Capturing subpattern count = 0
9376No options
9377No first char
9378No need char
9379
9380/(?(?=.*b).*b|^d)/I
9381Capturing subpattern count = 0
9382No options
9383First char at start or follows newline
9384No need char
9385
9386/xyz/C
9387  xyz
9388--->xyz
9389 +0 ^       x
9390 +1 ^^      y
9391 +2 ^ ^     z
9392 +3 ^  ^
9393 0: xyz
9394  abcxyz
9395--->abcxyz
9396 +0    ^       x
9397 +1    ^^      y
9398 +2    ^ ^     z
9399 +3    ^  ^
9400 0: xyz
9401  abcxyz\Y
9402--->abcxyz
9403 +0 ^          x
9404 +0  ^         x
9405 +0   ^        x
9406 +0    ^       x
9407 +1    ^^      y
9408 +2    ^ ^     z
9409 +3    ^  ^
9410 0: xyz
9411  ** Failers
9412No match
9413  abc
9414No match
9415  abc\Y
9416--->abc
9417 +0 ^       x
9418 +0  ^      x
9419 +0   ^     x
9420 +0    ^    x
9421No match
9422  abcxypqr
9423No match
9424  abcxypqr\Y
9425--->abcxypqr
9426 +0 ^            x
9427 +0  ^           x
9428 +0   ^          x
9429 +0    ^         x
9430 +1    ^^        y
9431 +2    ^ ^       z
9432 +0     ^        x
9433 +0      ^       x
9434 +0       ^      x
9435 +0        ^     x
9436 +0         ^    x
9437No match
9438
9439/(*NO_START_OPT)xyz/C
9440  abcxyz
9441--->abcxyz
9442+15 ^          x
9443+15  ^         x
9444+15   ^        x
9445+15    ^       x
9446+16    ^^      y
9447+17    ^ ^     z
9448+18    ^  ^
9449 0: xyz
9450
9451/(*NO_AUTO_POSSESS)a+b/BZ
9452------------------------------------------------------------------
9453        Bra
9454        a+
9455        b
9456        Ket
9457        End
9458------------------------------------------------------------------
9459
9460/xyz/CY
9461  abcxyz
9462--->abcxyz
9463 +0 ^          x
9464 +0  ^         x
9465 +0   ^        x
9466 +0    ^       x
9467 +1    ^^      y
9468 +2    ^ ^     z
9469 +3    ^  ^
9470 0: xyz
9471
9472/^"((?(?=[a])[^"])|b)*"$/C
9473    "ab"
9474--->"ab"
9475 +0 ^        ^
9476 +1 ^        "
9477 +2 ^^       ((?(?=[a])[^"])|b)*
9478 +3 ^^       (?(?=[a])[^"])
9479 +5 ^^       (?=[a])
9480 +8 ^^       [a]
9481+11 ^ ^      )
9482+12 ^^       [^"]
9483+16 ^ ^      )
9484+17 ^ ^      |
9485 +3 ^ ^      (?(?=[a])[^"])
9486 +5 ^ ^      (?=[a])
9487 +8 ^ ^      [a]
9488+17 ^ ^      |
9489+21 ^ ^      "
9490+18 ^ ^      b
9491+19 ^  ^     )
9492 +3 ^  ^     (?(?=[a])[^"])
9493 +5 ^  ^     (?=[a])
9494 +8 ^  ^     [a]
9495+17 ^  ^     |
9496+21 ^  ^     "
9497+22 ^   ^    $
9498+23 ^   ^
9499 0: "ab"
9500 1:
9501
9502/^"((?(?=[a])[^"])|b)*"$/
9503    "ab"
9504 0: "ab"
9505 1:
9506
9507/^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9508Failed: reference to non-existent subpattern at offset 5
9509
9510/^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9511    XYabcdY
9512 0: XYabcdY
9513 1: a
9514 2: b
9515 3: c
9516 4: d
9517 5: Y
9518
9519/Xa{2,4}b/
9520    X\P
9521Partial match: X
9522    Xa\P
9523Partial match: Xa
9524    Xaa\P
9525Partial match: Xaa
9526    Xaaa\P
9527Partial match: Xaaa
9528    Xaaaa\P
9529Partial match: Xaaaa
9530
9531/Xa{2,4}?b/
9532    X\P
9533Partial match: X
9534    Xa\P
9535Partial match: Xa
9536    Xaa\P
9537Partial match: Xaa
9538    Xaaa\P
9539Partial match: Xaaa
9540    Xaaaa\P
9541Partial match: Xaaaa
9542
9543/Xa{2,4}+b/
9544    X\P
9545Partial match: X
9546    Xa\P
9547Partial match: Xa
9548    Xaa\P
9549Partial match: Xaa
9550    Xaaa\P
9551Partial match: Xaaa
9552    Xaaaa\P
9553Partial match: Xaaaa
9554
9555/X\d{2,4}b/
9556    X\P
9557Partial match: X
9558    X3\P
9559Partial match: X3
9560    X33\P
9561Partial match: X33
9562    X333\P
9563Partial match: X333
9564    X3333\P
9565Partial match: X3333
9566
9567/X\d{2,4}?b/
9568    X\P
9569Partial match: X
9570    X3\P
9571Partial match: X3
9572    X33\P
9573Partial match: X33
9574    X333\P
9575Partial match: X333
9576    X3333\P
9577Partial match: X3333
9578
9579/X\d{2,4}+b/
9580    X\P
9581Partial match: X
9582    X3\P
9583Partial match: X3
9584    X33\P
9585Partial match: X33
9586    X333\P
9587Partial match: X333
9588    X3333\P
9589Partial match: X3333
9590
9591/X\D{2,4}b/
9592    X\P
9593Partial match: X
9594    Xa\P
9595Partial match: Xa
9596    Xaa\P
9597Partial match: Xaa
9598    Xaaa\P
9599Partial match: Xaaa
9600    Xaaaa\P
9601Partial match: Xaaaa
9602
9603/X\D{2,4}?b/
9604    X\P
9605Partial match: X
9606    Xa\P
9607Partial match: Xa
9608    Xaa\P
9609Partial match: Xaa
9610    Xaaa\P
9611Partial match: Xaaa
9612    Xaaaa\P
9613Partial match: Xaaaa
9614
9615/X\D{2,4}+b/
9616    X\P
9617Partial match: X
9618    Xa\P
9619Partial match: Xa
9620    Xaa\P
9621Partial match: Xaa
9622    Xaaa\P
9623Partial match: Xaaa
9624    Xaaaa\P
9625Partial match: Xaaaa
9626
9627/X[abc]{2,4}b/
9628    X\P
9629Partial match: X
9630    Xa\P
9631Partial match: Xa
9632    Xaa\P
9633Partial match: Xaa
9634    Xaaa\P
9635Partial match: Xaaa
9636    Xaaaa\P
9637Partial match: Xaaaa
9638
9639/X[abc]{2,4}?b/
9640    X\P
9641Partial match: X
9642    Xa\P
9643Partial match: Xa
9644    Xaa\P
9645Partial match: Xaa
9646    Xaaa\P
9647Partial match: Xaaa
9648    Xaaaa\P
9649Partial match: Xaaaa
9650
9651/X[abc]{2,4}+b/
9652    X\P
9653Partial match: X
9654    Xa\P
9655Partial match: Xa
9656    Xaa\P
9657Partial match: Xaa
9658    Xaaa\P
9659Partial match: Xaaa
9660    Xaaaa\P
9661Partial match: Xaaaa
9662
9663/X[^a]{2,4}b/
9664    X\P
9665Partial match: X
9666    Xz\P
9667Partial match: Xz
9668    Xzz\P
9669Partial match: Xzz
9670    Xzzz\P
9671Partial match: Xzzz
9672    Xzzzz\P
9673Partial match: Xzzzz
9674
9675/X[^a]{2,4}?b/
9676    X\P
9677Partial match: X
9678    Xz\P
9679Partial match: Xz
9680    Xzz\P
9681Partial match: Xzz
9682    Xzzz\P
9683Partial match: Xzzz
9684    Xzzzz\P
9685Partial match: Xzzzz
9686
9687/X[^a]{2,4}+b/
9688    X\P
9689Partial match: X
9690    Xz\P
9691Partial match: Xz
9692    Xzz\P
9693Partial match: Xzz
9694    Xzzz\P
9695Partial match: Xzzz
9696    Xzzzz\P
9697Partial match: Xzzzz
9698
9699/(Y)X\1{2,4}b/
9700    YX\P
9701Partial match: YX
9702    YXY\P
9703Partial match: YXY
9704    YXYY\P
9705Partial match: YXYY
9706    YXYYY\P
9707Partial match: YXYYY
9708    YXYYYY\P
9709Partial match: YXYYYY
9710
9711/(Y)X\1{2,4}?b/
9712    YX\P
9713Partial match: YX
9714    YXY\P
9715Partial match: YXY
9716    YXYY\P
9717Partial match: YXYY
9718    YXYYY\P
9719Partial match: YXYYY
9720    YXYYYY\P
9721Partial match: YXYYYY
9722
9723/(Y)X\1{2,4}+b/
9724    YX\P
9725Partial match: YX
9726    YXY\P
9727Partial match: YXY
9728    YXYY\P
9729Partial match: YXYY
9730    YXYYY\P
9731Partial match: YXYYY
9732    YXYYYY\P
9733Partial match: YXYYYY
9734
9735/\++\KZ|\d+X|9+Y/
9736    ++++123999\P
9737Partial match: 123999
9738    ++++123999Y\P
9739 0: 999Y
9740    ++++Z1234\P
9741 0: Z
9742
9743/Z(*F)/
9744    Z\P
9745No match
9746    ZA\P
9747No match
9748
9749/Z(?!)/
9750    Z\P
9751No match
9752    ZA\P
9753No match
9754
9755/dog(sbody)?/
9756    dogs\P
9757 0: dog
9758    dogs\P\P
9759Partial match: dogs
9760
9761/dog(sbody)??/
9762    dogs\P
9763 0: dog
9764    dogs\P\P
9765 0: dog
9766
9767/dog|dogsbody/
9768    dogs\P
9769 0: dog
9770    dogs\P\P
9771 0: dog
9772
9773/dogsbody|dog/
9774    dogs\P
9775 0: dog
9776    dogs\P\P
9777Partial match: dogs
9778
9779/\bthe cat\b/
9780    the cat\P
9781 0: the cat
9782    the cat\P\P
9783Partial match: the cat
9784
9785/abc/
9786   abc\P
9787 0: abc
9788   abc\P\P
9789 0: abc
9790
9791/abc\K123/
9792    xyzabc123pqr
9793 0: 123
9794    xyzabc12\P
9795Partial match: abc12
9796    xyzabc12\P\P
9797Partial match: abc12
9798
9799/(?<=abc)123/
9800    xyzabc123pqr
9801 0: 123
9802    xyzabc12\P
9803Partial match at offset 6: abc12
9804    xyzabc12\P\P
9805Partial match at offset 6: abc12
9806
9807/\babc\b/
9808    +++abc+++
9809 0: abc
9810    +++ab\P
9811Partial match at offset 3: +ab
9812    +++ab\P\P
9813Partial match at offset 3: +ab
9814
9815/(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9816------------------------------------------------------------------
9817        Bra
9818        Recurse
9819        Recurse
9820        Cond
9821        Cond def
9822        CBra 1
9823        <
9824        [^m]
9825        [^>]
9826        >
9827        [^<]
9828        Ket
9829        CBra 2
9830        \w*+
9831        Ket
9832        Ket
9833        Ket
9834        End
9835------------------------------------------------------------------
9836
9837/(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9838------------------------------------------------------------------
9839        Bra
9840        Recurse
9841        Recurse
9842        Cond
9843        Cond def
9844        CBra 1
9845        <
9846        [\x00-/:-\xff] (neg)
9847        [^>]
9848        >
9849        [^<]
9850        Ket
9851        CBra 2
9852        \w*+
9853        Ket
9854        Ket
9855        Ket
9856        End
9857------------------------------------------------------------------
9858
9859/(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9860------------------------------------------------------------------
9861        Bra
9862        CBra 1
9863        ab
9864        Ket
9865        CBra 2
9866        x
9867        CBra 3
9868        y
9869        Ket
9870        z
9871        CBra 4
9872        cd
9873        Close 4
9874        Close 2
9875        *ACCEPT
9876        Ket
9877        Ket
9878        pq
9879        Ket
9880        End
9881------------------------------------------------------------------
9882
9883/abc\K/+
9884    abcdef
9885 0:
9886 0+ def
9887    abcdef\N\N
9888 0:
9889 0+ def
9890    xyzabcdef\N\N
9891 0:
9892 0+ def
9893    ** Failers
9894No match
9895    abcdef\N
9896No match
9897    xyzabcdef\N
9898No match
9899
9900/^(?:(?=abc)|abc\K)/+
9901    abcdef
9902 0:
9903 0+ abcdef
9904    abcdef\N\N
9905 0:
9906 0+ def
9907    ** Failers
9908No match
9909    abcdef\N
9910No match
9911
9912/a?b?/+
9913    xyz
9914 0:
9915 0+ xyz
9916    xyzabc
9917 0:
9918 0+ xyzabc
9919    xyzabc\N
9920 0: ab
9921 0+ c
9922    xyzabc\N\N
9923 0:
9924 0+ yzabc
9925    xyz\N\N
9926 0:
9927 0+ yz
9928    ** Failers
9929 0:
9930 0+ ** Failers
9931    xyz\N
9932No match
9933
9934/^a?b?/+
9935    xyz
9936 0:
9937 0+ xyz
9938    xyzabc
9939 0:
9940 0+ xyzabc
9941    ** Failers
9942 0:
9943 0+ ** Failers
9944    xyzabc\N
9945No match
9946    xyzabc\N\N
9947No match
9948    xyz\N\N
9949No match
9950    xyz\N
9951No match
9952
9953/^(?<name>a|b\g<name>c)/
9954    aaaa
9955 0: a
9956 1: a
9957    bacxxx
9958 0: bac
9959 1: bac
9960    bbaccxxx
9961 0: bbacc
9962 1: bbacc
9963    bbbacccxx
9964 0: bbbaccc
9965 1: bbbaccc
9966
9967/^(?<name>a|b\g'name'c)/
9968    aaaa
9969 0: a
9970 1: a
9971    bacxxx
9972 0: bac
9973 1: bac
9974    bbaccxxx
9975 0: bbacc
9976 1: bbacc
9977    bbbacccxx
9978 0: bbbaccc
9979 1: bbbaccc
9980
9981/^(a|b\g<1>c)/
9982    aaaa
9983 0: a
9984 1: a
9985    bacxxx
9986 0: bac
9987 1: bac
9988    bbaccxxx
9989 0: bbacc
9990 1: bbacc
9991    bbbacccxx
9992 0: bbbaccc
9993 1: bbbaccc
9994
9995/^(a|b\g'1'c)/
9996    aaaa
9997 0: a
9998 1: a
9999    bacxxx
10000 0: bac
10001 1: bac
10002    bbaccxxx
10003 0: bbacc
10004 1: bbacc
10005    bbbacccxx
10006 0: bbbaccc
10007 1: bbbaccc
10008
10009/^(a|b\g'-1'c)/
10010    aaaa
10011 0: a
10012 1: a
10013    bacxxx
10014 0: bac
10015 1: bac
10016    bbaccxxx
10017 0: bbacc
10018 1: bbacc
10019    bbbacccxx
10020 0: bbbaccc
10021 1: bbbaccc
10022
10023/(^(a|b\g<-1>c))/
10024    aaaa
10025 0: a
10026 1: a
10027 2: a
10028    bacxxx
10029 0: bac
10030 1: bac
10031 2: bac
10032    bbaccxxx
10033 0: bbacc
10034 1: bbacc
10035 2: bbacc
10036    bbbacccxx
10037 0: bbbaccc
10038 1: bbbaccc
10039 2: bbbaccc
10040
10041/(?-i:\g<name>)(?i:(?<name>a))/
10042    XaaX
10043 0: aa
10044 1: a
10045    XAAX
10046 0: AA
10047 1: A
10048
10049/(?i:\g<name>)(?-i:(?<name>a))/
10050    XaaX
10051 0: aa
10052 1: a
10053    ** Failers
10054No match
10055    XAAX
10056No match
10057
10058/(?-i:\g<+1>)(?i:(a))/
10059    XaaX
10060 0: aa
10061 1: a
10062    XAAX
10063 0: AA
10064 1: A
10065
10066/(?=(?<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>\})\}))\{/
10067
10068/(?<n>a|b|c)\g<n>*/
10069   abc
10070 0: abc
10071 1: a
10072   accccbbb
10073 0: accccbbb
10074 1: a
10075
10076/^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
10077    XYabcdY
10078 0: XYabcdY
10079 1: a
10080 2: b
10081 3: <unset>
10082 4: <unset>
10083 5: c
10084 6: d
10085 7: Y
10086
10087/(?<=b(?1)|zzz)(a)/
10088    xbaax
10089 0: a
10090 1: a
10091    xzzzax
10092 0: a
10093 1: a
10094
10095/(a)(?<=b\1)/
10096Failed: lookbehind assertion is not fixed length at offset 10
10097
10098/(a)(?<=b+(?1))/
10099Failed: lookbehind assertion is not fixed length at offset 13
10100
10101/(a+)(?<=b(?1))/
10102Failed: lookbehind assertion is not fixed length at offset 14
10103
10104/(a(?<=b(?1)))/
10105Failed: lookbehind assertion is not fixed length at offset 13
10106
10107/(?<=b(?1))xyz/
10108Failed: reference to non-existent subpattern at offset 8
10109
10110/(?<=b(?1))xyz(b+)pqrstuvew/
10111Failed: lookbehind assertion is not fixed length at offset 26
10112
10113/(a|bc)\1/SI
10114Capturing subpattern count = 1
10115Max back reference = 1
10116No options
10117No first char
10118No need char
10119Subject length lower bound = 2
10120Starting chars: a b
10121
10122/(a|bc)\1{2,3}/SI
10123Capturing subpattern count = 1
10124Max back reference = 1
10125No options
10126No first char
10127No need char
10128Subject length lower bound = 3
10129Starting chars: a b
10130
10131/(a|bc)(?1)/SI
10132Capturing subpattern count = 1
10133No options
10134No first char
10135No need char
10136Subject length lower bound = 2
10137Starting chars: a b
10138
10139/(a|b\1)(a|b\1)/SI
10140Capturing subpattern count = 2
10141Max back reference = 1
10142No options
10143No first char
10144No need char
10145Subject length lower bound = 2
10146Starting chars: a b
10147
10148/(a|b\1){2}/SI
10149Capturing subpattern count = 1
10150Max back reference = 1
10151No options
10152No first char
10153No need char
10154Subject length lower bound = 2
10155Starting chars: a b
10156
10157/(a|bbbb\1)(a|bbbb\1)/SI
10158Capturing subpattern count = 2
10159Max back reference = 1
10160No options
10161No first char
10162No need char
10163Subject length lower bound = 2
10164Starting chars: a b
10165
10166/(a|bbbb\1){2}/SI
10167Capturing subpattern count = 1
10168Max back reference = 1
10169No options
10170No first char
10171No need char
10172Subject length lower bound = 2
10173Starting chars: a b
10174
10175/^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
10176Capturing subpattern count = 1
10177Options: anchored
10178No first char
10179Need char = ':'
10180Subject length lower bound = 22
10181No starting char list
10182
10183/<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
10184Capturing subpattern count = 11
10185Options: caseless dotall
10186First char = '<'
10187Need char = '>'
10188Subject length lower bound = 47
10189No starting char list
10190
10191"(?>.*/)foo"SI
10192Capturing subpattern count = 0
10193No options
10194No first char
10195Need char = 'o'
10196Subject length lower bound = 4
10197No starting char list
10198
10199/(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10200Capturing subpattern count = 0
10201Options: extended
10202No first char
10203Need char = '-'
10204Subject length lower bound = 8
10205No starting char list
10206
10207/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10208Capturing subpattern count = 1
10209Options: caseless
10210No first char
10211No need char
10212Subject length lower bound = 1
10213Starting chars: A B C a b c
10214
10215/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10216Capturing subpattern count = 0
10217No options
10218No first char
10219Need char = 'b'
10220Subject length lower bound = 41
10221Starting chars: c d
10222
10223/<a[\s]+href[\s]*=[\s]*          # find <a href=
10224 ([\"\'])?                       # find single or double quote
10225 (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10226                                 # quote, otherwise match up to next space
10227/isxSI
10228Capturing subpattern count = 3
10229Max back reference = 1
10230Options: caseless extended dotall
10231First char = '<'
10232Need char = '='
10233Subject length lower bound = 9
10234No starting char list
10235
10236/^(?!:)                       # colon disallowed at start
10237  (?:                         # start of item
10238    (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10239    (?(1)0 | () ) )           # if null previously matched, fail; else null
10240    :                         # followed by colon
10241  ){1,7}                      # end item; 1-7 of them required
10242  [0-9a-f]{1,4} $             # final hex number at end of string
10243  (?(1)|.)                    # check that there was an empty component
10244  /xiIS
10245Capturing subpattern count = 1
10246Max back reference = 1
10247Options: anchored caseless extended
10248No first char
10249Need char = ':'
10250Subject length lower bound = 2
10251No starting char list
10252
10253/(?|(?<a>A)|(?<a>B))/I
10254Capturing subpattern count = 1
10255Named capturing subpatterns:
10256  a   1
10257No options
10258No first char
10259No need char
10260    AB\Ca
10261 0: A
10262 1: A
10263  C A (1) a
10264    BA\Ca
10265 0: B
10266 1: B
10267  C B (1) a
10268
10269/(?|(?<a>A)|(?<b>B))/
10270Failed: different names for subpatterns of the same number are not allowed at offset 15
10271
10272/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10273    b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10274    (?('quote')[a-z]+|[0-9]+)/JIx
10275Capturing subpattern count = 6
10276Max back reference = 1
10277Named capturing subpatterns:
10278  apostrophe   2
10279  apostrophe   5
10280  quote        1
10281  quote        4
10282  realquote    3
10283  realquote    6
10284Options: extended dupnames
10285No first char
10286No need char
10287    a"aaaaa
10288 0: a"aaaaa
10289 1: "
10290 2: <unset>
10291 3: "
10292    b"aaaaa
10293 0: b"aaaaa
10294 1: <unset>
10295 2: <unset>
10296 3: <unset>
10297 4: "
10298 5: <unset>
10299 6: "
10300    ** Failers
10301No match
10302    b"11111
10303No match
10304    a"11111
10305No match
10306
10307/^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10308------------------------------------------------------------------
10309        Bra
10310        ^
10311        Bra
10312        CBra 1
10313        a
10314        Ket
10315        CBra 2
10316        b
10317        Ket
10318        CBra 3
10319        c
10320        Ket
10321        CBra 4
10322        d
10323        Ket
10324        Alt
10325        CBra 1
10326        e
10327        Ket
10328        Ket
10329        Cond
10330        Cond ref <D>2
10331        X
10332        Alt
10333        Y
10334        Ket
10335        Ket
10336        End
10337------------------------------------------------------------------
10338Capturing subpattern count = 4
10339Max back reference = 4
10340Named capturing subpatterns:
10341  D   4
10342  D   1
10343Options: anchored extended dupnames
10344No first char
10345No need char
10346    abcdX
10347 0: abcdX
10348 1: a
10349 2: b
10350 3: c
10351 4: d
10352    eX
10353 0: eX
10354 1: e
10355    ** Failers
10356No match
10357    abcdY
10358No match
10359    ey
10360No match
10361
10362/(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10363------------------------------------------------------------------
10364        Bra
10365        CBra 1
10366        a
10367        Ket
10368        CBra 2
10369        b
10370        Ket
10371        CBra 3
10372        c
10373        Ket
10374        CBra 4
10375        d
10376        Cond
10377        Cond recurse <A>2
10378        $
10379        Alt
10380        Recurse
10381        Ket
10382        Ket
10383        Ket
10384        End
10385------------------------------------------------------------------
10386Capturing subpattern count = 4
10387Max back reference = 1
10388Named capturing subpatterns:
10389  A   1
10390  A   4
10391Options: extended dupnames
10392First char = 'a'
10393Need char = 'd'
10394    abcdd
10395 0: abcdd
10396 1: a
10397 2: b
10398 3: c
10399 4: dd
10400    ** Failers
10401No match
10402    abcdde
10403No match
10404
10405/abcd*/
10406    xxxxabcd\P
10407 0: abcd
10408    xxxxabcd\P\P
10409Partial match: abcd
10410
10411/abcd*/i
10412    xxxxabcd\P
10413 0: abcd
10414    xxxxabcd\P\P
10415Partial match: abcd
10416    XXXXABCD\P
10417 0: ABCD
10418    XXXXABCD\P\P
10419Partial match: ABCD
10420
10421/abc\d*/
10422    xxxxabc1\P
10423 0: abc1
10424    xxxxabc1\P\P
10425Partial match: abc1
10426
10427/(a)bc\1*/
10428    xxxxabca\P
10429 0: abca
10430 1: a
10431    xxxxabca\P\P
10432Partial match: abca
10433
10434/abc[de]*/
10435    xxxxabcde\P
10436 0: abcde
10437    xxxxabcde\P\P
10438Partial match: abcde
10439
10440/-- This is not in the Perl-compatible test because Perl seems currently to be
10441    broken and not behaving as specified in that it *does* bumpalong after
10442    hitting (*COMMIT). --/
10443
10444/(?1)(A(*COMMIT)|B)D/
10445    ABD
10446 0: ABD
10447 1: B
10448    XABD
10449 0: ABD
10450 1: B
10451    BAD
10452 0: BAD
10453 1: A
10454    ABXABD
10455 0: ABD
10456 1: B
10457    ** Failers
10458No match
10459    ABX
10460No match
10461    BAXBAD
10462No match
10463
10464/(\3)(\1)(a)/<JS>
10465    cat
10466 0: a
10467 1:
10468 2:
10469 3: a
10470
10471/(\3)(\1)(a)/SI<JS>
10472Capturing subpattern count = 3
10473Max back reference = 3
10474Options:
10475No first char
10476Need char = 'a'
10477Subject length lower bound = 1
10478No starting char list
10479    cat
10480 0: a
10481 1:
10482 2:
10483 3: a
10484
10485/(\3)(\1)(a)/SI
10486Capturing subpattern count = 3
10487Max back reference = 3
10488No options
10489No first char
10490Need char = 'a'
10491Subject length lower bound = 3
10492No starting char list
10493    cat
10494No match
10495
10496/i(?(DEFINE)(?<s>a))/SI
10497Capturing subpattern count = 1
10498Named capturing subpatterns:
10499  s   1
10500No options
10501First char = 'i'
10502No need char
10503Subject length lower bound = 1
10504No starting char list
10505    i
10506 0: i
10507
10508/()i(?(1)a)/SI
10509Capturing subpattern count = 1
10510Max back reference = 1
10511No options
10512No first char
10513Need char = 'i'
10514Subject length lower bound = 1
10515Starting chars: i
10516    ia
10517 0: ia
10518 1:
10519
10520/(?i)a(?-i)b|c/BZ
10521------------------------------------------------------------------
10522        Bra
10523     /i a
10524        b
10525        Alt
10526        c
10527        Ket
10528        End
10529------------------------------------------------------------------
10530    XabX
10531 0: ab
10532    XAbX
10533 0: Ab
10534    CcC
10535 0: c
10536    ** Failers
10537No match
10538    XABX
10539No match
10540
10541/(?i)a(?s)b|c/BZ
10542------------------------------------------------------------------
10543        Bra
10544     /i ab
10545        Alt
10546     /i c
10547        Ket
10548        End
10549------------------------------------------------------------------
10550
10551/(?i)a(?s-i)b|c/BZ
10552------------------------------------------------------------------
10553        Bra
10554     /i a
10555        b
10556        Alt
10557        c
10558        Ket
10559        End
10560------------------------------------------------------------------
10561
10562/^(ab(c\1)d|x){2}$/BZ
10563------------------------------------------------------------------
10564        Bra
10565        ^
10566        Once
10567        CBra 1
10568        ab
10569        CBra 2
10570        c
10571        \1
10572        Ket
10573        d
10574        Alt
10575        x
10576        Ket
10577        Ket
10578        Once
10579        CBra 1
10580        ab
10581        CBra 2
10582        c
10583        \1
10584        Ket
10585        d
10586        Alt
10587        x
10588        Ket
10589        Ket
10590        $
10591        Ket
10592        End
10593------------------------------------------------------------------
10594    xabcxd
10595 0: xabcxd
10596 1: abcxd
10597 2: cx
10598
10599/^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10600------------------------------------------------------------------
10601        Bra
10602        ^
10603        Braposzero
10604        SBraPos
10605        Recurse
10606        KetRpos
10607        Cond
10608        Cond def
10609        CBra 1
10610        Any
10611        Ket
10612        Ket
10613        $
10614        Ket
10615        End
10616------------------------------------------------------------------
10617
10618/^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10619------------------------------------------------------------------
10620        Bra
10621        ^
10622        Brazero
10623        Once
10624        Recurse
10625        KetRmax
10626        Cond
10627        Cond def
10628        CBra 1
10629        Any
10630        Ket
10631        Ket
10632        $
10633        Ket
10634        End
10635------------------------------------------------------------------
10636
10637/ -- This one is here because Perl gives the match as "b" rather than "ab". I
10638     believe this to be a Perl bug. --/
10639
10640/(?>a\Kb)z|(ab)/
10641    ab
10642 0: ab
10643 1: ab
10644
10645/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10646Failed: recursive call could loop indefinitely at offset 31
10647
10648/abc(*MARK:)pqr/
10649Failed: (*MARK) must have an argument at offset 10
10650
10651/abc(*:)pqr/
10652Failed: (*MARK) must have an argument at offset 6
10653
10654/abc(*FAIL:123)xyz/
10655Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10656
10657/--- This should, and does, fail. In Perl, it does not, which I think is a
10658     bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10659
10660/A(*COMMIT)B/+K
10661    ACABX
10662No match
10663
10664/--- These should be different, but in Perl they are not, which I think
10665     is a bug in Perl. ---/
10666
10667/A(*THEN)B|A(*THEN)C/K
10668    AC
10669 0: AC
10670
10671/A(*PRUNE)B|A(*PRUNE)C/K
10672    AC
10673No match
10674
10675/--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10676though PCRE does. ---/
10677
10678/^A(*:A)B|^X(*:A)Y/K
10679    ** Failers
10680No match
10681    XAQQ
10682No match, mark = A
10683
10684/--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10685optimizations defeat this. So does the PCRE optimization unless we disable it
10686with \Y. ---/
10687
10688/(*COMMIT)ABC/
10689    ABCDEFG
10690 0: ABC
10691    ** Failers
10692No match
10693    DEFGABC\Y
10694No match
10695
10696/^(ab (c+(*THEN)cd) | xyz)/x
10697    abcccd
10698No match
10699
10700/^(ab (c+(*PRUNE)cd) | xyz)/x
10701    abcccd
10702No match
10703
10704/^(ab (c+(*FAIL)cd) | xyz)/x
10705    abcccd
10706No match
10707
10708/--- Perl gets some of these wrong ---/
10709
10710/(?>.(*ACCEPT))*?5/
10711    abcde
10712 0: a
10713
10714/(.(*ACCEPT))*?5/
10715    abcde
10716 0: a
10717 1: a
10718
10719/(.(*ACCEPT))5/
10720    abcde
10721 0: a
10722 1: a
10723
10724/(.(*ACCEPT))*5/
10725    abcde
10726 0: a
10727 1: a
10728
10729/A\NB./BZ
10730------------------------------------------------------------------
10731        Bra
10732        A
10733        Any
10734        B
10735        Any
10736        Ket
10737        End
10738------------------------------------------------------------------
10739    ACBD
10740 0: ACBD
10741    *** Failers
10742No match
10743    A\nB
10744No match
10745    ACB\n
10746No match
10747
10748/A\NB./sBZ
10749------------------------------------------------------------------
10750        Bra
10751        A
10752        Any
10753        B
10754        AllAny
10755        Ket
10756        End
10757------------------------------------------------------------------
10758    ACBD
10759 0: ACBD
10760    ACB\n
10761 0: ACB\x0a
10762    *** Failers
10763No match
10764    A\nB
10765No match
10766
10767/A\NB/<crlf>
10768    A\nB
10769 0: A\x0aB
10770    A\rB
10771 0: A\x0dB
10772    ** Failers
10773No match
10774    A\r\nB
10775No match
10776
10777/\R+b/BZ
10778------------------------------------------------------------------
10779        Bra
10780        \R++
10781        b
10782        Ket
10783        End
10784------------------------------------------------------------------
10785
10786/\R+\n/BZ
10787------------------------------------------------------------------
10788        Bra
10789        \R+
10790        \x0a
10791        Ket
10792        End
10793------------------------------------------------------------------
10794
10795/\R+\d/BZ
10796------------------------------------------------------------------
10797        Bra
10798        \R++
10799        \d
10800        Ket
10801        End
10802------------------------------------------------------------------
10803
10804/\d*\R/BZ
10805------------------------------------------------------------------
10806        Bra
10807        \d*+
10808        \R
10809        Ket
10810        End
10811------------------------------------------------------------------
10812
10813/\s*\R/BZ
10814------------------------------------------------------------------
10815        Bra
10816        \s*
10817        \R
10818        Ket
10819        End
10820------------------------------------------------------------------
10821    \x20\x0a
10822 0:  \x0a
10823    \x20\x0d
10824 0:  \x0d
10825    \x20\x0d\x0a
10826 0:  \x0d\x0a
10827
10828/\S*\R/BZ
10829------------------------------------------------------------------
10830        Bra
10831        \S*+
10832        \R
10833        Ket
10834        End
10835------------------------------------------------------------------
10836    a\x0a
10837 0: a\x0a
10838
10839/X\h*\R/BZ
10840------------------------------------------------------------------
10841        Bra
10842        X
10843        \h*+
10844        \R
10845        Ket
10846        End
10847------------------------------------------------------------------
10848    X\x20\x0a
10849 0: X \x0a
10850
10851/X\H*\R/BZ
10852------------------------------------------------------------------
10853        Bra
10854        X
10855        \H*
10856        \R
10857        Ket
10858        End
10859------------------------------------------------------------------
10860    X\x0d\x0a
10861 0: X\x0d\x0a
10862
10863/X\H+\R/BZ
10864------------------------------------------------------------------
10865        Bra
10866        X
10867        \H+
10868        \R
10869        Ket
10870        End
10871------------------------------------------------------------------
10872    X\x0d\x0a
10873 0: X\x0d\x0a
10874
10875/X\H++\R/BZ
10876------------------------------------------------------------------
10877        Bra
10878        X
10879        \H++
10880        \R
10881        Ket
10882        End
10883------------------------------------------------------------------
10884    X\x0d\x0a
10885No match
10886
10887/(?<=abc)def/
10888    abc\P\P
10889Partial match at offset 3: abc
10890
10891/abc$/
10892    abc
10893 0: abc
10894    abc\P
10895 0: abc
10896    abc\P\P
10897Partial match: abc
10898
10899/abc$/m
10900    abc
10901 0: abc
10902    abc\n
10903 0: abc
10904    abc\P\P
10905Partial match: abc
10906    abc\n\P\P
10907 0: abc
10908    abc\P
10909 0: abc
10910    abc\n\P
10911 0: abc
10912
10913/abc\z/
10914    abc
10915 0: abc
10916    abc\P
10917 0: abc
10918    abc\P\P
10919Partial match: abc
10920
10921/abc\Z/
10922    abc
10923 0: abc
10924    abc\P
10925 0: abc
10926    abc\P\P
10927Partial match: abc
10928
10929/abc\b/
10930    abc
10931 0: abc
10932    abc\P
10933 0: abc
10934    abc\P\P
10935Partial match: abc
10936
10937/abc\B/
10938    abc
10939No match
10940    abc\P
10941Partial match: abc
10942    abc\P\P
10943Partial match: abc
10944
10945/.+/
10946    abc\>0
10947 0: abc
10948    abc\>1
10949 0: bc
10950    abc\>2
10951 0: c
10952    abc\>3
10953No match
10954    abc\>4
10955Error -24 (bad offset value)
10956    abc\>-4
10957Error -24 (bad offset value)
10958
10959/^\cģ/
10960Failed: \c must be followed by an ASCII character at offset 3
10961
10962/(?P<abn>(?P=abn)xxx)/BZ
10963------------------------------------------------------------------
10964        Bra
10965        Once
10966        CBra 1
10967        \1
10968        xxx
10969        Ket
10970        Ket
10971        Ket
10972        End
10973------------------------------------------------------------------
10974
10975/(a\1z)/BZ
10976------------------------------------------------------------------
10977        Bra
10978        Once
10979        CBra 1
10980        a
10981        \1
10982        z
10983        Ket
10984        Ket
10985        Ket
10986        End
10987------------------------------------------------------------------
10988
10989/(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10990Failed: syntax error in subpattern name (missing terminator) at offset 29
10991
10992/(?P<abn>(?P=axn)xxx)/BZ
10993Failed: reference to non-existent subpattern at offset 15
10994
10995/(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10996------------------------------------------------------------------
10997        Bra
10998        CBra 1
10999        \2
11000        xxx
11001        Ket
11002        CBra 2
11003        yy
11004        Ket
11005        Ket
11006        End
11007------------------------------------------------------------------
11008
11009/-- These tests are here because Perl gets the first one wrong. --/
11010
11011/(\R*)(.)/s
11012    \r\n
11013 0: \x0d
11014 1:
11015 2: \x0d
11016    \r\r\n\n\r
11017 0: \x0d\x0d\x0a\x0a\x0d
11018 1: \x0d\x0d\x0a\x0a
11019 2: \x0d
11020    \r\r\n\n\r\n
11021 0: \x0d\x0d\x0a\x0a\x0d
11022 1: \x0d\x0d\x0a\x0a
11023 2: \x0d
11024
11025/(\R)*(.)/s
11026    \r\n
11027 0: \x0d
11028 1: <unset>
11029 2: \x0d
11030    \r\r\n\n\r
11031 0: \x0d\x0d\x0a\x0a\x0d
11032 1: \x0a
11033 2: \x0d
11034    \r\r\n\n\r\n
11035 0: \x0d\x0d\x0a\x0a\x0d
11036 1: \x0a
11037 2: \x0d
11038
11039/((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11040    \r\n
11041 0: \x0d
11042 1:
11043 2: \x0d
11044    \r\r\n\n\r
11045 0: \x0d\x0d\x0a\x0a\x0d
11046 1: \x0d\x0d\x0a\x0a
11047 2: \x0d
11048    \r\r\n\n\r\n
11049 0: \x0d\x0d\x0a\x0a\x0d
11050 1: \x0d\x0d\x0a\x0a
11051 2: \x0d
11052
11053/-- --/
11054
11055/^abc$/BZ
11056------------------------------------------------------------------
11057        Bra
11058        ^
11059        abc
11060        $
11061        Ket
11062        End
11063------------------------------------------------------------------
11064
11065/^abc$/BZm
11066------------------------------------------------------------------
11067        Bra
11068     /m ^
11069        abc
11070     /m $
11071        Ket
11072        End
11073------------------------------------------------------------------
11074
11075/^(a)*+(\w)/S
11076    aaaaX
11077 0: aaaaX
11078 1: a
11079 2: X
11080    ** Failers
11081No match
11082    aaaa
11083No match
11084
11085/^(?:a)*+(\w)/S
11086    aaaaX
11087 0: aaaaX
11088 1: X
11089    ** Failers
11090No match
11091    aaaa
11092No match
11093
11094/(a)++1234/SDZ
11095------------------------------------------------------------------
11096        Bra
11097        CBraPos 1
11098        a
11099        KetRpos
11100        1234
11101        Ket
11102        End
11103------------------------------------------------------------------
11104Capturing subpattern count = 1
11105No options
11106First char = 'a'
11107Need char = '4'
11108Subject length lower bound = 5
11109No starting char list
11110
11111/([abc])++1234/SI
11112Capturing subpattern count = 1
11113No options
11114No first char
11115Need char = '4'
11116Subject length lower bound = 5
11117Starting chars: a b c
11118
11119/(?<=(abc)+)X/
11120Failed: lookbehind assertion is not fixed length at offset 10
11121
11122/(^ab)/I
11123Capturing subpattern count = 1
11124Options: anchored
11125No first char
11126No need char
11127
11128/(^ab)++/I
11129Capturing subpattern count = 1
11130Options: anchored
11131No first char
11132No need char
11133
11134/(^ab|^)+/I
11135Capturing subpattern count = 1
11136May match empty string
11137Options: anchored
11138No first char
11139No need char
11140
11141/(^ab|^)++/I
11142Capturing subpattern count = 1
11143May match empty string
11144Options: anchored
11145No first char
11146No need char
11147
11148/(?:^ab)/I
11149Capturing subpattern count = 0
11150Options: anchored
11151No first char
11152No need char
11153
11154/(?:^ab)++/I
11155Capturing subpattern count = 0
11156Options: anchored
11157No first char
11158No need char
11159
11160/(?:^ab|^)+/I
11161Capturing subpattern count = 0
11162May match empty string
11163Options: anchored
11164No first char
11165No need char
11166
11167/(?:^ab|^)++/I
11168Capturing subpattern count = 0
11169May match empty string
11170Options: anchored
11171No first char
11172No need char
11173
11174/(.*ab)/I
11175Capturing subpattern count = 1
11176No options
11177First char at start or follows newline
11178Need char = 'b'
11179
11180/(.*ab)++/I
11181Capturing subpattern count = 1
11182No options
11183First char at start or follows newline
11184Need char = 'b'
11185
11186/(.*ab|.*)+/I
11187Capturing subpattern count = 1
11188May match empty string
11189No options
11190First char at start or follows newline
11191No need char
11192
11193/(.*ab|.*)++/I
11194Capturing subpattern count = 1
11195May match empty string
11196No options
11197First char at start or follows newline
11198No need char
11199
11200/(?:.*ab)/I
11201Capturing subpattern count = 0
11202No options
11203First char at start or follows newline
11204Need char = 'b'
11205
11206/(?:.*ab)++/I
11207Capturing subpattern count = 0
11208No options
11209First char at start or follows newline
11210Need char = 'b'
11211
11212/(?:.*ab|.*)+/I
11213Capturing subpattern count = 0
11214May match empty string
11215No options
11216First char at start or follows newline
11217No need char
11218
11219/(?:.*ab|.*)++/I
11220Capturing subpattern count = 0
11221May match empty string
11222No options
11223First char at start or follows newline
11224No need char
11225
11226/(?=a)[bcd]/I
11227Capturing subpattern count = 0
11228No options
11229First char = 'a'
11230No need char
11231
11232/((?=a))[bcd]/I
11233Capturing subpattern count = 1
11234No options
11235First char = 'a'
11236No need char
11237
11238/((?=a))+[bcd]/I
11239Capturing subpattern count = 1
11240No options
11241First char = 'a'
11242No need char
11243
11244/((?=a))++[bcd]/I
11245Capturing subpattern count = 1
11246No options
11247First char = 'a'
11248No need char
11249
11250/(?=a+)[bcd]/iI
11251Capturing subpattern count = 0
11252Options: caseless
11253First char = 'a' (caseless)
11254No need char
11255
11256/(?=a+?)[bcd]/iI
11257Capturing subpattern count = 0
11258Options: caseless
11259First char = 'a' (caseless)
11260No need char
11261
11262/(?=a++)[bcd]/iI
11263Capturing subpattern count = 0
11264Options: caseless
11265First char = 'a' (caseless)
11266No need char
11267
11268/(?=a{3})[bcd]/iI
11269Capturing subpattern count = 0
11270Options: caseless
11271First char = 'a' (caseless)
11272Need char = 'a' (caseless)
11273
11274/(abc)\1+/S
11275
11276/-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11277
11278/(?1)(?:(b(*ACCEPT))){0}/
11279    b
11280 0: b
11281
11282/(?1)(?:(b(*ACCEPT))){0}c/
11283    bc
11284 0: bc
11285    ** Failers
11286No match
11287    b
11288No match
11289
11290/(?1)(?:((*ACCEPT))){0}c/
11291    c
11292 0: c
11293    c\N
11294 0: c
11295
11296/^.*?(?(?=a)a|b(*THEN)c)/
11297    ba
11298No match
11299
11300/^.*?(?(?=a)a|bc)/
11301    ba
11302 0: ba
11303
11304/^.*?(?(?=a)a(*THEN)b|c)/
11305    ac
11306No match
11307
11308/^.*?(?(?=a)a(*THEN)b)c/
11309    ac
11310No match
11311
11312/^.*?(a(*THEN)b)c/
11313    aabc
11314No match
11315
11316/^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11317    aabc
11318 0: aabc
11319
11320/^.*?(a(*THEN)b|z)c/
11321    aabc
11322 0: aabc
11323 1: ab
11324
11325/^.*?(z|a(*THEN)b)c/
11326    aabc
11327 0: aabc
11328 1: ab
11329
11330/-- --/
11331
11332/-- These studied versions are here because they are not Perl-compatible; the
11333    studying means the mark is not seen. --/
11334
11335/(*MARK:A)(*SKIP:B)(C|X)/KS
11336    C
11337 0: C
11338 1: C
11339MK: A
11340    D
11341No match, mark = A
11342
11343/(*:A)A+(*SKIP:A)(B|Z)/KS
11344    AAAC
11345No match, mark = A
11346
11347/-- --/
11348
11349"(?=a*(*ACCEPT)b)c"
11350    c
11351 0: c
11352    c\N
11353 0: c
11354
11355/(?1)c(?(DEFINE)((*ACCEPT)b))/
11356    c
11357 0: c
11358    c\N
11359 0: c
11360
11361/(?>(*ACCEPT)b)c/
11362    c
11363 0:
11364    c\N
11365No match
11366
11367/(?:(?>(a)))+a%/++
11368    %aa%
11369 0: aa%
11370 0+
11371 1: a
11372 1+ a%
11373
11374/(a)b|ac/++SS
11375    ac\O3
11376 0: ac
11377 0+
11378
11379/(a)(b)x|abc/++
11380     abc\O6
11381 0: abc
11382 0+
11383
11384/(a)bc|(a)(b)\2/
11385    \O3abc
11386Matched, but too many substrings
11387 0: abc
11388    \O4abc
11389Matched, but too many substrings
11390 0: abc
11391
11392/(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11393Capturing subpattern count = 2
11394No options
11395No first char
11396No need char
11397Subject length lower bound = 1
11398No starting char list
11399
11400/(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11401Capturing subpattern count = 2
11402No options
11403No first char
11404No need char
11405Subject length lower bound = 3
11406Starting chars: a b
11407
11408/(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11409Capturing subpattern count = 2
11410No options
11411No first char
11412No need char
11413Subject length lower bound = 4
11414Starting chars: a b
11415
11416/(abc)(?1)/SI
11417Capturing subpattern count = 1
11418No options
11419First char = 'a'
11420Need char = 'c'
11421Subject length lower bound = 6
11422No starting char list
11423
11424/^(?>a)++/
11425    aa\M
11426Minimum match() limit = 5
11427Minimum match() recursion limit = 2
11428 0: aa
11429    aaaaaaaaa\M
11430Minimum match() limit = 12
11431Minimum match() recursion limit = 2
11432 0: aaaaaaaaa
11433
11434/(a)(?1)++/
11435    aa\M
11436Minimum match() limit = 7
11437Minimum match() recursion limit = 4
11438 0: aa
11439 1: a
11440    aaaaaaaaa\M
11441Minimum match() limit = 21
11442Minimum match() recursion limit = 4
11443 0: aaaaaaaaa
11444 1: a
11445
11446/(?:(foo)|(bar)|(baz))X/SS=
11447    bazfooX
11448 0: fooX
11449 1: foo
11450 2: <unset>
11451 3: <unset>
11452    foobazbarX
11453 0: barX
11454 1: <unset>
11455 2: bar
11456 3: <unset>
11457    barfooX
11458 0: fooX
11459 1: foo
11460 2: <unset>
11461 3: <unset>
11462    bazX
11463 0: bazX
11464 1: <unset>
11465 2: <unset>
11466 3: baz
11467    foobarbazX
11468 0: bazX
11469 1: <unset>
11470 2: <unset>
11471 3: baz
11472    bazfooX\O0
11473Matched, but too many substrings
11474    bazfooX\O2
11475Matched, but too many substrings
11476 0: fooX
11477    bazfooX\O4
11478Matched, but too many substrings
11479 0: fooX
11480 1: <unset>
11481    bazfooX\O6
11482Matched, but too many substrings
11483 0: fooX
11484 1: foo
11485 2: <unset>
11486    bazfooX\O8
11487Matched, but too many substrings
11488 0: fooX
11489 1: foo
11490 2: <unset>
11491 3: <unset>
11492    bazfooX\O10
11493 0: fooX
11494 1: foo
11495 2: <unset>
11496 3: <unset>
11497
11498/(?=abc){3}abc/BZ
11499------------------------------------------------------------------
11500        Bra
11501        Assert
11502        abc
11503        Ket
11504        abc
11505        Ket
11506        End
11507------------------------------------------------------------------
11508
11509/(?=abc)+abc/BZ
11510------------------------------------------------------------------
11511        Bra
11512        Assert
11513        abc
11514        Ket
11515        abc
11516        Ket
11517        End
11518------------------------------------------------------------------
11519
11520/(?=abc)++abc/BZ
11521------------------------------------------------------------------
11522        Bra
11523        Assert
11524        abc
11525        Ket
11526        abc
11527        Ket
11528        End
11529------------------------------------------------------------------
11530
11531/(?=abc){0}xyz/BZ
11532------------------------------------------------------------------
11533        Bra
11534        Skip zero
11535        Assert
11536        abc
11537        Ket
11538        xyz
11539        Ket
11540        End
11541------------------------------------------------------------------
11542
11543/(?=(a))?./BZ
11544------------------------------------------------------------------
11545        Bra
11546        Brazero
11547        Assert
11548        CBra 1
11549        a
11550        Ket
11551        Ket
11552        Any
11553        Ket
11554        End
11555------------------------------------------------------------------
11556
11557/(?=(a))??./BZ
11558------------------------------------------------------------------
11559        Bra
11560        Braminzero
11561        Assert
11562        CBra 1
11563        a
11564        Ket
11565        Ket
11566        Any
11567        Ket
11568        End
11569------------------------------------------------------------------
11570
11571/^(?=(a)){0}b(?1)/BZ
11572------------------------------------------------------------------
11573        Bra
11574        ^
11575        Skip zero
11576        Assert
11577        CBra 1
11578        a
11579        Ket
11580        Ket
11581        b
11582        Recurse
11583        Ket
11584        End
11585------------------------------------------------------------------
11586
11587/(?(DEFINE)(a))?b(?1)/BZ
11588------------------------------------------------------------------
11589        Bra
11590        Cond
11591        Cond def
11592        CBra 1
11593        a
11594        Ket
11595        Ket
11596        b
11597        Recurse
11598        Ket
11599        End
11600------------------------------------------------------------------
11601
11602/^(?=(?1))?[az]([abc])d/BZ
11603------------------------------------------------------------------
11604        Bra
11605        ^
11606        Brazero
11607        Assert
11608        Recurse
11609        Ket
11610        [az]
11611        CBra 1
11612        [a-c]
11613        Ket
11614        d
11615        Ket
11616        End
11617------------------------------------------------------------------
11618
11619/^(?!a){0}\w+/BZ
11620------------------------------------------------------------------
11621        Bra
11622        ^
11623        Skip zero
11624        Assert not
11625        a
11626        Ket
11627        \w++
11628        Ket
11629        End
11630------------------------------------------------------------------
11631
11632/(?<=(abc))?xyz/BZ
11633------------------------------------------------------------------
11634        Bra
11635        Brazero
11636        AssertB
11637        Reverse
11638        CBra 1
11639        abc
11640        Ket
11641        Ket
11642        xyz
11643        Ket
11644        End
11645------------------------------------------------------------------
11646
11647/[:a[:abc]b:]/BZ
11648------------------------------------------------------------------
11649        Bra
11650        [:[a-c]
11651        b:]
11652        Ket
11653        End
11654------------------------------------------------------------------
11655
11656/((?2))((?1))/SS
11657    abc
11658Error -26 (nested recursion at the same subject position)
11659
11660/((?(R2)a+|(?1)b))/SS
11661    aaaabcde
11662Error -26 (nested recursion at the same subject position)
11663
11664/(?(R)a*(?1)|((?R))b)/SS
11665    aaaabcde
11666Error -26 (nested recursion at the same subject position)
11667
11668/(a+|(?R)b)/
11669Failed: recursive call could loop indefinitely at offset 7
11670
11671/^(a(*:A)(d|e(*:B))z|aeq)/C
11672    adz
11673--->adz
11674 +0 ^       ^
11675 +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11676 +2 ^       a
11677 +3 ^^      (*:A)
11678 +8 ^^      (d|e(*:B))
11679Latest Mark: A
11680 +9 ^^      d
11681+10 ^ ^     |
11682+18 ^ ^     z
11683+19 ^  ^    |
11684+24 ^  ^
11685 0: adz
11686 1: adz
11687 2: d
11688    aez
11689--->aez
11690 +0 ^       ^
11691 +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11692 +2 ^       a
11693 +3 ^^      (*:A)
11694 +8 ^^      (d|e(*:B))
11695Latest Mark: A
11696 +9 ^^      d
11697+11 ^^      e
11698+12 ^ ^     (*:B)
11699+17 ^ ^     )
11700Latest Mark: B
11701+18 ^ ^     z
11702+19 ^  ^    |
11703+24 ^  ^
11704 0: aez
11705 1: aez
11706 2: e
11707    aeqwerty
11708--->aeqwerty
11709 +0 ^            ^
11710 +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11711 +2 ^            a
11712 +3 ^^           (*:A)
11713 +8 ^^           (d|e(*:B))
11714Latest Mark: A
11715 +9 ^^           d
11716+11 ^^           e
11717+12 ^ ^          (*:B)
11718+17 ^ ^          )
11719Latest Mark: B
11720+18 ^ ^          z
11721+20 ^            a
11722+21 ^^           e
11723+22 ^ ^          q
11724+23 ^  ^         )
11725+24 ^  ^
11726 0: aeq
11727 1: aeq
11728
11729/.(*F)/
11730    \P\Pabc
11731No match
11732
11733/\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11734Capturing subpattern count = 0
11735Max lookbehind = 1
11736No options
11737First char = 't'
11738Need char = 't'
11739Subject length lower bound = 18
11740No starting char list
11741
11742/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11743Capturing subpattern count = 0
11744Max lookbehind = 1
11745No options
11746No first char
11747No need char
11748Subject length lower bound = 8
11749Starting chars: < o t u
11750
11751/a(*SKIP)c|b(*ACCEPT)|/+S!I
11752Capturing subpattern count = 0
11753May match empty string
11754No options
11755No first char
11756No need char
11757Subject length lower bound = -1
11758No starting char list
11759    a
11760 0:
11761 0+
11762
11763/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11764Capturing subpattern count = 0
11765No options
11766No first char
11767No need char
11768Subject length lower bound = -1
11769Starting chars: a b x
11770    ax
11771 0: x
11772
11773'a*(*ACCEPT)b'+
11774    \N\N
11775No match
11776    abc\N\N
11777 0: a
11778 0+ bc
11779    bbb\N\N
11780 0:
11781 0+ bb
11782
11783/(*ACCEPT)a/+I
11784Capturing subpattern count = 0
11785No options
11786No first char
11787No need char
11788    bax
11789 0:
11790 0+ bax
11791
11792/z(*ACCEPT)a/+I
11793Capturing subpattern count = 0
11794No options
11795First char = 'z'
11796No need char
11797    baxzbx
11798 0: z
11799 0+ bx
11800
11801/a(?:.)*?a/ims
11802    \Mabbbbbbbbbbbbbbbbbbbbba
11803Minimum match() limit = 65
11804Minimum match() recursion limit = 2
11805 0: abbbbbbbbbbbbbbbbbbbbba
11806
11807/a(?:.(*THEN))*?a/ims
11808    \Mabbbbbbbbbbbbbbbbbbbbba
11809Minimum match() limit = 86
11810Minimum match() recursion limit = 45
11811 0: abbbbbbbbbbbbbbbbbbbbba
11812
11813/a(?:.(*THEN:ABC))*?a/ims
11814    \Mabbbbbbbbbbbbbbbbbbbbba
11815Minimum match() limit = 86
11816Minimum match() recursion limit = 45
11817 0: abbbbbbbbbbbbbbbbbbbbba
11818
11819/^(?>a+)(?>(z+))\w/BZ
11820------------------------------------------------------------------
11821        Bra
11822        ^
11823        Once_NC
11824        a++
11825        Ket
11826        Once
11827        CBra 1
11828        z++
11829        Ket
11830        Ket
11831        \w
11832        Ket
11833        End
11834------------------------------------------------------------------
11835    aaaazzzzb
11836 0: aaaazzzzb
11837 1: zzzz
11838    ** Failers
11839No match
11840    aazz
11841No match
11842
11843/(.)(\1|a(?2))/
11844    bab
11845 0: bab
11846 1: b
11847 2: ab
11848
11849/\1|(.)(?R)\1/
11850    cbbbc
11851 0: cbbbc
11852 1: c
11853
11854/(.)((?(1)c|a)|a(?2))/
11855    baa
11856No match
11857
11858/(?P<abn>(?P=abn)xxx)/BZ
11859------------------------------------------------------------------
11860        Bra
11861        Once
11862        CBra 1
11863        \1
11864        xxx
11865        Ket
11866        Ket
11867        Ket
11868        End
11869------------------------------------------------------------------
11870
11871/(a\1z)/BZ
11872------------------------------------------------------------------
11873        Bra
11874        Once
11875        CBra 1
11876        a
11877        \1
11878        z
11879        Ket
11880        Ket
11881        Ket
11882        End
11883------------------------------------------------------------------
11884
11885/^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11886     \Maabbccddee
11887Minimum match() limit = 7
11888Minimum match() recursion limit = 2
11889 0: aabbccddee
11890
11891/^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11892     \Maabbccddee
11893Minimum match() limit = 17
11894Minimum match() recursion limit = 16
11895 0: aabbccddee
11896 1: aa
11897 2: bb
11898 3: cc
11899 4: dd
11900 5: ee
11901
11902/^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11903     \Maabbccddee
11904Minimum match() limit = 13
11905Minimum match() recursion limit = 10
11906 0: aabbccddee
11907 1: aa
11908 2: cc
11909 3: ee
11910
11911/^a\x41z/<JS>
11912    aAz
11913 0: aAz
11914    *** Failers
11915No match
11916    ax41z
11917No match
11918
11919/^a[m\x41]z/<JS>
11920    aAz
11921 0: aAz
11922
11923/^a\x1z/<JS>
11924    ax1z
11925 0: ax1z
11926
11927/^a\u0041z/<JS>
11928    aAz
11929 0: aAz
11930    *** Failers
11931No match
11932    au0041z
11933No match
11934
11935/^a[m\u0041]z/<JS>
11936    aAz
11937 0: aAz
11938
11939/^a\u041z/<JS>
11940    au041z
11941 0: au041z
11942    *** Failers
11943No match
11944    aAz
11945No match
11946
11947/^a\U0041z/<JS>
11948    aU0041z
11949 0: aU0041z
11950    *** Failers
11951No match
11952    aAz
11953No match
11954
11955/(?(?=c)c|d)++Y/BZ
11956------------------------------------------------------------------
11957        Bra
11958        BraPos
11959        Cond
11960        Assert
11961        c
11962        Ket
11963        c
11964        Alt
11965        d
11966        Ket
11967        KetRpos
11968        Y
11969        Ket
11970        End
11971------------------------------------------------------------------
11972
11973/(?(?=c)c|d)*+Y/BZ
11974------------------------------------------------------------------
11975        Bra
11976        Braposzero
11977        BraPos
11978        Cond
11979        Assert
11980        c
11981        Ket
11982        c
11983        Alt
11984        d
11985        Ket
11986        KetRpos
11987        Y
11988        Ket
11989        End
11990------------------------------------------------------------------
11991
11992/a[\NB]c/
11993Failed: \N is not supported in a class at offset 3
11994
11995/a[B-\Nc]/
11996Failed: invalid range in character class at offset 5
11997
11998/a[B\Nc]/
11999Failed: \N is not supported in a class at offset 4
12000
12001/(a)(?2){0,1999}?(b)/
12002
12003/(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
12004
12005/--- This test, with something more complicated than individual letters, causes
12006different behaviour in Perl. Perhaps it disables some optimization; no tag is
12007passed back for the failures, whereas in PCRE there is a tag. ---/
12008
12009/(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
12010    AABC
12011 0: AB
12012 1: A
12013 2: B
12014MK: A
12015    XXYZ
12016 0: XXY
12017 1: <unset>
12018 2: <unset>
12019 3: X
12020 4: X
12021 5: Y
12022MK: B
12023    ** Failers
12024No match
12025    XAQQ
12026No match, mark = A
12027    XAQQXZZ
12028No match, mark = A
12029    AXQQQ
12030No match, mark = A
12031    AXXQQQ
12032No match, mark = B
12033
12034/-- Perl doesn't give marks for these, though it does if the alternatives are
12035replaced by single letters. --/
12036
12037/(b|q)(*:m)f|a(*:n)w/K
12038    aw
12039 0: aw
12040MK: n
12041    ** Failers
12042No match, mark = n
12043    abc
12044No match, mark = m
12045
12046/(q|b)(*:m)f|a(*:n)w/K
12047    aw
12048 0: aw
12049MK: n
12050    ** Failers
12051No match, mark = n
12052    abc
12053No match, mark = m
12054
12055/-- After a partial match, the behaviour is as for a failure. --/
12056
12057/^a(*:X)bcde/K
12058   abc\P
12059Partial match, mark=X: abc
12060
12061/-- These are here because Perl doesn't return a mark, except for the first --/
12062
12063/(?=(*:x))(q|)/K+
12064    abc
12065 0:
12066 0+ abc
12067 1:
12068MK: x
12069
12070/(?=(*:x))((*:y)q|)/K+
12071    abc
12072 0:
12073 0+ abc
12074 1:
12075MK: x
12076
12077/(?=(*:x))(?:(*:y)q|)/K+
12078    abc
12079 0:
12080 0+ abc
12081MK: x
12082
12083/(?=(*:x))(?>(*:y)q|)/K+
12084    abc
12085 0:
12086 0+ abc
12087MK: x
12088
12089/(?=a(*:x))(?!a(*:y)c)/K+
12090    ab
12091 0:
12092 0+ ab
12093MK: x
12094
12095/(?=a(*:x))(?=a(*:y)c|)/K+
12096    ab
12097 0:
12098 0+ ab
12099MK: x
12100
12101/(..)\1/
12102    ab\P
12103Partial match: ab
12104    aba\P
12105Partial match: aba
12106    abab\P
12107 0: abab
12108 1: ab
12109
12110/(..)\1/i
12111    ab\P
12112Partial match: ab
12113    abA\P
12114Partial match: abA
12115    aBAb\P
12116 0: aBAb
12117 1: aB
12118
12119/(..)\1{2,}/
12120    ab\P
12121Partial match: ab
12122    aba\P
12123Partial match: aba
12124    abab\P
12125Partial match: abab
12126    ababa\P
12127Partial match: ababa
12128    ababab\P
12129 0: ababab
12130 1: ab
12131    ababab\P\P
12132Partial match: ababab
12133    abababa\P
12134 0: ababab
12135 1: ab
12136    abababa\P\P
12137Partial match: abababa
12138
12139/(..)\1{2,}/i
12140    ab\P
12141Partial match: ab
12142    aBa\P
12143Partial match: aBa
12144    aBAb\P
12145Partial match: aBAb
12146    AbaBA\P
12147Partial match: AbaBA
12148    abABAb\P
12149 0: abABAb
12150 1: ab
12151    aBAbaB\P\P
12152Partial match: aBAbaB
12153    abABabA\P
12154 0: abABab
12155 1: ab
12156    abaBABa\P\P
12157Partial match: abaBABa
12158
12159/(..)\1{2,}?x/i
12160    ab\P
12161Partial match: ab
12162    abA\P
12163Partial match: abA
12164    aBAb\P
12165Partial match: aBAb
12166    abaBA\P
12167Partial match: abaBA
12168    abAbaB\P
12169Partial match: abAbaB
12170    abaBabA\P
12171Partial match: abaBabA
12172    abAbABaBx\P
12173 0: abAbABaBx
12174 1: ab
12175
12176/^(..)\1/
12177    aba\P
12178Partial match: aba
12179
12180/^(..)\1{2,3}x/
12181    aba\P
12182Partial match: aba
12183    ababa\P
12184Partial match: ababa
12185    ababa\P\P
12186Partial match: ababa
12187    abababx
12188 0: abababx
12189 1: ab
12190    ababababx
12191 0: ababababx
12192 1: ab
12193
12194/^(..)\1{2,3}?x/
12195    aba\P
12196Partial match: aba
12197    ababa\P
12198Partial match: ababa
12199    ababa\P\P
12200Partial match: ababa
12201    abababx
12202 0: abababx
12203 1: ab
12204    ababababx
12205 0: ababababx
12206 1: ab
12207
12208/^(..)(\1{2,3})ab/
12209    abababab
12210 0: abababab
12211 1: ab
12212 2: abab
12213
12214/^\R/
12215    \r\P
12216 0: \x0d
12217    \r\P\P
12218Partial match: \x0d
12219
12220/^\R{2,3}x/
12221    \r\P
12222Partial match: \x0d
12223    \r\P\P
12224Partial match: \x0d
12225    \r\r\P
12226Partial match: \x0d\x0d
12227    \r\r\P\P
12228Partial match: \x0d\x0d
12229    \r\r\r\P
12230Partial match: \x0d\x0d\x0d
12231    \r\r\r\P\P
12232Partial match: \x0d\x0d\x0d
12233    \r\rx
12234 0: \x0d\x0dx
12235    \r\r\rx
12236 0: \x0d\x0d\x0dx
12237
12238/^\R{2,3}?x/
12239    \r\P
12240Partial match: \x0d
12241    \r\P\P
12242Partial match: \x0d
12243    \r\r\P
12244Partial match: \x0d\x0d
12245    \r\r\P\P
12246Partial match: \x0d\x0d
12247    \r\r\r\P
12248Partial match: \x0d\x0d\x0d
12249    \r\r\r\P\P
12250Partial match: \x0d\x0d\x0d
12251    \r\rx
12252 0: \x0d\x0dx
12253    \r\r\rx
12254 0: \x0d\x0d\x0dx
12255
12256/^\R?x/
12257    \r\P
12258Partial match: \x0d
12259    \r\P\P
12260Partial match: \x0d
12261    x
12262 0: x
12263    \rx
12264 0: \x0dx
12265
12266/^\R+x/
12267    \r\P
12268Partial match: \x0d
12269    \r\P\P
12270Partial match: \x0d
12271    \r\n\P
12272Partial match: \x0d\x0a
12273    \r\n\P\P
12274Partial match: \x0d\x0a
12275    \rx
12276 0: \x0dx
12277
12278/^a$/<CRLF>
12279    a\r\P
12280Partial match: a\x0d
12281    a\r\P\P
12282Partial match: a\x0d
12283
12284/^a$/m<CRLF>
12285    a\r\P
12286Partial match: a\x0d
12287    a\r\P\P
12288Partial match: a\x0d
12289
12290/^(a$|a\r)/<CRLF>
12291    a\r\P
12292 0: a\x0d
12293 1: a\x0d
12294    a\r\P\P
12295Partial match: a\x0d
12296
12297/^(a$|a\r)/m<CRLF>
12298    a\r\P
12299 0: a\x0d
12300 1: a\x0d
12301    a\r\P\P
12302Partial match: a\x0d
12303
12304/./<CRLF>
12305    \r\P
12306 0: \x0d
12307    \r\P\P
12308Partial match: \x0d
12309
12310/.{2,3}/<CRLF>
12311    \r\P
12312Partial match: \x0d
12313    \r\P\P
12314Partial match: \x0d
12315    \r\r\P
12316 0: \x0d\x0d
12317    \r\r\P\P
12318Partial match: \x0d\x0d
12319    \r\r\r\P
12320 0: \x0d\x0d\x0d
12321    \r\r\r\P\P
12322Partial match: \x0d\x0d\x0d
12323
12324/.{2,3}?/<CRLF>
12325    \r\P
12326Partial match: \x0d
12327    \r\P\P
12328Partial match: \x0d
12329    \r\r\P
12330 0: \x0d\x0d
12331    \r\r\P\P
12332Partial match: \x0d\x0d
12333    \r\r\r\P
12334 0: \x0d\x0d
12335    \r\r\r\P\P
12336 0: \x0d\x0d
12337
12338"AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12339    ABCDGHI\O03
12340Matched, but too many substrings
12341 0: ABCD
12342
12343/-- These are all run as real matches in test 1; here we are just checking the
12344settings of the anchored and startline bits. --/
12345
12346/(?>.*?a)(?<=ba)/I
12347Capturing subpattern count = 0
12348Max lookbehind = 2
12349No options
12350No first char
12351Need char = 'a'
12352
12353/(?:.*?a)(?<=ba)/I
12354Capturing subpattern count = 0
12355Max lookbehind = 2
12356No options
12357First char at start or follows newline
12358Need char = 'a'
12359
12360/.*?a(*PRUNE)b/I
12361Capturing subpattern count = 0
12362No options
12363No first char
12364Need char = 'b'
12365
12366/.*?a(*PRUNE)b/sI
12367Capturing subpattern count = 0
12368Options: dotall
12369No first char
12370Need char = 'b'
12371
12372/^a(*PRUNE)b/sI
12373Capturing subpattern count = 0
12374Options: anchored dotall
12375No first char
12376No need char
12377
12378/.*?a(*SKIP)b/I
12379Capturing subpattern count = 0
12380No options
12381No first char
12382Need char = 'b'
12383
12384/(?>.*?a)b/sI
12385Capturing subpattern count = 0
12386Options: dotall
12387No first char
12388Need char = 'b'
12389
12390/(?>.*?a)b/I
12391Capturing subpattern count = 0
12392No options
12393No first char
12394Need char = 'b'
12395
12396/(?>^a)b/sI
12397Capturing subpattern count = 0
12398Options: anchored dotall
12399No first char
12400No need char
12401
12402/(?>.*?)(?<=(abcd)|(wxyz))/I
12403Capturing subpattern count = 2
12404Max lookbehind = 4
12405May match empty string
12406No options
12407No first char
12408No need char
12409
12410/(?>.*)(?<=(abcd)|(wxyz))/I
12411Capturing subpattern count = 2
12412Max lookbehind = 4
12413May match empty string
12414No options
12415No first char
12416No need char
12417
12418"(?>.*)foo"I
12419Capturing subpattern count = 0
12420No options
12421No first char
12422Need char = 'o'
12423
12424"(?>.*?)foo"I
12425Capturing subpattern count = 0
12426No options
12427No first char
12428Need char = 'o'
12429
12430/(?>^abc)/mI
12431Capturing subpattern count = 0
12432Options: multiline
12433First char at start or follows newline
12434Need char = 'c'
12435
12436/(?>.*abc)/mI
12437Capturing subpattern count = 0
12438Options: multiline
12439No first char
12440Need char = 'c'
12441
12442/(?:.*abc)/mI
12443Capturing subpattern count = 0
12444Options: multiline
12445First char at start or follows newline
12446Need char = 'c'
12447
12448/-- Check PCRE_STUDY_EXTRA_NEEDED --/
12449
12450/.?/S-I
12451Capturing subpattern count = 0
12452May match empty string
12453No options
12454No first char
12455No need char
12456Study returned NULL
12457
12458/.?/S!I
12459Capturing subpattern count = 0
12460May match empty string
12461No options
12462No first char
12463No need char
12464Subject length lower bound = -1
12465No starting char list
12466
12467/(?:(a)+(?C1)bb|aa(?C2)b)/
12468    aab\C+
12469Callout 1: last capture = 1
12470 0: <unset>
12471 1: a
12472--->aab
12473    ^ ^     b
12474Callout 1: last capture = 1
12475 0: <unset>
12476 1: a
12477--->aab
12478    ^^      b
12479Callout 2: last capture = -1
12480 0: <unset>
12481--->aab
12482    ^ ^     b
12483 0: aab
12484
12485/(?:(a)++(?C1)bb|aa(?C2)b)/
12486    aab\C+
12487Callout 1: last capture = 1
12488 0: <unset>
12489 1: a
12490--->aab
12491    ^ ^     b
12492Callout 2: last capture = -1
12493 0: <unset>
12494--->aab
12495    ^ ^     b
12496 0: aab
12497
12498/(?:(?>(a))(?C1)bb|aa(?C2)b)/
12499    aab\C+
12500Callout 1: last capture = 1
12501 0: <unset>
12502 1: a
12503--->aab
12504    ^^      b
12505Callout 2: last capture = -1
12506 0: <unset>
12507--->aab
12508    ^ ^     b
12509 0: aab
12510
12511/(?:(?1)(?C1)x|ab(?C2))((a)){0}/
12512    aab\C+
12513Callout 1: last capture = -1
12514 0: <unset>
12515--->aab
12516    ^^      x
12517Callout 1: last capture = -1
12518 0: <unset>
12519--->aab
12520     ^^     x
12521Callout 2: last capture = -1
12522 0: <unset>
12523--->aab
12524     ^ ^    )
12525 0: ab
12526
12527/(?1)(?C1)((a)(?C2)){0}/
12528    aab\C+
12529Callout 2: last capture = 2
12530 0: <unset>
12531 1: <unset>
12532 2: a
12533--->aab
12534    ^^      )
12535Callout 1: last capture = -1
12536 0: <unset>
12537--->aab
12538    ^^      ((a)(?C2)){0}
12539 0: a
12540
12541/(?:(a)+(?C1)bb|aa(?C2)b)++/
12542    aab\C+
12543Callout 1: last capture = 1
12544 0: <unset>
12545 1: a
12546--->aab
12547    ^ ^     b
12548Callout 1: last capture = 1
12549 0: <unset>
12550 1: a
12551--->aab
12552    ^^      b
12553Callout 2: last capture = -1
12554 0: <unset>
12555--->aab
12556    ^ ^     b
12557 0: aab
12558    aab\C+\O2
12559Callout 1: last capture = 1
12560 0: <unset>
12561--->aab
12562    ^ ^     b
12563Callout 1: last capture = 1
12564 0: <unset>
12565--->aab
12566    ^^      b
12567Callout 2: last capture = -1
12568 0: <unset>
12569--->aab
12570    ^ ^     b
12571 0: aab
12572
12573/(ab)x|ab/
12574    ab\O3
12575 0: ab
12576    ab\O2
12577 0: ab
12578
12579/(ab)/
12580    ab\O3
12581Matched, but too many substrings
12582 0: ab
12583    ab\O2
12584Matched, but too many substrings
12585 0: ab
12586
12587/(?<=123)(*MARK:xx)abc/K
12588    xxxx123a\P\P
12589Partial match at offset 7, mark=xx: 123a
12590    xxxx123a\P
12591Partial match at offset 7, mark=xx: 123a
12592
12593/123\Kabc/
12594    xxxx123a\P\P
12595Partial match: 123a
12596    xxxx123a\P
12597Partial match: 123a
12598
12599/^(?(?=a)aa|bb)/C
12600    bb
12601--->bb
12602 +0 ^      ^
12603 +1 ^      (?(?=a)aa|bb)
12604 +3 ^      (?=a)
12605 +6 ^      a
12606+11 ^      b
12607+12 ^^     b
12608+13 ^ ^    )
12609+14 ^ ^
12610 0: bb
12611
12612/(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
12613    bb
12614--->bb
12615  1 ^      ^
12616  2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
12617 99 ^      (?=(?C3)a(?C4))
12618  3 ^      a
12619  8 ^      b
12620  9 ^^     b
12621 10 ^ ^    )
12622 11 ^ ^
12623 0: bb
12624
12625/-- Perl seems to have a bug with this one --/
12626
12627/aaaaa(*COMMIT)(*PRUNE)b|a+c/
12628    aaaaaac
12629 0: aaaac
12630
12631/-- Here are some that Perl treats differently because of the way it handles
12632backtracking verbs. --/
12633
12634 /(?!a(*COMMIT)b)ac|ad/
12635     ac
12636 0: ac
12637     ad
12638 0: ad
12639
12640/^(?!a(*THEN)b|ac)../
12641     ac
12642No match
12643     ad
12644 0: ad
12645
12646/^(?=a(*THEN)b|ac)/
12647    ac
12648 0:
12649
12650/\A.*?(?:a|b(*THEN)c)/
12651    ba
12652 0: ba
12653
12654/\A.*?(?:a|b(*THEN)c)++/
12655    ba
12656 0: ba
12657
12658/\A.*?(?:a|b(*THEN)c|d)/
12659    ba
12660 0: ba
12661
12662/(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
12663    aac
12664 0: aac
12665
12666/\A.*?(a|b(*THEN)c)/
12667    ba
12668 0: ba
12669 1: a
12670
12671/^(A(*THEN)B|A(*THEN)D)/
12672    AD
12673 0: AD
12674 1: AD
12675
12676/(?!b(*THEN)a)bn|bnn/
12677    bnn
12678 0: bn
12679
12680/(?(?=b(*SKIP)a)bn|bnn)/
12681    bnn
12682No match
12683
12684/(?=b(*THEN)a|)bn|bnn/
12685    bnn
12686 0: bn
12687
12688/-------------------------/
12689
12690/(*LIMIT_MATCH=12bc)abc/
12691Failed: (*VERB) not recognized or malformed at offset 7
12692
12693/(*LIMIT_MATCH=4294967290)abc/
12694Failed: (*VERB) not recognized or malformed at offset 7
12695
12696/(*LIMIT_RECURSION=4294967280)abc/I
12697Capturing subpattern count = 0
12698Recursion limit = 4294967280
12699No options
12700First char = 'a'
12701Need char = 'c'
12702
12703/(a+)*zz/
12704    aaaaaaaaaaaaaz
12705No match
12706    aaaaaaaaaaaaaz\q3000
12707Error -8 (match limit exceeded)
12708
12709/(a+)*zz/S-
12710    aaaaaaaaaaaaaz\Q10
12711Error -21 (recursion limit exceeded)
12712
12713/(*LIMIT_MATCH=3000)(a+)*zz/I
12714Capturing subpattern count = 1
12715Match limit = 3000
12716No options
12717No first char
12718Need char = 'z'
12719    aaaaaaaaaaaaaz
12720Error -8 (match limit exceeded)
12721    aaaaaaaaaaaaaz\q60000
12722Error -8 (match limit exceeded)
12723
12724/(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
12725Capturing subpattern count = 1
12726Match limit = 3000
12727No options
12728No first char
12729Need char = 'z'
12730    aaaaaaaaaaaaaz
12731Error -8 (match limit exceeded)
12732
12733/(*LIMIT_MATCH=60000)(a+)*zz/I
12734Capturing subpattern count = 1
12735Match limit = 60000
12736No options
12737No first char
12738Need char = 'z'
12739    aaaaaaaaaaaaaz
12740No match
12741    aaaaaaaaaaaaaz\q3000
12742Error -8 (match limit exceeded)
12743
12744/(*LIMIT_RECURSION=10)(a+)*zz/IS-
12745Capturing subpattern count = 1
12746Recursion limit = 10
12747No options
12748No first char
12749Need char = 'z'
12750Subject length lower bound = 2
12751Starting chars: a z
12752    aaaaaaaaaaaaaz
12753Error -21 (recursion limit exceeded)
12754    aaaaaaaaaaaaaz\Q1000
12755Error -21 (recursion limit exceeded)
12756
12757/(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12758Capturing subpattern count = 1
12759Recursion limit = 10
12760No options
12761No first char
12762Need char = 'z'
12763Subject length lower bound = 2
12764Starting chars: a z
12765    aaaaaaaaaaaaaz
12766Error -21 (recursion limit exceeded)
12767
12768/(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12769Capturing subpattern count = 1
12770Recursion limit = 1000
12771No options
12772No first char
12773Need char = 'z'
12774Subject length lower bound = 2
12775Starting chars: a z
12776    aaaaaaaaaaaaaz
12777No match
12778    aaaaaaaaaaaaaz\Q10
12779Error -21 (recursion limit exceeded)
12780
12781/-- This test causes a segfault with Perl 5.18.0 --/
12782
12783/^(?=(a)){0}b(?1)/
12784    backgammon
12785 0: ba
12786
12787/(?|(?<n>f)|(?<n>b))/JI
12788Capturing subpattern count = 1
12789Named capturing subpatterns:
12790  n   1
12791Options: dupnames
12792No first char
12793No need char
12794
12795/(?<a>abc)(?<a>z)\k<a>()/JDZS
12796------------------------------------------------------------------
12797        Bra
12798        CBra 1
12799        abc
12800        Ket
12801        CBra 2
12802        z
12803        Ket
12804        \k<a>2
12805        CBra 3
12806        Ket
12807        Ket
12808        End
12809------------------------------------------------------------------
12810Capturing subpattern count = 3
12811Max back reference = 2
12812Named capturing subpatterns:
12813  a   1
12814  a   2
12815Options: dupnames
12816First char = 'a'
12817Need char = 'z'
12818Subject length lower bound = 5
12819No starting char list
12820
12821/a*[bcd]/BZ
12822------------------------------------------------------------------
12823        Bra
12824        a*+
12825        [b-d]
12826        Ket
12827        End
12828------------------------------------------------------------------
12829
12830/[bcd]*a/BZ
12831------------------------------------------------------------------
12832        Bra
12833        [b-d]*+
12834        a
12835        Ket
12836        End
12837------------------------------------------------------------------
12838
12839/-- A complete set of tests for auto-possessification of character types --/
12840
12841/\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
12842------------------------------------------------------------------
12843        Bra
12844        \D+
12845        \D
12846        \D++
12847        \d
12848        \D+
12849        \S
12850        \D+
12851        \s
12852        \D+
12853        \W
12854        \D+
12855        \w
12856        \D+
12857        Any
12858        \D+
12859        AllAny
12860        \D+
12861        \R
12862        \D+
12863        \H
12864        \D+
12865        \h
12866        \D+
12867        \V
12868        \D+
12869        \v
12870        \D+
12871        \Z
12872        \D++
12873        \z
12874        \D+
12875        $
12876        Ket
12877        End
12878------------------------------------------------------------------
12879
12880/\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
12881------------------------------------------------------------------
12882        Bra
12883        \d++
12884        \D
12885        \d+
12886        \d
12887        \d+
12888        \S
12889        \d++
12890        \s
12891        \d++
12892        \W
12893        \d+
12894        \w
12895        \d+
12896        Any
12897        \d+
12898        AllAny
12899        \d++
12900        \R
12901        \d+
12902        \H
12903        \d++
12904        \h
12905        \d+
12906        \V
12907        \d++
12908        \v
12909        \d++
12910        \Z
12911        \d++
12912        \z
12913        \d++
12914        $
12915        Ket
12916        End
12917------------------------------------------------------------------
12918
12919/\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
12920------------------------------------------------------------------
12921        Bra
12922        \S+
12923        \D
12924        \S+
12925        \d
12926        \S+
12927        \S
12928        \S++
12929        \s
12930        \S+
12931        \W
12932        \S+
12933        \w
12934        \S+
12935        Any
12936        \S+
12937        AllAny
12938        \S++
12939        \R
12940        \S+
12941        \H
12942        \S++
12943        \h
12944        \S+
12945        \V
12946        \S++
12947        \v
12948        \S++
12949        \Z
12950        \S++
12951        \z
12952        \S++
12953        $
12954        Ket
12955        End
12956------------------------------------------------------------------
12957
12958/\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
12959------------------------------------------------------------------
12960        Bra
12961        \s+
12962        \D
12963        \s++
12964        \d
12965        \s++
12966        \S
12967        \s+
12968        \s
12969        \s+
12970        \W
12971        \s++
12972        \w
12973        \s+
12974        Any
12975        \s+
12976        AllAny
12977        \s+
12978        \R
12979        \s+
12980        \H
12981        \s+
12982        \h
12983        \s+
12984        \V
12985        \s+
12986        \v
12987        \s+
12988        \Z
12989        \s++
12990        \z
12991        \s+
12992        $
12993        Ket
12994        End
12995------------------------------------------------------------------
12996
12997/\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
12998------------------------------------------------------------------
12999        Bra
13000        \W+
13001        \D
13002        \W++
13003        \d
13004        \W+
13005        \S
13006        \W+
13007        \s
13008        \W+
13009        \W
13010        \W++
13011        \w
13012        \W+
13013        Any
13014        \W+
13015        AllAny
13016        \W+
13017        \R
13018        \W+
13019        \H
13020        \W+
13021        \h
13022        \W+
13023        \V
13024        \W+
13025        \v
13026        \W+
13027        \Z
13028        \W++
13029        \z
13030        \W+
13031        $
13032        Ket
13033        End
13034------------------------------------------------------------------
13035
13036/\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
13037------------------------------------------------------------------
13038        Bra
13039        \w+
13040        \D
13041        \w+
13042        \d
13043        \w+
13044        \S
13045        \w++
13046        \s
13047        \w++
13048        \W
13049        \w+
13050        \w
13051        \w+
13052        Any
13053        \w+
13054        AllAny
13055        \w++
13056        \R
13057        \w+
13058        \H
13059        \w++
13060        \h
13061        \w+
13062        \V
13063        \w++
13064        \v
13065        \w++
13066        \Z
13067        \w++
13068        \z
13069        \w++
13070        $
13071        Ket
13072        End
13073------------------------------------------------------------------
13074
13075/\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
13076------------------------------------------------------------------
13077        Bra
13078        AllAny+
13079        \D
13080        AllAny+
13081        \d
13082        AllAny+
13083        \S
13084        AllAny+
13085        \s
13086        AllAny+
13087        \W
13088        AllAny+
13089        \w
13090        AllAny+
13091        Any
13092        AllAny+
13093        AllAny
13094        AllAny+
13095        \R
13096        AllAny+
13097        \H
13098        AllAny+
13099        \h
13100        AllAny+
13101        \V
13102        AllAny+
13103        \v
13104        AllAny+
13105        \Z
13106        AllAny++
13107        \z
13108        AllAny+
13109        $
13110        Ket
13111        End
13112------------------------------------------------------------------
13113
13114/\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
13115------------------------------------------------------------------
13116        Bra
13117        \R+
13118        \D
13119        \R++
13120        \d
13121        \R+
13122        \S
13123        \R++
13124        \s
13125        \R+
13126        \W
13127        \R++
13128        \w
13129        \R++
13130        Any
13131        \R+
13132        AllAny
13133        \R+
13134        \R
13135        \R+
13136        \H
13137        \R++
13138        \h
13139        \R+
13140        \V
13141        \R+
13142        \v
13143        \R+
13144        \Z
13145        \R++
13146        \z
13147        \R+
13148        $
13149        Ket
13150        End
13151------------------------------------------------------------------
13152
13153/\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
13154------------------------------------------------------------------
13155        Bra
13156        \H+
13157        \D
13158        \H+
13159        \d
13160        \H+
13161        \S
13162        \H+
13163        \s
13164        \H+
13165        \W
13166        \H+
13167        \w
13168        \H+
13169        Any
13170        \H+
13171        AllAny
13172        \H+
13173        \R
13174        \H+
13175        \H
13176        \H++
13177        \h
13178        \H+
13179        \V
13180        \H+
13181        \v
13182        \H+
13183        \Z
13184        \H++
13185        \z
13186        \H+
13187        $
13188        Ket
13189        End
13190------------------------------------------------------------------
13191
13192/\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
13193------------------------------------------------------------------
13194        Bra
13195        \h+
13196        \D
13197        \h++
13198        \d
13199        \h++
13200        \S
13201        \h+
13202        \s
13203        \h+
13204        \W
13205        \h++
13206        \w
13207        \h+
13208        Any
13209        \h+
13210        AllAny
13211        \h++
13212        \R
13213        \h++
13214        \H
13215        \h+
13216        \h
13217        \h+
13218        \V
13219        \h++
13220        \v
13221        \h+
13222        \Z
13223        \h++
13224        \z
13225        \h+
13226        $
13227        Ket
13228        End
13229------------------------------------------------------------------
13230
13231/\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
13232------------------------------------------------------------------
13233        Bra
13234        \V+
13235        \D
13236        \V+
13237        \d
13238        \V+
13239        \S
13240        \V+
13241        \s
13242        \V+
13243        \W
13244        \V+
13245        \w
13246        \V+
13247        Any
13248        \V+
13249        AllAny
13250        \V++
13251        \R
13252        \V+
13253        \H
13254        \V+
13255        \h
13256        \V+
13257        \V
13258        \V++
13259        \v
13260        \V+
13261        \Z
13262        \V++
13263        \z
13264        \V+
13265        $
13266        Ket
13267        End
13268------------------------------------------------------------------
13269
13270/\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
13271------------------------------------------------------------------
13272        Bra
13273        \v+
13274        \D
13275        \v++
13276        \d
13277        \v++
13278        \S
13279        \v+
13280        \s
13281        \v+
13282        \W
13283        \v++
13284        \w
13285        \v+
13286        Any
13287        \v+
13288        AllAny
13289        \v+
13290        \R
13291        \v+
13292        \H
13293        \v++
13294        \h
13295        \v++
13296        \V
13297        \v+
13298        \v
13299        \v+
13300        \Z
13301        \v++
13302        \z
13303        \v+
13304        $
13305        Ket
13306        End
13307------------------------------------------------------------------
13308
13309/ 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
13310------------------------------------------------------------------
13311        Bra
13312        a+
13313        \D
13314        a++
13315        \d
13316        a+
13317        \S
13318        a++
13319        \s
13320        a++
13321        \W
13322        a+
13323        \w
13324        a+
13325        Any
13326        a+
13327        AllAny
13328        a++
13329        \R
13330        a+
13331        \H
13332        a++
13333        \h
13334        a+
13335        \V
13336        a++
13337        \v
13338        a++
13339        \Z
13340        a++
13341        \z
13342        a++
13343        $
13344        Ket
13345        End
13346------------------------------------------------------------------
13347
13348/\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
13349------------------------------------------------------------------
13350        Bra
13351        \x0a+
13352        \D
13353        \x0a++
13354        \d
13355        \x0a++
13356        \S
13357        \x0a+
13358        \s
13359        \x0a+
13360        \W
13361        \x0a++
13362        \w
13363        \x0a+
13364        Any
13365        \x0a+
13366        AllAny
13367        \x0a+
13368        \R
13369        \x0a+
13370        \H
13371        \x0a++
13372        \h
13373        \x0a++
13374        \V
13375        \x0a+
13376        \v
13377        \x0a+
13378        \Z
13379        \x0a++
13380        \z
13381        \x0a+
13382        $
13383        Ket
13384        End
13385------------------------------------------------------------------
13386
13387/ .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZx
13388------------------------------------------------------------------
13389        Bra
13390        Any+
13391        \D
13392        Any+
13393        \d
13394        Any+
13395        \S
13396        Any+
13397        \s
13398        Any+
13399        \W
13400        Any+
13401        \w
13402        Any+
13403        Any
13404        Any+
13405        AllAny
13406        Any++
13407        \R
13408        Any+
13409        \H
13410        Any+
13411        \h
13412        Any+
13413        \V
13414        Any+
13415        \v
13416        Any+
13417        \Z
13418        Any++
13419        \z
13420        Any+
13421        $
13422        Ket
13423        End
13424------------------------------------------------------------------
13425
13426/ .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZxs
13427------------------------------------------------------------------
13428        Bra
13429        AllAny+
13430        \D
13431        AllAny+
13432        \d
13433        AllAny+
13434        \S
13435        AllAny+
13436        \s
13437        AllAny+
13438        \W
13439        AllAny+
13440        \w
13441        AllAny+
13442        AllAny
13443        AllAny+
13444        AllAny
13445        AllAny+
13446        \R
13447        AllAny+
13448        \H
13449        AllAny+
13450        \h
13451        AllAny+
13452        \V
13453        AllAny+
13454        \v
13455        AllAny+
13456        \Z
13457        AllAny++
13458        \z
13459        AllAny+
13460        $
13461        Ket
13462        End
13463------------------------------------------------------------------
13464
13465/\D+$  \d+$  \S+$  \s+$  \W+$  \w+$  \C+$  \R+$  \H+$  \h+$  \V+$  \v+$   a+$  \n+$   .+$  .+$/BZxm
13466------------------------------------------------------------------
13467        Bra
13468        \D+
13469     /m $
13470        \d++
13471     /m $
13472        \S++
13473     /m $
13474        \s+
13475     /m $
13476        \W+
13477     /m $
13478        \w++
13479     /m $
13480        AllAny+
13481     /m $
13482        \R+
13483     /m $
13484        \H+
13485     /m $
13486        \h+
13487     /m $
13488        \V+
13489     /m $
13490        \v+
13491     /m $
13492        a+
13493     /m $
13494        \x0a+
13495     /m $
13496        Any+
13497     /m $
13498        Any+
13499     /m $
13500        Ket
13501        End
13502------------------------------------------------------------------
13503
13504/(?=a+)a(a+)++a/BZ
13505------------------------------------------------------------------
13506        Bra
13507        Assert
13508        a++
13509        Ket
13510        a
13511        CBraPos 1
13512        a++
13513        KetRpos
13514        a
13515        Ket
13516        End
13517------------------------------------------------------------------
13518
13519/a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ
13520------------------------------------------------------------------
13521        Bra
13522        a++
13523        CBra 1
13524        bb
13525        Alt
13526        cc
13527        Ket
13528        a++
13529        Bra
13530        bb
13531        Alt
13532        cc
13533        Ket
13534        a++
13535        Once_NC
13536        bb
13537        Alt
13538        cc
13539        Ket
13540        a++
13541        Bra
13542        bb
13543        Alt
13544        cc
13545        KetRmax
13546        a+
13547        CBra 2
13548        aa
13549        Ket
13550        a+
13551        Bra
13552        bb
13553        Alt
13554        aa
13555        Ket
13556        Ket
13557        End
13558------------------------------------------------------------------
13559
13560/a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ
13561------------------------------------------------------------------
13562        Bra
13563        a++
13564        Brazero
13565        CBra 1
13566        bb
13567        Alt
13568        cc
13569        Ket
13570        #
13571        a++
13572        Braminzero
13573        Bra
13574        bb
13575        Alt
13576        cc
13577        Ket
13578        #
13579        a++
13580        Once
13581        Brazero
13582        Bra
13583        bb
13584        Alt
13585        cc
13586        Ket
13587        Ket
13588        #
13589        a++
13590        Brazero
13591        Bra
13592        bb
13593        Alt
13594        cc
13595        KetRmax
13596        #
13597        a+
13598        Brazero
13599        CBra 2
13600        bb
13601        Alt
13602        cc
13603        Ket
13604        a#
13605        a+
13606        Brazero
13607        Bra
13608        aa
13609        Ket
13610        Ket
13611        End
13612------------------------------------------------------------------
13613
13614/a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ
13615------------------------------------------------------------------
13616        Bra
13617        a+
13618        Brazero
13619        Bra
13620        bb
13621        Ket
13622        a#
13623        a++
13624        Bra
13625        Alt
13626        Alt
13627        Alt
13628        Ket
13629        #
13630        a+
13631        Bra
13632        Alt
13633        b
13634        Ket
13635        a#
13636        a+
13637        Brazero
13638        Bra
13639        Alt
13640        Alt
13641        Alt
13642        Ket
13643        a
13644        Ket
13645        End
13646------------------------------------------------------------------
13647
13648/[ab]*/BZ
13649------------------------------------------------------------------
13650        Bra
13651        [ab]*+
13652        Ket
13653        End
13654------------------------------------------------------------------
13655    aaaa
13656 0: aaaa
13657
13658/[ab]*?/BZ
13659------------------------------------------------------------------
13660        Bra
13661        [ab]*?
13662        Ket
13663        End
13664------------------------------------------------------------------
13665    aaaa
13666 0:
13667
13668/[ab]?/BZ
13669------------------------------------------------------------------
13670        Bra
13671        [ab]?+
13672        Ket
13673        End
13674------------------------------------------------------------------
13675    aaaa
13676 0: a
13677
13678/[ab]??/BZ
13679------------------------------------------------------------------
13680        Bra
13681        [ab]??
13682        Ket
13683        End
13684------------------------------------------------------------------
13685    aaaa
13686 0:
13687
13688/[ab]+/BZ
13689------------------------------------------------------------------
13690        Bra
13691        [ab]++
13692        Ket
13693        End
13694------------------------------------------------------------------
13695    aaaa
13696 0: aaaa
13697
13698/[ab]+?/BZ
13699------------------------------------------------------------------
13700        Bra
13701        [ab]+?
13702        Ket
13703        End
13704------------------------------------------------------------------
13705    aaaa
13706 0: a
13707
13708/[ab]{2,3}/BZ
13709------------------------------------------------------------------
13710        Bra
13711        [ab]{2,3}+
13712        Ket
13713        End
13714------------------------------------------------------------------
13715    aaaa
13716 0: aaa
13717
13718/[ab]{2,3}?/BZ
13719------------------------------------------------------------------
13720        Bra
13721        [ab]{2,3}?
13722        Ket
13723        End
13724------------------------------------------------------------------
13725    aaaa
13726 0: aa
13727
13728/[ab]{2,}/BZ
13729------------------------------------------------------------------
13730        Bra
13731        [ab]{2,}+
13732        Ket
13733        End
13734------------------------------------------------------------------
13735    aaaa
13736 0: aaaa
13737
13738/[ab]{2,}?/BZ
13739------------------------------------------------------------------
13740        Bra
13741        [ab]{2,}?
13742        Ket
13743        End
13744------------------------------------------------------------------
13745    aaaa
13746 0: aa
13747
13748/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ
13749------------------------------------------------------------------
13750        Bra
13751        \d++
13752        \s{0,5}+
13753        =
13754        \s*+
13755        \S?
13756        =
13757        \w{0,4}+
13758        \W*+
13759        Ket
13760        End
13761------------------------------------------------------------------
13762
13763/[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ
13764------------------------------------------------------------------
13765        Bra
13766        [a-d]{5,12}+
13767        [0-9e-z]*+
13768        #
13769        [\x00-`{-\xff] (neg)++
13770        [b-y]*+
13771        a
13772        [2-7]?+
13773        [\x00-/:-`{-\xff] (neg)++
13774        Ket
13775        End
13776------------------------------------------------------------------
13777
13778/[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
13779------------------------------------------------------------------
13780        Bra
13781        [a-z]*+
13782        \s
13783        #
13784        [\x09 ]?+
13785        \S
13786        #
13787        [a-c]*
13788        \S
13789        #
13790        [C-G]++
13791        \d
13792        #
13793        [4-8]*+
13794        \D
13795        #
13796        [,4-9]*
13797        \D
13798        #
13799        [!$]{0,5}+
13800        \w
13801        #
13802        [M-Xf-l]++
13803        \W
13804        #
13805        [,a-c]?
13806        \W
13807        Ket
13808        End
13809------------------------------------------------------------------
13810
13811/a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ
13812------------------------------------------------------------------
13813        Bra
13814        a+
13815        Brazero
13816        CBra 1
13817        aa
13818        Alt
13819        bb
13820        KetRmax
13821        c#
13822        a*
13823        Brazero
13824        CBra 2
13825        bb
13826        Alt
13827        cc
13828        KetRmax
13829        a#
13830        a?+
13831        Brazero
13832        CBra 3
13833        bb
13834        Alt
13835        cc
13836        KetRmax
13837        d#
13838        [a-f]*
13839        Brazero
13840        CBra 4
13841        g
13842        Alt
13843        hh
13844        KetRmax
13845        f
13846        Ket
13847        End
13848------------------------------------------------------------------
13849
13850/[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ
13851------------------------------------------------------------------
13852        Bra
13853        [a-f]*+
13854        Brazero
13855        CBra 1
13856        g
13857        Alt
13858        hh
13859        Alt
13860        i
13861        KetRmax
13862        i#
13863        [a-x]{4,}
13864        Brazero
13865        SCBra 2
13866        y{0,6}
13867        KetRmax
13868        y#
13869        [a-k]++
13870        CBra 3
13871        ll
13872        Alt
13873        mm
13874        KetRmax
13875        n
13876        Ket
13877        End
13878------------------------------------------------------------------
13879
13880/[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ
13881------------------------------------------------------------------
13882        Bra
13883        [a-f]*+
13884        Once_NC
13885        gg
13886        Alt
13887        hh
13888        KetRmax
13889        #
13890        [a-f]*+
13891        Brazero
13892        Once_NC
13893        gg
13894        Alt
13895        hh
13896        Ket
13897        #
13898        [a-f]*
13899        Brazero
13900        Once_NC
13901        gg
13902        Alt
13903        hh
13904        KetRmax
13905        a#
13906        [a-f]*+
13907        Brazero
13908        Once_NC
13909        gg
13910        Alt
13911        hh
13912        KetRmax
13913        h
13914        Ket
13915        End
13916------------------------------------------------------------------
13917
13918/[a-c]*d/DZS
13919------------------------------------------------------------------
13920        Bra
13921        [a-c]*+
13922        d
13923        Ket
13924        End
13925------------------------------------------------------------------
13926Capturing subpattern count = 0
13927No options
13928No first char
13929Need char = 'd'
13930Subject length lower bound = 1
13931Starting chars: a b c d
13932
13933/[a-c]+d/DZS
13934------------------------------------------------------------------
13935        Bra
13936        [a-c]++
13937        d
13938        Ket
13939        End
13940------------------------------------------------------------------
13941Capturing subpattern count = 0
13942No options
13943No first char
13944Need char = 'd'
13945Subject length lower bound = 2
13946Starting chars: a b c
13947
13948/[a-c]?d/DZS
13949------------------------------------------------------------------
13950        Bra
13951        [a-c]?+
13952        d
13953        Ket
13954        End
13955------------------------------------------------------------------
13956Capturing subpattern count = 0
13957No options
13958No first char
13959Need char = 'd'
13960Subject length lower bound = 1
13961Starting chars: a b c d
13962
13963/[a-c]{4,6}d/DZS
13964------------------------------------------------------------------
13965        Bra
13966        [a-c]{4,6}+
13967        d
13968        Ket
13969        End
13970------------------------------------------------------------------
13971Capturing subpattern count = 0
13972No options
13973No first char
13974Need char = 'd'
13975Subject length lower bound = 5
13976Starting chars: a b c
13977
13978/[a-c]{0,6}d/DZS
13979------------------------------------------------------------------
13980        Bra
13981        [a-c]{0,6}+
13982        d
13983        Ket
13984        End
13985------------------------------------------------------------------
13986Capturing subpattern count = 0
13987No options
13988No first char
13989Need char = 'd'
13990Subject length lower bound = 1
13991Starting chars: a b c d
13992
13993/-- End of special auto-possessive tests --/
13994
13995/^A\o{1239}B/
13996Failed: non-octal character in \o{} (closing brace missing?) at offset 8
13997
13998/^A\oB/
13999Failed: missing opening brace after \o at offset 3
14000
14001/^A\x{zz}B/
14002Failed: non-hex character in \x{} (closing brace missing?) at offset 5
14003
14004/^A\x{12Z/
14005Failed: non-hex character in \x{} (closing brace missing?) at offset 7
14006
14007/^A\x{/
14008Failed: non-hex character in \x{} (closing brace missing?) at offset 5
14009
14010/[ab]++/BZO
14011------------------------------------------------------------------
14012        Bra
14013        [ab]++
14014        Ket
14015        End
14016------------------------------------------------------------------
14017
14018/[^ab]*+/BZO
14019------------------------------------------------------------------
14020        Bra
14021        [\x00-`c-\xff] (neg)*+
14022        Ket
14023        End
14024------------------------------------------------------------------
14025
14026/a{4}+/BZO
14027------------------------------------------------------------------
14028        Bra
14029        a{4}
14030        Ket
14031        End
14032------------------------------------------------------------------
14033
14034/a{4}+/BZOi
14035------------------------------------------------------------------
14036        Bra
14037     /i a{4}
14038        Ket
14039        End
14040------------------------------------------------------------------
14041
14042/[a-[:digit:]]+/
14043Failed: invalid range in character class at offset 3
14044
14045/[A-[:digit:]]+/
14046Failed: invalid range in character class at offset 3
14047
14048/[a-[.xxx.]]+/
14049Failed: invalid range in character class at offset 3
14050
14051/[a-[=xxx=]]+/
14052Failed: invalid range in character class at offset 3
14053
14054/[a-[!xxx!]]+/
14055Failed: range out of order in character class at offset 3
14056
14057/[A-[!xxx!]]+/
14058    A]]]
14059 0: A]]]
14060
14061/[a-\d]+/
14062Failed: invalid range in character class at offset 4
14063
14064/(?<0abc>xx)/
14065Failed: group name must start with a non-digit at offset 3
14066
14067/(?&1abc)xx(?<1abc>y)/
14068Failed: group name must start with a non-digit at offset 3
14069
14070/(?<ab-cd>xx)/
14071Failed: syntax error in subpattern name (missing terminator) at offset 5
14072
14073/(?'0abc'xx)/
14074Failed: group name must start with a non-digit at offset 3
14075
14076/(?P<0abc>xx)/
14077Failed: group name must start with a non-digit at offset 4
14078
14079/\k<5ghj>/
14080Failed: group name must start with a non-digit at offset 3
14081
14082/\k'5ghj'/
14083Failed: group name must start with a non-digit at offset 3
14084
14085/\k{2fgh}/
14086Failed: group name must start with a non-digit at offset 3
14087
14088/(?P=8yuki)/
14089Failed: group name must start with a non-digit at offset 4
14090
14091/\g{4df}/
14092Failed: group name must start with a non-digit at offset 3
14093
14094/(?&1abc)xx(?<1abc>y)/
14095Failed: group name must start with a non-digit at offset 3
14096
14097/(?P>1abc)xx(?<1abc>y)/
14098Failed: group name must start with a non-digit at offset 4
14099
14100/\g'3gh'/
14101Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2
14102
14103/\g<5fg>/
14104Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2
14105
14106/(?(<4gh>)abc)/
14107Failed: group name must start with a non-digit at offset 4
14108
14109/(?('4gh')abc)/
14110Failed: group name must start with a non-digit at offset 4
14111
14112/(?(4gh)abc)/
14113Failed: malformed number or name after (?( at offset 4
14114
14115/(?(R&6yh)abc)/
14116Failed: group name must start with a non-digit at offset 5
14117
14118/(((a\2)|(a*)\g<-1>))*a?/BZ
14119------------------------------------------------------------------
14120        Bra
14121        Brazero
14122        SCBra 1
14123        Once
14124        CBra 2
14125        CBra 3
14126        a
14127        \2
14128        Ket
14129        Alt
14130        CBra 4
14131        a*
14132        Ket
14133        Recurse
14134        Ket
14135        Ket
14136        KetRmax
14137        a?+
14138        Ket
14139        End
14140------------------------------------------------------------------
14141
14142/-- Test the ugly "start or end of word" compatibility syntax --/
14143
14144/[[:<:]]red[[:>:]]/BZ
14145------------------------------------------------------------------
14146        Bra
14147        \b
14148        Assert
14149        \w
14150        Ket
14151        red
14152        \b
14153        AssertB
14154        Reverse
14155        \w
14156        Ket
14157        Ket
14158        End
14159------------------------------------------------------------------
14160    little red riding hood
14161 0: red
14162    a /red/ thing
14163 0: red
14164    red is a colour
14165 0: red
14166    put it all on red
14167 0: red
14168    ** Failers
14169No match
14170    no reduction
14171No match
14172    Alfred Winifred
14173No match
14174
14175/[a[:<:]] should give error/
14176Failed: unknown POSIX class name at offset 4
14177
14178/(?=ab\K)/+
14179    abcd
14180Start of matched string is beyond its end - displaying from end to start.
14181 0: ab
14182 0+ abcd
14183
14184/abcd/f<lf>
14185    xx\nxabcd
14186No match
14187
14188/ -- Test stack check external calls --/
14189
14190/(((((a)))))/Q0
14191
14192/(((((a)))))/Q1
14193Failed: parentheses are too deeply nested (stack check) at offset 0
14194
14195/(((((a)))))/Q
14196** Missing 0 or 1 after /Q
14197
14198/^\w+(?>\s*)(?<=\w)/BZ
14199------------------------------------------------------------------
14200        Bra
14201        ^
14202        \w+
14203        Once_NC
14204        \s*+
14205        Ket
14206        AssertB
14207        Reverse
14208        \w
14209        Ket
14210        Ket
14211        End
14212------------------------------------------------------------------
14213
14214/\othing/
14215Failed: missing opening brace after \o at offset 1
14216
14217/\o{}/
14218Failed: digits missing in \x{} or \o{} at offset 1
14219
14220/\o{whatever}/
14221Failed: non-octal character in \o{} (closing brace missing?) at offset 3
14222
14223/\xthing/
14224
14225/\x{}/
14226Failed: digits missing in \x{} or \o{} at offset 3
14227
14228/\x{whatever}/
14229Failed: non-hex character in \x{} (closing brace missing?) at offset 3
14230
14231"((?=(?(?=(?(?=(?(?=()))))))))"
14232    a
14233 0:
14234 1:
14235 2:
14236
14237"(?(?=)==)(((((((((?=)))))))))"
14238    a
14239No match
14240
14241/^(?:(a)|b)(?(1)A|B)/I
14242Capturing subpattern count = 1
14243Max back reference = 1
14244Options: anchored
14245No first char
14246No need char
14247    aA123\O3
14248Matched, but too many substrings
14249 0: aA
14250    aA123\O6
14251 0: aA
14252 1: a
14253
14254'^(?:(?<AA>a)|b)(?(<AA>)A|B)'
14255    aA123\O3
14256Matched, but too many substrings
14257 0: aA
14258    aA123\O6
14259 0: aA
14260 1: a
14261
14262'^(?<AA>)(?:(?<AA>a)|b)(?(<AA>)A|B)'J
14263    aA123\O3
14264Matched, but too many substrings
14265 0: aA
14266    aA123\O6
14267Matched, but too many substrings
14268 0: aA
14269 1:
14270
14271'^(?:(?<AA>X)|)(?:(?<AA>a)|b)\k{AA}'J
14272    aa123\O3
14273Matched, but too many substrings
14274 0: aa
14275    aa123\O6
14276Matched, but too many substrings
14277 0: aa
14278 1: <unset>
14279
14280/(?<N111>(?J)(?<N111>1(111111)11|)1|1|)(?(<N111>)1)/
14281
14282/(?(?=0)?)+/
14283Failed: nothing to repeat at offset 7
14284
14285/(?(?=0)(?=00)?00765)/
14286     00765
14287 0: 00765
14288
14289/(?(?=0)(?=00)?00765|(?!3).56)/
14290     00765
14291 0: 00765
14292     456
14293 0: 456
14294     ** Failers
14295No match
14296     356
14297No match
14298
14299'^(a)*+(\w)'
14300    g
14301 0: g
14302 1: <unset>
14303 2: g
14304    g\O3
14305Matched, but too many substrings
14306 0: g
14307
14308'^(?:a)*+(\w)'
14309    g
14310 0: g
14311 1: g
14312    g\O3
14313Matched, but too many substrings
14314 0: g
14315
14316//C
14317    \O\C+
14318Callout 255: last capture = -1
14319--->
14320 +0 ^
14321Matched, but too many substrings
14322
14323"((?2){0,1999}())?"
14324
14325/((?+1)(\1))/BZ
14326------------------------------------------------------------------
14327        Bra
14328        Once
14329        CBra 1
14330        Recurse
14331        CBra 2
14332        \1
14333        Ket
14334        Ket
14335        Ket
14336        Ket
14337        End
14338------------------------------------------------------------------
14339
14340/(?(?!)a|b)/
14341    bbb
14342 0: b
14343    aaa
14344No match
14345
14346"((?2)+)((?1))"
14347
14348"(?(?<E>.*!.*)?)"
14349Failed: assertion expected after (?( at offset 3
14350
14351"X((?2)()*+){2}+"BZ
14352------------------------------------------------------------------
14353        Bra
14354        X
14355        Once
14356        CBra 1
14357        Recurse
14358        Braposzero
14359        SCBraPos 2
14360        KetRpos
14361        Ket
14362        CBra 1
14363        Recurse
14364        Braposzero
14365        SCBraPos 2
14366        KetRpos
14367        Ket
14368        Ket
14369        Ket
14370        End
14371------------------------------------------------------------------
14372
14373"X((?2)()*+){2}"BZ
14374------------------------------------------------------------------
14375        Bra
14376        X
14377        CBra 1
14378        Recurse
14379        Braposzero
14380        SCBraPos 2
14381        KetRpos
14382        Ket
14383        CBra 1
14384        Recurse
14385        Braposzero
14386        SCBraPos 2
14387        KetRpos
14388        Ket
14389        Ket
14390        End
14391------------------------------------------------------------------
14392
14393"(?<=((?2))((?1)))"
14394Failed: lookbehind assertion is not fixed length at offset 17
14395
14396/(?<=\Ka)/g+
14397    aaaaa
14398 0: a
14399 0+ aaaa
14400 0: a
14401 0+ aaaa
14402 0: a
14403 0+ aaa
14404 0: a
14405 0+ aa
14406 0: a
14407 0+ a
14408 0: a
14409 0+
14410
14411/(?<=\Ka)/G+
14412    aaaaa
14413 0: a
14414 0+ aaaa
14415 0: a
14416 0+ aaa
14417 0: a
14418 0+ aa
14419 0: a
14420 0+ a
14421 0: a
14422 0+
14423
14424/((?2){73}(?2))((?1))/
14425
14426/.((?2)(?R)\1)()/BZ
14427------------------------------------------------------------------
14428        Bra
14429        Any
14430        Once
14431        CBra 1
14432        Recurse
14433        Recurse
14434        \1
14435        Ket
14436        Ket
14437        CBra 2
14438        Ket
14439        Ket
14440        End
14441------------------------------------------------------------------
14442
14443/(?1)()((((((\1++))\x85)+)|))/
14444
14445/(\9*+(?2);\3++()2|)++{/
14446Failed: reference to non-existent subpattern at offset 22
14447
14448/\V\x85\9*+((?2)\3++()2)*:2/
14449Failed: reference to non-existent subpattern at offset 26
14450
14451/(((?(R)){0,2}) (?''((?'R')((?'R')))))/J
14452
14453/(((?(X)){0,2}) (?''((?'X')((?'X')))))/J
14454
14455/(((?(R)){0,2}) (?''((?'X')((?'R')))))/
14456
14457"(?J)(?'d'(?'d'\g{d}))"
14458
14459".*?\h.+.\.+\R*?\xd(?i)(?=!(?=b`b`b`\`b\xa9b!)`\a`bbbbbbbbbbbbb`bbbbbbbbbbbb*R\x85bbbbbbb\C?{((?2)(?))((
14460\H){8(?<=(?1){29}\xa8bbbb\x16\xd\xc6^($(?<! )(\xa9H4){4}h}1)B))\x15')"
14461
14462"(?J:(?|(?'R')(\k'R')|((?'R'))))"
14463
14464/(?<=|(\,\$(?73591620449005828816)\xa8.{7}){6}\x09)/
14465Failed: number is too big at offset 32
14466
14467//
14468\O1
14469Matched, but too many substrings
14470
14471/^(?:(?(1)x|)+)+$()/BZ
14472------------------------------------------------------------------
14473        Bra
14474        ^
14475        SBra
14476        SCond
14477      1 Cond ref
14478        x
14479        Alt
14480        KetRmax
14481        KetRmax
14482        $
14483        CBra 1
14484        Ket
14485        Ket
14486        End
14487------------------------------------------------------------------
14488
14489/(?=di(?<=(?1))|(?=(.))))/
14490Failed: unmatched parentheses at offset 23
14491
14492/(?(R))*+/BZ
14493------------------------------------------------------------------
14494        Bra
14495        Braposzero
14496        SBraPos
14497        SCond
14498        Cond recurse any
14499        Ket
14500        KetRpos
14501        Ket
14502        End
14503------------------------------------------------------------------
14504
14505/[[:\\](?'abc')[a:]/
14506
14507"[[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[:::::::::::::::::[[.\xe8Nq\xffq\xff\xe0\x2|||::Nq\xffq\xff\xe0\x6\x2|||::[[[:[::::::[[[[[::::::::[:[[[:[:::[[[[[[[[[[[[[[:::E[[[:[:[[:[:::[[:::E[[[:[:[[:'[:::::E[[[:[::::::[[[:[[[[[[[::E[[[:[::::::[[[:[[[[[[[[:[[::[::::[[:::::::[[:[[[[[[[:[[::[:[[:[~"
14508Failed: missing terminating ] for character class at offset 353
14509
14510/()(?(R)0)*+/BZ
14511------------------------------------------------------------------
14512        Bra
14513        CBra 1
14514        Ket
14515        Braposzero
14516        SBraPos
14517        SCond
14518        Cond recurse any
14519        0
14520        Ket
14521        KetRpos
14522        Ket
14523        End
14524------------------------------------------------------------------
14525
14526/(?R-:(?</
14527Failed: (?R or (?[+-]digits must be followed by ) at offset 3
14528
14529/(?1){3918}(((((0(\k'R'))))(?J)(?'R'(?'R'\3){99})))/I
14530Capturing subpattern count = 8
14531Max back reference = 8
14532Named capturing subpatterns:
14533  R   7
14534  R   8
14535No options
14536Duplicate name status changes
14537No first char
14538Need char = '0'
14539
14540/(?J:(?|(:(?|(?'R')(\k'R')|((?'R')))H'Rk'Rf)|s(?'R')))/
14541
14542/0(?0)|(1)(*THEN)(*SKIP:0)(*FAIL)/
14543    01
14544No match
14545
14546/((?(R8000000000)))/
14547Failed: number is too big at offset 16
14548
14549/(?(8000000000/
14550Failed: number is too big at offset 13
14551
14552/(?:ab)?(?:ab)(?:ab)/
14553    abab
14554 0: abab
14555    ababab
14556 0: ababab
14557    aba
14558No match
14559
14560/((*MARK:A))++a(*SKIP:B)b/
14561    aacb
14562No match
14563
14564/(?J:(?|(:(?|(?'R')(\z(?|(?'R')(\k'R')|((?'R')))k'R')|((?'R')))H'Ak'Rf)|s(?'R')))/
14565
14566/(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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)(?&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>1)/
14567
14568/a[[:punct:]b]/BZ
14569------------------------------------------------------------------
14570        Bra
14571        a
14572        [!-/:-@[-`b{-~]
14573        Ket
14574        End
14575------------------------------------------------------------------
14576
14577/-- End of testinput2 --/
14578