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
422No options
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
446No options
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
480No options
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
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
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
519No options
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
527No options
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: 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 (?( or (?(?C) at offset 3
559
560/(?(abc))/
561Failed: reference to non-existent subpattern at offset 7
562
563/(?(?<ab))/
564Failed: assertion expected after (?( or (?(?C) 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
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: 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: 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
3098No options
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
3500No options
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//S-KF>testsavedregex
5618Compiled pattern written to testsavedregex
5619
5620/abc/IS>testsavedregex
5621Capturing subpattern count = 0
5622No options
5623First char = 'a'
5624Need char = 'c'
5625Subject length lower bound = 3
5626No starting char list
5627Compiled pattern written to testsavedregex
5628Study data written to testsavedregex
5629<testsavedregex
5630Compiled pattern loaded from testsavedregex
5631Study data loaded from testsavedregex
5632    abc
5633 0: abc
5634    ** Failers
5635No match
5636    bca
5637No match
5638
5639/abc/ISS>testsavedregex
5640Capturing subpattern count = 0
5641No options
5642First char = 'a'
5643Need char = 'c'
5644Compiled pattern written to testsavedregex
5645<testsavedregex
5646Compiled pattern loaded from testsavedregex
5647No study data
5648    abc
5649 0: abc
5650    ** Failers
5651No match
5652    bca
5653No match
5654
5655/abc/IFS>testsavedregex
5656Capturing subpattern count = 0
5657No options
5658First char = 'a'
5659Need char = 'c'
5660Subject length lower bound = 3
5661No starting char list
5662Compiled pattern written to testsavedregex
5663Study data written to testsavedregex
5664<testsavedregex
5665Compiled pattern (byte-inverted) loaded from testsavedregex
5666Study data loaded from testsavedregex
5667    abc
5668 0: abc
5669    ** Failers
5670No match
5671    bca
5672No match
5673
5674/abc/IFSS>testsavedregex
5675Capturing subpattern count = 0
5676No options
5677First char = 'a'
5678Need char = 'c'
5679Compiled pattern written to testsavedregex
5680<testsavedregex
5681Compiled pattern (byte-inverted) loaded from testsavedregex
5682No study data
5683    abc
5684 0: abc
5685    ** Failers
5686No match
5687    bca
5688No match
5689
5690/(a|b)/IS>testsavedregex
5691Capturing subpattern count = 1
5692No options
5693No first char
5694No need char
5695Subject length lower bound = 1
5696Starting chars: a b
5697Compiled pattern written to testsavedregex
5698Study data written to testsavedregex
5699<testsavedregex
5700Compiled pattern loaded from testsavedregex
5701Study data loaded from testsavedregex
5702    abc
5703 0: a
5704 1: a
5705    ** Failers
5706 0: a
5707 1: a
5708    def
5709No match
5710
5711/(a|b)/ISS>testsavedregex
5712Capturing subpattern count = 1
5713No options
5714No first char
5715No need char
5716Compiled pattern written to testsavedregex
5717<testsavedregex
5718Compiled pattern loaded from testsavedregex
5719No study data
5720    abc
5721 0: a
5722 1: a
5723    ** Failers
5724 0: a
5725 1: a
5726    def
5727No match
5728
5729/(a|b)/ISF>testsavedregex
5730Capturing subpattern count = 1
5731No options
5732No first char
5733No need char
5734Subject length lower bound = 1
5735Starting chars: a b
5736Compiled pattern written to testsavedregex
5737Study data written to testsavedregex
5738<testsavedregex
5739Compiled pattern (byte-inverted) loaded from testsavedregex
5740Study data loaded from testsavedregex
5741    abc
5742 0: a
5743 1: a
5744    ** Failers
5745 0: a
5746 1: a
5747    def
5748No match
5749
5750/(a|b)/ISSF>testsavedregex
5751Capturing subpattern count = 1
5752No options
5753No first char
5754No need char
5755Compiled pattern written to testsavedregex
5756<testsavedregex
5757Compiled pattern (byte-inverted) loaded from testsavedregex
5758No study data
5759    abc
5760 0: a
5761 1: a
5762    ** Failers
5763 0: a
5764 1: a
5765    def
5766No match
5767
5768~<(\w+)/?>(.)*</(\1)>~smgI
5769Capturing subpattern count = 3
5770Max back reference = 1
5771Options: multiline dotall
5772First char = '<'
5773Need char = '>'
5774    \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>
5775 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>
5776 1: seite
5777 2: \x0a
5778 3: seite
5779
5780/^a/IF
5781Capturing subpattern count = 0
5782Options: anchored
5783No first char
5784No need char
5785
5786/line\nbreak/I
5787Capturing subpattern count = 0
5788Contains explicit CR or LF match
5789No options
5790First char = 'l'
5791Need char = 'k'
5792    this is a line\nbreak
5793 0: line\x0abreak
5794    line one\nthis is a line\nbreak in the second line
5795 0: line\x0abreak
5796
5797/line\nbreak/If
5798Capturing subpattern count = 0
5799Contains explicit CR or LF match
5800Options: firstline
5801First char = 'l'
5802Need char = 'k'
5803    this is a line\nbreak
5804 0: line\x0abreak
5805    ** Failers
5806No match
5807    line one\nthis is a line\nbreak in the second line
5808No match
5809
5810/line\nbreak/Imf
5811Capturing subpattern count = 0
5812Contains explicit CR or LF match
5813Options: multiline firstline
5814First char = 'l'
5815Need char = 'k'
5816    this is a line\nbreak
5817 0: line\x0abreak
5818    ** Failers
5819No match
5820    line one\nthis is a line\nbreak in the second line
5821No match
5822
5823/(?i)(?-i)AbCd/I
5824Capturing subpattern count = 0
5825No options
5826First char = 'A'
5827Need char = 'd'
5828    AbCd
5829 0: AbCd
5830    ** Failers
5831No match
5832    abcd
5833No match
5834
5835/a{11111111111111111111}/I
5836Failed: number too big in {} quantifier at offset 8
5837
5838/(){64294967295}/I
5839Failed: number too big in {} quantifier at offset 9
5840
5841/(){2,4294967295}/I
5842Failed: number too big in {} quantifier at offset 11
5843
5844"(?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
5845Capturing subpattern count = 1
5846Max back reference = 1
5847No options
5848First char = 'a' (caseless)
5849Need char = 'B'
5850    abcdefghijklAkB
5851 0: abcdefghijklAkB
5852 1: k
5853
5854"(?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
5855Capturing subpattern count = 12
5856Max back reference = 11
5857Named capturing subpatterns:
5858  n0    1
5859  n1    2
5860  n10  11
5861  n11  12
5862  n2    3
5863  n3    4
5864  n4    5
5865  n5    6
5866  n6    7
5867  n7    8
5868  n8    9
5869  n9   10
5870No options
5871First char = 'a'
5872Need char = 'B'
5873    abcdefghijklAkB
5874 0: abcdefghijklAkB
5875 1: a
5876 2: b
5877 3: c
5878 4: d
5879 5: e
5880 6: f
5881 7: g
5882 8: h
5883 9: i
588410: j
588511: k
588612: l
5887
5888"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
5889Capturing subpattern count = 12
5890Max back reference = 11
5891No options
5892First char = 'a'
5893Need char = 'B'
5894    abcdefghijklAkB
5895 0: abcdefghijklAkB
5896 1: a
5897 2: b
5898 3: c
5899 4: d
5900 5: e
5901 6: f
5902 7: g
5903 8: h
5904 9: i
590510: j
590611: k
590712: l
5908
5909"(?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
5910Capturing subpattern count = 101
5911Named capturing subpatterns:
5912  name0     1
5913  name1     2
5914  name10   11
5915  name100 101
5916  name11   12
5917  name12   13
5918  name13   14
5919  name14   15
5920  name15   16
5921  name16   17
5922  name17   18
5923  name18   19
5924  name19   20
5925  name2     3
5926  name20   21
5927  name21   22
5928  name22   23
5929  name23   24
5930  name24   25
5931  name25   26
5932  name26   27
5933  name27   28
5934  name28   29
5935  name29   30
5936  name3     4
5937  name30   31
5938  name31   32
5939  name32   33
5940  name33   34
5941  name34   35
5942  name35   36
5943  name36   37
5944  name37   38
5945  name38   39
5946  name39   40
5947  name4     5
5948  name40   41
5949  name41   42
5950  name42   43
5951  name43   44
5952  name44   45
5953  name45   46
5954  name46   47
5955  name47   48
5956  name48   49
5957  name49   50
5958  name5     6
5959  name50   51
5960  name51   52
5961  name52   53
5962  name53   54
5963  name54   55
5964  name55   56
5965  name56   57
5966  name57   58
5967  name58   59
5968  name59   60
5969  name6     7
5970  name60   61
5971  name61   62
5972  name62   63
5973  name63   64
5974  name64   65
5975  name65   66
5976  name66   67
5977  name67   68
5978  name68   69
5979  name69   70
5980  name7     8
5981  name70   71
5982  name71   72
5983  name72   73
5984  name73   74
5985  name74   75
5986  name75   76
5987  name76   77
5988  name77   78
5989  name78   79
5990  name79   80
5991  name8     9
5992  name80   81
5993  name81   82
5994  name82   83
5995  name83   84
5996  name84   85
5997  name85   86
5998  name86   87
5999  name87   88
6000  name88   89
6001  name89   90
6002  name9    10
6003  name90   91
6004  name91   92
6005  name92   93
6006  name93   94
6007  name94   95
6008  name95   96
6009  name96   97
6010  name97   98
6011  name98   99
6012  name99  100
6013No options
6014First char = 'a'
6015Need char = 'a'
6016    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6017Matched, but too many substrings
6018 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6019 1: a
6020 2: a
6021 3: a
6022 4: a
6023 5: a
6024 6: a
6025 7: a
6026 8: a
6027 9: a
602810: a
602911: a
603012: a
603113: a
603214: a
6033
6034"(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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
6035Capturing subpattern count = 101
6036No options
6037First char = 'a'
6038Need char = 'a'
6039    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6040Matched, but too many substrings
6041 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6042 1: a
6043 2: a
6044 3: a
6045 4: a
6046 5: a
6047 6: a
6048 7: a
6049 8: a
6050 9: a
605110: a
605211: a
605312: a
605413: a
605514: a
6056
6057/[^()]*(?:\((?R)\)[^()]*)*/I
6058Capturing subpattern count = 0
6059May match empty string
6060No options
6061No first char
6062No need char
6063    (this(and)that
6064 0:
6065    (this(and)that)
6066 0: (this(and)that)
6067    (this(and)that)stuff
6068 0: (this(and)that)stuff
6069
6070/[^()]*(?:\((?>(?R))\)[^()]*)*/I
6071Capturing subpattern count = 0
6072May match empty string
6073No options
6074No first char
6075No need char
6076    (this(and)that
6077 0:
6078    (this(and)that)
6079 0: (this(and)that)
6080
6081/[^()]*(?:\((?R)\))*[^()]*/I
6082Capturing subpattern count = 0
6083May match empty string
6084No options
6085No first char
6086No need char
6087    (this(and)that
6088 0:
6089    (this(and)that)
6090 0: (this(and)that)
6091
6092/(?:\((?R)\))*[^()]*/I
6093Capturing subpattern count = 0
6094May match empty string
6095No options
6096No first char
6097No need char
6098    (this(and)that
6099 0:
6100    (this(and)that)
6101 0:
6102    ((this))
6103 0: ((this))
6104
6105/(?:\((?R)\))|[^()]*/I
6106Capturing subpattern count = 0
6107May match empty string
6108No options
6109No first char
6110No need char
6111    (this(and)that
6112 0:
6113    (this(and)that)
6114 0:
6115    (this)
6116 0: (this)
6117    ((this))
6118 0: ((this))
6119
6120/\x{0000ff}/I
6121Capturing subpattern count = 0
6122No options
6123First char = \xff
6124No need char
6125
6126/^((?P<A>a1)|(?P<A>a2)b)/I
6127Failed: two named subpatterns have the same name at offset 17
6128
6129/^((?P<A>a1)|(?P<A>a2)b)/IJ
6130Capturing subpattern count = 3
6131Named capturing subpatterns:
6132  A   2
6133  A   3
6134Options: anchored dupnames
6135No first char
6136No need char
6137    a1b\CA
6138 0: a1
6139 1: a1
6140 2: a1
6141  C a1 (2) A
6142    a2b\CA
6143 0: a2b
6144 1: a2b
6145 2: <unset>
6146 3: a2
6147  C a2 (2) A
6148    ** Failers
6149No match
6150    a1b\CZ\CA
6151no parentheses with name "Z"
6152 0: a1
6153 1: a1
6154 2: a1
6155copy substring Z failed -7
6156  C a1 (2) A
6157
6158/(?|(?<a>)(?<b>)(?<a>)|(?<a>)(?<b>)(?<a>))/IJ
6159Capturing subpattern count = 3
6160Named capturing subpatterns:
6161  a   1
6162  a   3
6163  b   2
6164May match empty string
6165Options: dupnames
6166No first char
6167No need char
6168
6169/^(?P<A>a)(?P<A>b)/IJ
6170Capturing subpattern count = 2
6171Named capturing subpatterns:
6172  A   1
6173  A   2
6174Options: anchored dupnames
6175No first char
6176No need char
6177    ab\CA
6178 0: ab
6179 1: a
6180 2: b
6181  C a (1) A
6182
6183/^(?P<A>a)(?P<A>b)|cd/IJ
6184Capturing subpattern count = 2
6185Named capturing subpatterns:
6186  A   1
6187  A   2
6188Options: dupnames
6189No first char
6190No need char
6191    ab\CA
6192 0: ab
6193 1: a
6194 2: b
6195  C a (1) A
6196    cd\CA
6197 0: cd
6198copy substring A failed -7
6199
6200/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6201Capturing subpattern count = 4
6202Named capturing subpatterns:
6203  A   1
6204  A   2
6205  A   3
6206  A   4
6207Options: dupnames
6208No first char
6209No need char
6210    cdefgh\CA
6211 0: cdefgh
6212 1: <unset>
6213 2: <unset>
6214 3: ef
6215 4: gh
6216  C ef (2) A
6217
6218/^((?P<A>a1)|(?P<A>a2)b)/IJ
6219Capturing subpattern count = 3
6220Named capturing subpatterns:
6221  A   2
6222  A   3
6223Options: anchored dupnames
6224No first char
6225No need char
6226    a1b\GA
6227 0: a1
6228 1: a1
6229 2: a1
6230  G a1 (2) A
6231    a2b\GA
6232 0: a2b
6233 1: a2b
6234 2: <unset>
6235 3: a2
6236  G a2 (2) A
6237    ** Failers
6238No match
6239    a1b\GZ\GA
6240no parentheses with name "Z"
6241 0: a1
6242 1: a1
6243 2: a1
6244get substring Z failed -7
6245  G a1 (2) A
6246
6247/^(?P<A>a)(?P<A>b)/IJ
6248Capturing subpattern count = 2
6249Named capturing subpatterns:
6250  A   1
6251  A   2
6252Options: anchored dupnames
6253No first char
6254No need char
6255    ab\GA
6256 0: ab
6257 1: a
6258 2: b
6259  G a (1) A
6260
6261/^(?P<A>a)(?P<A>b)|cd/IJ
6262Capturing subpattern count = 2
6263Named capturing subpatterns:
6264  A   1
6265  A   2
6266Options: dupnames
6267No first char
6268No need char
6269    ab\GA
6270 0: ab
6271 1: a
6272 2: b
6273  G a (1) A
6274    cd\GA
6275 0: cd
6276get substring A failed -7
6277
6278/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6279Capturing subpattern count = 4
6280Named capturing subpatterns:
6281  A   1
6282  A   2
6283  A   3
6284  A   4
6285Options: dupnames
6286No first char
6287No need char
6288    cdefgh\GA
6289 0: cdefgh
6290 1: <unset>
6291 2: <unset>
6292 3: ef
6293 4: gh
6294  G ef (2) A
6295
6296/(?J)^((?P<A>a1)|(?P<A>a2)b)/I
6297Capturing subpattern count = 3
6298Named capturing subpatterns:
6299  A   2
6300  A   3
6301Options: anchored
6302Duplicate name status changes
6303No first char
6304No need char
6305    a1b\CA
6306 0: a1
6307 1: a1
6308 2: a1
6309  C a1 (2) A
6310    a2b\CA
6311 0: a2b
6312 1: a2b
6313 2: <unset>
6314 3: a2
6315  C a2 (2) A
6316
6317/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
6318Failed: two named subpatterns have the same name at offset 37
6319
6320/ In this next test, J is not set at the outer level; consequently it isn't
6321set in the pattern's options; consequently pcre_get_named_substring() produces
6322a random value. /Ix
6323Capturing subpattern count = 1
6324Options: extended
6325First char = 'I'
6326Need char = 'e'
6327
6328/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
6329Capturing subpattern count = 4
6330Named capturing subpatterns:
6331  A   1
6332  B   2
6333  B   3
6334  C   4
6335Options: anchored
6336Duplicate name status changes
6337No first char
6338No need char
6339    a bc d\CA\CB\CC
6340 0: a bc d
6341 1: a
6342 2: b
6343 3: c
6344 4: d
6345  C a (1) A
6346  C b (1) B
6347  C d (1) C
6348
6349/^(?P<A>a)?(?(A)a|b)/I
6350Capturing subpattern count = 1
6351Max back reference = 1
6352Named capturing subpatterns:
6353  A   1
6354Options: anchored
6355No first char
6356No need char
6357    aabc
6358 0: aa
6359 1: a
6360    bc
6361 0: b
6362    ** Failers
6363No match
6364    abc
6365No match
6366
6367/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
6368Capturing subpattern count = 1
6369Max back reference = 1
6370Named capturing subpatterns:
6371  ZZ   1
6372No options
6373No first char
6374Need char = 'X'
6375    bXaX
6376 0: bXaX
6377 1: X
6378
6379/(?:(?(2y)a|b)(X))+/I
6380Failed: malformed number or name after (?( at offset 7
6381
6382/(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6383Failed: reference to non-existent subpattern at offset 9
6384
6385/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
6386Capturing subpattern count = 1
6387Max back reference = 1
6388Named capturing subpatterns:
6389  ZZ   1
6390No options
6391No first char
6392Need char = 'X'
6393    bbXaaX
6394 0: bbXaaX
6395 1: X
6396
6397/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
6398Capturing subpattern count = 1
6399Max back reference = 1
6400Named capturing subpatterns:
6401  ZZ   1
6402No options
6403No first char
6404Need char = 'X'
6405    (b)\\Xa\\X
6406 0: (b)\Xa\X
6407 1: X
6408
6409/(?P<ABC/I
6410Failed: syntax error in subpattern name (missing terminator) at offset 7
6411
6412/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6413Capturing subpattern count = 1
6414Max back reference = 1
6415Named capturing subpatterns:
6416  A   1
6417No options
6418No first char
6419No need char
6420    bXXaYYaY
6421 0: bXXaYYaY
6422 1: Y
6423    bXYaXXaX
6424 0: bX
6425 1: X
6426
6427/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6428Capturing subpattern count = 10
6429Max back reference = 10
6430Named capturing subpatterns:
6431  A  10
6432No options
6433No first char
6434No need char
6435    bXXaYYaY
6436 0: bXXaYYaY
6437 1:
6438 2:
6439 3:
6440 4:
6441 5:
6442 6:
6443 7:
6444 8:
6445 9:
644610: Y
6447
6448/\s*,\s*/IS
6449Capturing subpattern count = 0
6450No options
6451No first char
6452Need char = ','
6453Subject length lower bound = 1
6454Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 ,
6455    \x0b,\x0b
6456 0: \x0b,\x0b
6457    \x0c,\x0d
6458 0: \x0c,\x0d
6459
6460/^abc/Im
6461Capturing subpattern count = 0
6462Options: multiline
6463First char at start or follows newline
6464Need char = 'c'
6465    xyz\nabc
6466 0: abc
6467    xyz\nabc\<lf>
6468 0: abc
6469    xyz\r\nabc\<lf>
6470 0: abc
6471    xyz\rabc\<cr>
6472 0: abc
6473    xyz\r\nabc\<crlf>
6474 0: abc
6475    ** Failers
6476No match
6477    xyz\nabc\<cr>
6478No match
6479    xyz\r\nabc\<cr>
6480No match
6481    xyz\nabc\<crlf>
6482No match
6483    xyz\rabc\<crlf>
6484No match
6485    xyz\rabc\<lf>
6486No match
6487
6488/abc$/Im<lf>
6489Capturing subpattern count = 0
6490Options: multiline
6491Forced newline sequence: LF
6492First char = 'a'
6493Need char = 'c'
6494    xyzabc
6495 0: abc
6496    xyzabc\n
6497 0: abc
6498    xyzabc\npqr
6499 0: abc
6500    xyzabc\r\<cr>
6501 0: abc
6502    xyzabc\rpqr\<cr>
6503 0: abc
6504    xyzabc\r\n\<crlf>
6505 0: abc
6506    xyzabc\r\npqr\<crlf>
6507 0: abc
6508    ** Failers
6509No match
6510    xyzabc\r
6511No match
6512    xyzabc\rpqr
6513No match
6514    xyzabc\r\n
6515No match
6516    xyzabc\r\npqr
6517No match
6518
6519/^abc/Im<cr>
6520Capturing subpattern count = 0
6521Options: multiline
6522Forced newline sequence: CR
6523First char at start or follows newline
6524Need char = 'c'
6525    xyz\rabcdef
6526 0: abc
6527    xyz\nabcdef\<lf>
6528 0: abc
6529    ** Failers
6530No match
6531    xyz\nabcdef
6532No match
6533
6534/^abc/Im<lf>
6535Capturing subpattern count = 0
6536Options: multiline
6537Forced newline sequence: LF
6538First char at start or follows newline
6539Need char = 'c'
6540    xyz\nabcdef
6541 0: abc
6542    xyz\rabcdef\<cr>
6543 0: abc
6544    ** Failers
6545No match
6546    xyz\rabcdef
6547No match
6548
6549/^abc/Im<crlf>
6550Capturing subpattern count = 0
6551Options: multiline
6552Forced newline sequence: CRLF
6553First char at start or follows newline
6554Need char = 'c'
6555    xyz\r\nabcdef
6556 0: abc
6557    xyz\rabcdef\<cr>
6558 0: abc
6559    ** Failers
6560No match
6561    xyz\rabcdef
6562No match
6563
6564/^abc/Im<bad>
6565Unknown modifier at: <bad>
6566
6567
6568/abc/I
6569Capturing subpattern count = 0
6570No options
6571First char = 'a'
6572Need char = 'c'
6573    xyz\rabc\<bad>
6574Unknown escape sequence at: <bad>
6575    abc
6576 0: abc
6577
6578/.*/I<lf>
6579Capturing subpattern count = 0
6580May match empty string
6581Options:
6582Forced newline sequence: LF
6583First char at start or follows newline
6584No need char
6585    abc\ndef
6586 0: abc
6587    abc\rdef
6588 0: abc\x0ddef
6589    abc\r\ndef
6590 0: abc\x0d
6591    \<cr>abc\ndef
6592 0: abc\x0adef
6593    \<cr>abc\rdef
6594 0: abc
6595    \<cr>abc\r\ndef
6596 0: abc
6597    \<crlf>abc\ndef
6598 0: abc\x0adef
6599    \<crlf>abc\rdef
6600 0: abc\x0ddef
6601    \<crlf>abc\r\ndef
6602 0: abc
6603
6604/\w+(.)(.)?def/Is
6605Capturing subpattern count = 2
6606Options: dotall
6607No first char
6608Need char = 'f'
6609    abc\ndef
6610 0: abc\x0adef
6611 1: \x0a
6612    abc\rdef
6613 0: abc\x0ddef
6614 1: \x0d
6615    abc\r\ndef
6616 0: abc\x0d\x0adef
6617 1: \x0d
6618 2: \x0a
6619
6620+((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6621Capturing subpattern count = 1
6622May match empty string
6623No options
6624No first char
6625No need char
6626   /* this is a C style comment */\M
6627Minimum match() limit = 120
6628Minimum match() recursion limit = 6
6629 0: /* this is a C style comment */
6630 1: /* this is a C style comment */
6631
6632/(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
6633Capturing subpattern count = 1
6634Named capturing subpatterns:
6635  B   1
6636No options
6637No first char
6638Need char = '.'
6639
6640/()()()()()()()()()()()()()()()()()()()()
6641 ()()()()()()()()()()()()()()()()()()()()
6642 ()()()()()()()()()()()()()()()()()()()()
6643 ()()()()()()()()()()()()()()()()()()()()
6644 ()()()()()()()()()()()()()()()()()()()()
6645 (.(.))/Ix
6646Capturing subpattern count = 102
6647Options: extended
6648No first char
6649No need char
6650    XY\O400
6651 0: XY
6652 1:
6653 2:
6654 3:
6655 4:
6656 5:
6657 6:
6658 7:
6659 8:
6660 9:
666110:
666211:
666312:
666413:
666514:
666615:
666716:
666817:
666918:
667019:
667120:
667221:
667322:
667423:
667524:
667625:
667726:
667827:
667928:
668029:
668130:
668231:
668332:
668433:
668534:
668635:
668736:
668837:
668938:
669039:
669140:
669241:
669342:
669443:
669544:
669645:
669746:
669847:
669948:
670049:
670150:
670251:
670352:
670453:
670554:
670655:
670756:
670857:
670958:
671059:
671160:
671261:
671362:
671463:
671564:
671665:
671766:
671867:
671968:
672069:
672170:
672271:
672372:
672473:
672574:
672675:
672776:
672877:
672978:
673079:
673180:
673281:
673382:
673483:
673584:
673685:
673786:
673887:
673988:
674089:
674190:
674291:
674392:
674493:
674594:
674695:
674796:
674897:
674998:
675099:
6751100:
6752101: XY
6753102: Y
6754
6755/(a*b|(?i:c*(?-i)d))/IS
6756Capturing subpattern count = 1
6757No options
6758No first char
6759No need char
6760Subject length lower bound = 1
6761Starting chars: C a b c d
6762
6763/()[ab]xyz/IS
6764Capturing subpattern count = 1
6765No options
6766No first char
6767Need char = 'z'
6768Subject length lower bound = 4
6769Starting chars: a b
6770
6771/(|)[ab]xyz/IS
6772Capturing subpattern count = 1
6773No options
6774No first char
6775Need char = 'z'
6776Subject length lower bound = 4
6777Starting chars: a b
6778
6779/(|c)[ab]xyz/IS
6780Capturing subpattern count = 1
6781No options
6782No first char
6783Need char = 'z'
6784Subject length lower bound = 4
6785Starting chars: a b c
6786
6787/(|c?)[ab]xyz/IS
6788Capturing subpattern count = 1
6789No options
6790No first char
6791Need char = 'z'
6792Subject length lower bound = 4
6793Starting chars: a b c
6794
6795/(d?|c?)[ab]xyz/IS
6796Capturing subpattern count = 1
6797No options
6798No first char
6799Need char = 'z'
6800Subject length lower bound = 4
6801Starting chars: a b c d
6802
6803/(d?|c)[ab]xyz/IS
6804Capturing subpattern count = 1
6805No options
6806No first char
6807Need char = 'z'
6808Subject length lower bound = 4
6809Starting chars: a b c d
6810
6811/^a*b\d/DZ
6812------------------------------------------------------------------
6813        Bra
6814        ^
6815        a*+
6816        b
6817        \d
6818        Ket
6819        End
6820------------------------------------------------------------------
6821Capturing subpattern count = 0
6822Options: anchored
6823No first char
6824Need char = 'b'
6825
6826/^a*+b\d/DZ
6827------------------------------------------------------------------
6828        Bra
6829        ^
6830        a*+
6831        b
6832        \d
6833        Ket
6834        End
6835------------------------------------------------------------------
6836Capturing subpattern count = 0
6837Options: anchored
6838No first char
6839Need char = 'b'
6840
6841/^a*?b\d/DZ
6842------------------------------------------------------------------
6843        Bra
6844        ^
6845        a*+
6846        b
6847        \d
6848        Ket
6849        End
6850------------------------------------------------------------------
6851Capturing subpattern count = 0
6852Options: anchored
6853No first char
6854Need char = 'b'
6855
6856/^a+A\d/DZ
6857------------------------------------------------------------------
6858        Bra
6859        ^
6860        a++
6861        A
6862        \d
6863        Ket
6864        End
6865------------------------------------------------------------------
6866Capturing subpattern count = 0
6867Options: anchored
6868No first char
6869Need char = 'A'
6870    aaaA5
6871 0: aaaA5
6872    ** Failers
6873No match
6874    aaaa5
6875No match
6876
6877/^a*A\d/IiDZ
6878------------------------------------------------------------------
6879        Bra
6880        ^
6881     /i a*
6882     /i A
6883        \d
6884        Ket
6885        End
6886------------------------------------------------------------------
6887Capturing subpattern count = 0
6888Options: anchored caseless
6889No first char
6890Need char = 'A' (caseless)
6891    aaaA5
6892 0: aaaA5
6893    aaaa5
6894 0: aaaa5
6895
6896/(a*|b*)[cd]/IS
6897Capturing subpattern count = 1
6898No options
6899No first char
6900No need char
6901Subject length lower bound = 1
6902Starting chars: a b c d
6903
6904/(a+|b*)[cd]/IS
6905Capturing subpattern count = 1
6906No options
6907No first char
6908No need char
6909Subject length lower bound = 1
6910Starting chars: a b c d
6911
6912/(a*|b+)[cd]/IS
6913Capturing subpattern count = 1
6914No options
6915No first char
6916No need char
6917Subject length lower bound = 1
6918Starting chars: a b c d
6919
6920/(a+|b+)[cd]/IS
6921Capturing subpattern count = 1
6922No options
6923No first char
6924No need char
6925Subject length lower bound = 2
6926Starting chars: a b
6927
6928/((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6929 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6930 (((
6931 a
6932 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6933 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6934 )))
6935/Ix
6936Capturing subpattern count = 203
6937Options: extended
6938First char = 'a'
6939No need char
6940  large nest
6941Matched, but too many substrings
6942 0: a
6943 1: a
6944 2: a
6945 3: a
6946 4: a
6947 5: a
6948 6: a
6949 7: a
6950 8: a
6951 9: a
695210: a
695311: a
695412: a
695513: a
695614: a
6957
6958/a*\d/BZ
6959------------------------------------------------------------------
6960        Bra
6961        a*+
6962        \d
6963        Ket
6964        End
6965------------------------------------------------------------------
6966
6967/a*\D/BZ
6968------------------------------------------------------------------
6969        Bra
6970        a*
6971        \D
6972        Ket
6973        End
6974------------------------------------------------------------------
6975
6976/0*\d/BZ
6977------------------------------------------------------------------
6978        Bra
6979        0*
6980        \d
6981        Ket
6982        End
6983------------------------------------------------------------------
6984
6985/0*\D/BZ
6986------------------------------------------------------------------
6987        Bra
6988        0*+
6989        \D
6990        Ket
6991        End
6992------------------------------------------------------------------
6993
6994/a*\s/BZ
6995------------------------------------------------------------------
6996        Bra
6997        a*+
6998        \s
6999        Ket
7000        End
7001------------------------------------------------------------------
7002
7003/a*\S/BZ
7004------------------------------------------------------------------
7005        Bra
7006        a*
7007        \S
7008        Ket
7009        End
7010------------------------------------------------------------------
7011
7012/ *\s/BZ
7013------------------------------------------------------------------
7014        Bra
7015         *
7016        \s
7017        Ket
7018        End
7019------------------------------------------------------------------
7020
7021/ *\S/BZ
7022------------------------------------------------------------------
7023        Bra
7024         *+
7025        \S
7026        Ket
7027        End
7028------------------------------------------------------------------
7029
7030/a*\w/BZ
7031------------------------------------------------------------------
7032        Bra
7033        a*
7034        \w
7035        Ket
7036        End
7037------------------------------------------------------------------
7038
7039/a*\W/BZ
7040------------------------------------------------------------------
7041        Bra
7042        a*+
7043        \W
7044        Ket
7045        End
7046------------------------------------------------------------------
7047
7048/=*\w/BZ
7049------------------------------------------------------------------
7050        Bra
7051        =*+
7052        \w
7053        Ket
7054        End
7055------------------------------------------------------------------
7056
7057/=*\W/BZ
7058------------------------------------------------------------------
7059        Bra
7060        =*
7061        \W
7062        Ket
7063        End
7064------------------------------------------------------------------
7065
7066/\d*a/BZ
7067------------------------------------------------------------------
7068        Bra
7069        \d*+
7070        a
7071        Ket
7072        End
7073------------------------------------------------------------------
7074
7075/\d*2/BZ
7076------------------------------------------------------------------
7077        Bra
7078        \d*
7079        2
7080        Ket
7081        End
7082------------------------------------------------------------------
7083
7084/\d*\d/BZ
7085------------------------------------------------------------------
7086        Bra
7087        \d*
7088        \d
7089        Ket
7090        End
7091------------------------------------------------------------------
7092
7093/\d*\D/BZ
7094------------------------------------------------------------------
7095        Bra
7096        \d*+
7097        \D
7098        Ket
7099        End
7100------------------------------------------------------------------
7101
7102/\d*\s/BZ
7103------------------------------------------------------------------
7104        Bra
7105        \d*+
7106        \s
7107        Ket
7108        End
7109------------------------------------------------------------------
7110
7111/\d*\S/BZ
7112------------------------------------------------------------------
7113        Bra
7114        \d*
7115        \S
7116        Ket
7117        End
7118------------------------------------------------------------------
7119
7120/\d*\w/BZ
7121------------------------------------------------------------------
7122        Bra
7123        \d*
7124        \w
7125        Ket
7126        End
7127------------------------------------------------------------------
7128
7129/\d*\W/BZ
7130------------------------------------------------------------------
7131        Bra
7132        \d*+
7133        \W
7134        Ket
7135        End
7136------------------------------------------------------------------
7137
7138/\D*a/BZ
7139------------------------------------------------------------------
7140        Bra
7141        \D*
7142        a
7143        Ket
7144        End
7145------------------------------------------------------------------
7146
7147/\D*2/BZ
7148------------------------------------------------------------------
7149        Bra
7150        \D*+
7151        2
7152        Ket
7153        End
7154------------------------------------------------------------------
7155
7156/\D*\d/BZ
7157------------------------------------------------------------------
7158        Bra
7159        \D*+
7160        \d
7161        Ket
7162        End
7163------------------------------------------------------------------
7164
7165/\D*\D/BZ
7166------------------------------------------------------------------
7167        Bra
7168        \D*
7169        \D
7170        Ket
7171        End
7172------------------------------------------------------------------
7173
7174/\D*\s/BZ
7175------------------------------------------------------------------
7176        Bra
7177        \D*
7178        \s
7179        Ket
7180        End
7181------------------------------------------------------------------
7182
7183/\D*\S/BZ
7184------------------------------------------------------------------
7185        Bra
7186        \D*
7187        \S
7188        Ket
7189        End
7190------------------------------------------------------------------
7191
7192/\D*\w/BZ
7193------------------------------------------------------------------
7194        Bra
7195        \D*
7196        \w
7197        Ket
7198        End
7199------------------------------------------------------------------
7200
7201/\D*\W/BZ
7202------------------------------------------------------------------
7203        Bra
7204        \D*
7205        \W
7206        Ket
7207        End
7208------------------------------------------------------------------
7209
7210/\s*a/BZ
7211------------------------------------------------------------------
7212        Bra
7213        \s*+
7214        a
7215        Ket
7216        End
7217------------------------------------------------------------------
7218
7219/\s*2/BZ
7220------------------------------------------------------------------
7221        Bra
7222        \s*+
7223        2
7224        Ket
7225        End
7226------------------------------------------------------------------
7227
7228/\s*\d/BZ
7229------------------------------------------------------------------
7230        Bra
7231        \s*+
7232        \d
7233        Ket
7234        End
7235------------------------------------------------------------------
7236
7237/\s*\D/BZ
7238------------------------------------------------------------------
7239        Bra
7240        \s*
7241        \D
7242        Ket
7243        End
7244------------------------------------------------------------------
7245
7246/\s*\s/BZ
7247------------------------------------------------------------------
7248        Bra
7249        \s*
7250        \s
7251        Ket
7252        End
7253------------------------------------------------------------------
7254
7255/\s*\S/BZ
7256------------------------------------------------------------------
7257        Bra
7258        \s*+
7259        \S
7260        Ket
7261        End
7262------------------------------------------------------------------
7263
7264/\s*\w/BZ
7265------------------------------------------------------------------
7266        Bra
7267        \s*+
7268        \w
7269        Ket
7270        End
7271------------------------------------------------------------------
7272
7273/\s*\W/BZ
7274------------------------------------------------------------------
7275        Bra
7276        \s*
7277        \W
7278        Ket
7279        End
7280------------------------------------------------------------------
7281
7282/\S*a/BZ
7283------------------------------------------------------------------
7284        Bra
7285        \S*
7286        a
7287        Ket
7288        End
7289------------------------------------------------------------------
7290
7291/\S*2/BZ
7292------------------------------------------------------------------
7293        Bra
7294        \S*
7295        2
7296        Ket
7297        End
7298------------------------------------------------------------------
7299
7300/\S*\d/BZ
7301------------------------------------------------------------------
7302        Bra
7303        \S*
7304        \d
7305        Ket
7306        End
7307------------------------------------------------------------------
7308
7309/\S*\D/BZ
7310------------------------------------------------------------------
7311        Bra
7312        \S*
7313        \D
7314        Ket
7315        End
7316------------------------------------------------------------------
7317
7318/\S*\s/BZ
7319------------------------------------------------------------------
7320        Bra
7321        \S*+
7322        \s
7323        Ket
7324        End
7325------------------------------------------------------------------
7326
7327/\S*\S/BZ
7328------------------------------------------------------------------
7329        Bra
7330        \S*
7331        \S
7332        Ket
7333        End
7334------------------------------------------------------------------
7335
7336/\S*\w/BZ
7337------------------------------------------------------------------
7338        Bra
7339        \S*
7340        \w
7341        Ket
7342        End
7343------------------------------------------------------------------
7344
7345/\S*\W/BZ
7346------------------------------------------------------------------
7347        Bra
7348        \S*
7349        \W
7350        Ket
7351        End
7352------------------------------------------------------------------
7353
7354/\w*a/BZ
7355------------------------------------------------------------------
7356        Bra
7357        \w*
7358        a
7359        Ket
7360        End
7361------------------------------------------------------------------
7362
7363/\w*2/BZ
7364------------------------------------------------------------------
7365        Bra
7366        \w*
7367        2
7368        Ket
7369        End
7370------------------------------------------------------------------
7371
7372/\w*\d/BZ
7373------------------------------------------------------------------
7374        Bra
7375        \w*
7376        \d
7377        Ket
7378        End
7379------------------------------------------------------------------
7380
7381/\w*\D/BZ
7382------------------------------------------------------------------
7383        Bra
7384        \w*
7385        \D
7386        Ket
7387        End
7388------------------------------------------------------------------
7389
7390/\w*\s/BZ
7391------------------------------------------------------------------
7392        Bra
7393        \w*+
7394        \s
7395        Ket
7396        End
7397------------------------------------------------------------------
7398
7399/\w*\S/BZ
7400------------------------------------------------------------------
7401        Bra
7402        \w*
7403        \S
7404        Ket
7405        End
7406------------------------------------------------------------------
7407
7408/\w*\w/BZ
7409------------------------------------------------------------------
7410        Bra
7411        \w*
7412        \w
7413        Ket
7414        End
7415------------------------------------------------------------------
7416
7417/\w*\W/BZ
7418------------------------------------------------------------------
7419        Bra
7420        \w*+
7421        \W
7422        Ket
7423        End
7424------------------------------------------------------------------
7425
7426/\W*a/BZ
7427------------------------------------------------------------------
7428        Bra
7429        \W*+
7430        a
7431        Ket
7432        End
7433------------------------------------------------------------------
7434
7435/\W*2/BZ
7436------------------------------------------------------------------
7437        Bra
7438        \W*+
7439        2
7440        Ket
7441        End
7442------------------------------------------------------------------
7443
7444/\W*\d/BZ
7445------------------------------------------------------------------
7446        Bra
7447        \W*+
7448        \d
7449        Ket
7450        End
7451------------------------------------------------------------------
7452
7453/\W*\D/BZ
7454------------------------------------------------------------------
7455        Bra
7456        \W*
7457        \D
7458        Ket
7459        End
7460------------------------------------------------------------------
7461
7462/\W*\s/BZ
7463------------------------------------------------------------------
7464        Bra
7465        \W*
7466        \s
7467        Ket
7468        End
7469------------------------------------------------------------------
7470
7471/\W*\S/BZ
7472------------------------------------------------------------------
7473        Bra
7474        \W*
7475        \S
7476        Ket
7477        End
7478------------------------------------------------------------------
7479
7480/\W*\w/BZ
7481------------------------------------------------------------------
7482        Bra
7483        \W*+
7484        \w
7485        Ket
7486        End
7487------------------------------------------------------------------
7488
7489/\W*\W/BZ
7490------------------------------------------------------------------
7491        Bra
7492        \W*
7493        \W
7494        Ket
7495        End
7496------------------------------------------------------------------
7497
7498/[^a]+a/BZ
7499------------------------------------------------------------------
7500        Bra
7501        [^a]++
7502        a
7503        Ket
7504        End
7505------------------------------------------------------------------
7506
7507/[^a]+a/BZi
7508------------------------------------------------------------------
7509        Bra
7510     /i [^a]++
7511     /i a
7512        Ket
7513        End
7514------------------------------------------------------------------
7515
7516/[^a]+A/BZi
7517------------------------------------------------------------------
7518        Bra
7519     /i [^a]++
7520     /i A
7521        Ket
7522        End
7523------------------------------------------------------------------
7524
7525/[^a]+b/BZ
7526------------------------------------------------------------------
7527        Bra
7528        [^a]+
7529        b
7530        Ket
7531        End
7532------------------------------------------------------------------
7533
7534/[^a]+\d/BZ
7535------------------------------------------------------------------
7536        Bra
7537        [^a]+
7538        \d
7539        Ket
7540        End
7541------------------------------------------------------------------
7542
7543/a*[^a]/BZ
7544------------------------------------------------------------------
7545        Bra
7546        a*+
7547        [^a]
7548        Ket
7549        End
7550------------------------------------------------------------------
7551
7552/(?P<abc>x)(?P<xyz>y)/I
7553Capturing subpattern count = 2
7554Named capturing subpatterns:
7555  abc   1
7556  xyz   2
7557No options
7558First char = 'x'
7559Need char = 'y'
7560    xy\Cabc\Cxyz
7561 0: xy
7562 1: x
7563 2: y
7564  C x (1) abc
7565  C y (1) xyz
7566
7567/(?<abc>x)(?'xyz'y)/I
7568Capturing subpattern count = 2
7569Named capturing subpatterns:
7570  abc   1
7571  xyz   2
7572No options
7573First char = 'x'
7574Need char = 'y'
7575    xy\Cabc\Cxyz
7576 0: xy
7577 1: x
7578 2: y
7579  C x (1) abc
7580  C y (1) xyz
7581
7582/(?<abc'x)(?'xyz'y)/I
7583Failed: syntax error in subpattern name (missing terminator) at offset 6
7584
7585/(?<abc>x)(?'xyz>y)/I
7586Failed: syntax error in subpattern name (missing terminator) at offset 15
7587
7588/(?P'abc'x)(?P<xyz>y)/I
7589Failed: unrecognized character after (?P at offset 3
7590
7591/^(?:(?(ZZ)a|b)(?<ZZ>X))+/
7592    bXaX
7593 0: bXaX
7594 1: X
7595    bXbX
7596 0: bX
7597 1: X
7598    ** Failers
7599No match
7600    aXaX
7601No match
7602    aXbX
7603No match
7604
7605/^(?P>abc)(?<abcd>xxx)/
7606Failed: reference to non-existent subpattern at offset 8
7607
7608/^(?P>abc)(?<abc>x|y)/
7609    xx
7610 0: xx
7611 1: x
7612    xy
7613 0: xy
7614 1: y
7615    yy
7616 0: yy
7617 1: y
7618    yx
7619 0: yx
7620 1: x
7621
7622/^(?P>abc)(?P<abc>x|y)/
7623    xx
7624 0: xx
7625 1: x
7626    xy
7627 0: xy
7628 1: y
7629    yy
7630 0: yy
7631 1: y
7632    yx
7633 0: yx
7634 1: x
7635
7636/^((?(abc)a|b)(?<abc>x|y))+/
7637    bxay
7638 0: bxay
7639 1: ay
7640 2: y
7641    bxby
7642 0: bx
7643 1: bx
7644 2: x
7645    ** Failers
7646No match
7647    axby
7648No match
7649
7650/^(((?P=abc)|X)(?<abc>x|y))+/
7651    XxXxxx
7652 0: XxXxxx
7653 1: xx
7654 2: x
7655 3: x
7656    XxXyyx
7657 0: XxXyyx
7658 1: yx
7659 2: y
7660 3: x
7661    XxXyxx
7662 0: XxXy
7663 1: Xy
7664 2: X
7665 3: y
7666    ** Failers
7667No match
7668    x
7669No match
7670
7671/^(?1)(abc)/
7672    abcabc
7673 0: abcabc
7674 1: abc
7675
7676/^(?:(?:\1|X)(a|b))+/
7677    Xaaa
7678 0: Xaaa
7679 1: a
7680    Xaba
7681 0: Xa
7682 1: a
7683
7684/^[\E\Qa\E-\Qz\E]+/BZ
7685------------------------------------------------------------------
7686        Bra
7687        ^
7688        [a-z]++
7689        Ket
7690        End
7691------------------------------------------------------------------
7692
7693/^[a\Q]bc\E]/BZ
7694------------------------------------------------------------------
7695        Bra
7696        ^
7697        [\]a-c]
7698        Ket
7699        End
7700------------------------------------------------------------------
7701
7702/^[a-\Q\E]/BZ
7703------------------------------------------------------------------
7704        Bra
7705        ^
7706        [\-a]
7707        Ket
7708        End
7709------------------------------------------------------------------
7710
7711/^(?P>abc)[()](?<abc>)/BZ
7712------------------------------------------------------------------
7713        Bra
7714        ^
7715        Recurse
7716        [()]
7717        CBra 1
7718        Ket
7719        Ket
7720        End
7721------------------------------------------------------------------
7722
7723/^((?(abc)y)[()](?P<abc>x))+/BZ
7724------------------------------------------------------------------
7725        Bra
7726        ^
7727        CBra 1
7728        Cond
7729      2 Cond ref
7730        y
7731        Ket
7732        [()]
7733        CBra 2
7734        x
7735        Ket
7736        KetRmax
7737        Ket
7738        End
7739------------------------------------------------------------------
7740    (xy)x
7741 0: (xy)x
7742 1: y)x
7743 2: x
7744
7745/^(?P>abc)\Q()\E(?<abc>)/BZ
7746------------------------------------------------------------------
7747        Bra
7748        ^
7749        Recurse
7750        ()
7751        CBra 1
7752        Ket
7753        Ket
7754        End
7755------------------------------------------------------------------
7756
7757/^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
7758------------------------------------------------------------------
7759        Bra
7760        ^
7761        Recurse
7762        [(\]a]
7763        CBra 1
7764        Ket
7765        Ket
7766        End
7767------------------------------------------------------------------
7768
7769/^(?P>abc) # this is (a comment)
7770  (?<abc>)/BZx
7771------------------------------------------------------------------
7772        Bra
7773        ^
7774        Recurse
7775        CBra 1
7776        Ket
7777        Ket
7778        End
7779------------------------------------------------------------------
7780
7781/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
7782Capturing subpattern count = 4
7783Max back reference = 4
7784Named capturing subpatterns:
7785  four    4
7786  one     1
7787  three   3
7788  two     2
7789May match empty string
7790Options: anchored caseless
7791No first char
7792No need char
7793    1221
7794 0: 1221
7795 1: 1221
7796 2: 1
7797    Satan, oscillate my metallic sonatas!
7798 0: Satan, oscillate my metallic sonatas!
7799 1: <unset>
7800 2: <unset>
7801 3: Satan, oscillate my metallic sonatas
7802 4: S
7803    A man, a plan, a canal: Panama!
7804 0: A man, a plan, a canal: Panama!
7805 1: <unset>
7806 2: <unset>
7807 3: A man, a plan, a canal: Panama
7808 4: A
7809    Able was I ere I saw Elba.
7810 0: Able was I ere I saw Elba.
7811 1: <unset>
7812 2: <unset>
7813 3: Able was I ere I saw Elba
7814 4: A
7815    *** Failers
7816No match
7817    The quick brown fox
7818No match
7819
7820/(?=(\w+))\1:/I
7821Capturing subpattern count = 1
7822Max back reference = 1
7823No options
7824No first char
7825Need char = ':'
7826    abcd:
7827 0: abcd:
7828 1: abcd
7829
7830/(?=(?'abc'\w+))\k<abc>:/I
7831Capturing subpattern count = 1
7832Max back reference = 1
7833Named capturing subpatterns:
7834  abc   1
7835No options
7836No first char
7837Need char = ':'
7838    abcd:
7839 0: abcd:
7840 1: abcd
7841
7842/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7843    adaa
7844 0: adaa
7845 1: a
7846 2: d
7847    ** Failers
7848No match
7849    addd
7850No match
7851    adbb
7852No match
7853
7854/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
7855    bdaa
7856 0: bdaa
7857 1: b
7858 2: d
7859    bdab
7860 0: bdab
7861 1: b
7862 2: d
7863    ** Failers
7864No match
7865    bddd
7866No match
7867
7868/(?(<bc))/
7869Failed: malformed number or name after (?( at offset 6
7870
7871/(?(''))/
7872Failed: assertion expected after (?( or (?(?C) at offset 4
7873
7874/(?('R')stuff)/
7875Failed: reference to non-existent subpattern at offset 7
7876
7877/((abc (?(R) (?(R1)1) (?(R2)2) X  |  (?1)  (?2)   (?R) ))) /x
7878    abcabc1Xabc2XabcXabcabc
7879 0: abcabc1Xabc2XabcX
7880 1: abcabc1Xabc2XabcX
7881 2: abcabc1Xabc2XabcX
7882
7883/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
7884    abcabc1Xabc2XabcXabcabc
7885 0: abcabc1Xabc2XabcX
7886 1: abcabc1Xabc2XabcX
7887 2: abcabc1Xabc2XabcX
7888
7889/(?<A> (?'B' abc (?(R) (?(R&C)1) (?(R&B)2) X  |  (?1)  (?2)   (?R) ))) /x
7890Failed: reference to non-existent subpattern at offset 29
7891
7892/^(?(DEFINE) abc | xyz ) /x
7893Failed: DEFINE group contains more than one branch at offset 22
7894
7895/(?(DEFINE) abc) xyz/xI
7896Capturing subpattern count = 0
7897Options: extended
7898First char = 'x'
7899Need char = 'z'
7900
7901/(a|)*\d/
7902  \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7903No match
7904  \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
7905Matched, but too many substrings
7906
7907/^a.b/<lf>
7908    a\rb
7909 0: a\x0db
7910    a\nb\<cr>
7911 0: a\x0ab
7912    a\x85b\<anycrlf>
7913 0: a\x85b
7914    ** Failers
7915No match
7916    a\nb
7917No match
7918    a\nb\<any>
7919No match
7920    a\rb\<cr>
7921No match
7922    a\rb\<any>
7923No match
7924    a\x85b\<any>
7925No match
7926    a\rb\<anycrlf>
7927No match
7928
7929/^abc./mgx<any>
7930    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7931 0: abc1
7932 0: abc2
7933 0: abc3
7934 0: abc4
7935 0: abc5
7936 0: abc6
7937 0: abc7
7938
7939/abc.$/mgx<any>
7940    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7941 0: abc1
7942 0: abc2
7943 0: abc3
7944 0: abc4
7945 0: abc5
7946 0: abc6
7947 0: abc9
7948
7949/a/<cr><any>
7950
7951/a/<any><crlf>
7952Failed: inconsistent NEWLINE options at offset 0
7953
7954/^a\Rb/<bsr_unicode>
7955    a\nb
7956 0: a\x0ab
7957    a\rb
7958 0: a\x0db
7959    a\r\nb
7960 0: a\x0d\x0ab
7961    a\x0bb
7962 0: a\x0bb
7963    a\x0cb
7964 0: a\x0cb
7965    a\x85b
7966 0: a\x85b
7967    ** Failers
7968No match
7969    a\n\rb
7970No match
7971
7972/^a\R*b/<bsr_unicode>
7973    ab
7974 0: ab
7975    a\nb
7976 0: a\x0ab
7977    a\rb
7978 0: a\x0db
7979    a\r\nb
7980 0: a\x0d\x0ab
7981    a\x0bb
7982 0: a\x0bb
7983    a\x0cb
7984 0: a\x0cb
7985    a\x85b
7986 0: a\x85b
7987    a\n\rb
7988 0: a\x0a\x0db
7989    a\n\r\x85\x0cb
7990 0: a\x0a\x0d\x85\x0cb
7991
7992/^a\R+b/<bsr_unicode>
7993    a\nb
7994 0: a\x0ab
7995    a\rb
7996 0: a\x0db
7997    a\r\nb
7998 0: a\x0d\x0ab
7999    a\x0bb
8000 0: a\x0bb
8001    a\x0cb
8002 0: a\x0cb
8003    a\x85b
8004 0: a\x85b
8005    a\n\rb
8006 0: a\x0a\x0db
8007    a\n\r\x85\x0cb
8008 0: a\x0a\x0d\x85\x0cb
8009    ** Failers
8010No match
8011    ab
8012No match
8013
8014/^a\R{1,3}b/<bsr_unicode>
8015    a\nb
8016 0: a\x0ab
8017    a\n\rb
8018 0: a\x0a\x0db
8019    a\n\r\x85b
8020 0: a\x0a\x0d\x85b
8021    a\r\n\r\nb
8022 0: a\x0d\x0a\x0d\x0ab
8023    a\r\n\r\n\r\nb
8024 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
8025    a\n\r\n\rb
8026 0: a\x0a\x0d\x0a\x0db
8027    a\n\n\r\nb
8028 0: a\x0a\x0a\x0d\x0ab
8029    ** Failers
8030No match
8031    a\n\n\n\rb
8032No match
8033    a\r
8034No match
8035
8036/^a[\R]b/<bsr_unicode>
8037    aRb
8038 0: aRb
8039    ** Failers
8040No match
8041    a\nb
8042No match
8043
8044/(?&abc)X(?<abc>P)/I
8045Capturing subpattern count = 1
8046Named capturing subpatterns:
8047  abc   1
8048No options
8049No first char
8050Need char = 'P'
8051    abcPXP123
8052 0: PXP
8053 1: P
8054
8055/(?1)X(?<abc>P)/I
8056Capturing subpattern count = 1
8057Named capturing subpatterns:
8058  abc   1
8059No options
8060No first char
8061Need char = 'P'
8062    abcPXP123
8063 0: PXP
8064 1: P
8065
8066/(?:a(?&abc)b)*(?<abc>x)/
8067    123axbaxbaxbx456
8068 0: axbaxbaxbx
8069 1: x
8070    123axbaxbaxb456
8071 0: x
8072 1: x
8073
8074/(?:a(?&abc)b){1,5}(?<abc>x)/
8075    123axbaxbaxbx456
8076 0: axbaxbaxbx
8077 1: x
8078
8079/(?:a(?&abc)b){2,5}(?<abc>x)/
8080    123axbaxbaxbx456
8081 0: axbaxbaxbx
8082 1: x
8083
8084/(?:a(?&abc)b){2,}(?<abc>x)/
8085    123axbaxbaxbx456
8086 0: axbaxbaxbx
8087 1: x
8088
8089/(abc)(?i:(?1))/
8090   defabcabcxyz
8091 0: abcabc
8092 1: abc
8093   DEFabcABCXYZ
8094No match
8095
8096/(abc)(?:(?i)(?1))/
8097   defabcabcxyz
8098 0: abcabc
8099 1: abc
8100   DEFabcABCXYZ
8101No match
8102
8103/^(a)\g-2/
8104Failed: reference to non-existent subpattern at offset 7
8105
8106/^(a)\g/
8107Failed: a numbered reference must not be zero at offset 5
8108
8109/^(a)\g{0}/
8110Failed: a numbered reference must not be zero at offset 8
8111
8112/^(a)\g{3/
8113Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8114
8115/^(a)\g{aa}/
8116Failed: reference to non-existent subpattern at offset 9
8117
8118/^a.b/<lf>
8119    a\rb
8120 0: a\x0db
8121    *** Failers
8122No match
8123    a\nb
8124No match
8125
8126/.+foo/
8127    afoo
8128 0: afoo
8129    ** Failers
8130No match
8131    \r\nfoo
8132No match
8133    \nfoo
8134No match
8135
8136/.+foo/<crlf>
8137    afoo
8138 0: afoo
8139    \nfoo
8140 0: \x0afoo
8141    ** Failers
8142No match
8143    \r\nfoo
8144No match
8145
8146/.+foo/<any>
8147    afoo
8148 0: afoo
8149    ** Failers
8150No match
8151    \nfoo
8152No match
8153    \r\nfoo
8154No match
8155
8156/.+foo/s
8157    afoo
8158 0: afoo
8159    \r\nfoo
8160 0: \x0d\x0afoo
8161    \nfoo
8162 0: \x0afoo
8163
8164/^$/mg<any>
8165    abc\r\rxyz
8166 0:
8167    abc\n\rxyz
8168 0:
8169    ** Failers
8170No match
8171    abc\r\nxyz
8172No match
8173
8174/(?m)^$/<any>g+
8175    abc\r\n\r\n
8176 0:
8177 0+ \x0d\x0a
8178
8179/(?m)^$|^\r\n/<any>g+
8180    abc\r\n\r\n
8181 0:
8182 0+ \x0d\x0a
8183 0: \x0d\x0a
8184 0+
8185
8186/(?m)$/<any>g+
8187    abc\r\n\r\n
8188 0:
8189 0+ \x0d\x0a\x0d\x0a
8190 0:
8191 0+ \x0d\x0a
8192 0:
8193 0+
8194
8195/abc.$/mgx<anycrlf>
8196    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
8197 0: abc1
8198 0: abc4
8199 0: abc5
8200 0: abc9
8201
8202/^X/m
8203    XABC
8204 0: X
8205    ** Failers
8206No match
8207    XABC\B
8208No match
8209
8210/(ab|c)(?-1)/BZ
8211------------------------------------------------------------------
8212        Bra
8213        CBra 1
8214        ab
8215        Alt
8216        c
8217        Ket
8218        Recurse
8219        Ket
8220        End
8221------------------------------------------------------------------
8222    abc
8223 0: abc
8224 1: ab
8225
8226/xy(?+1)(abc)/BZ
8227------------------------------------------------------------------
8228        Bra
8229        xy
8230        Recurse
8231        CBra 1
8232        abc
8233        Ket
8234        Ket
8235        End
8236------------------------------------------------------------------
8237    xyabcabc
8238 0: xyabcabc
8239 1: abc
8240    ** Failers
8241No match
8242    xyabc
8243No match
8244
8245/x(?-0)y/
8246Failed: a numbered reference must not be zero at offset 5
8247
8248/x(?-1)y/
8249Failed: reference to non-existent subpattern at offset 5
8250
8251/x(?+0)y/
8252Failed: a numbered reference must not be zero at offset 5
8253
8254/x(?+1)y/
8255Failed: reference to non-existent subpattern at offset 5
8256
8257/^(abc)?(?(-1)X|Y)/BZ
8258------------------------------------------------------------------
8259        Bra
8260        ^
8261        Brazero
8262        CBra 1
8263        abc
8264        Ket
8265        Cond
8266      1 Cond ref
8267        X
8268        Alt
8269        Y
8270        Ket
8271        Ket
8272        End
8273------------------------------------------------------------------
8274    abcX
8275 0: abcX
8276 1: abc
8277    Y
8278 0: Y
8279    ** Failers
8280No match
8281    abcY
8282No match
8283
8284/^((?(+1)X|Y)(abc))+/BZ
8285------------------------------------------------------------------
8286        Bra
8287        ^
8288        CBra 1
8289        Cond
8290      2 Cond ref
8291        X
8292        Alt
8293        Y
8294        Ket
8295        CBra 2
8296        abc
8297        Ket
8298        KetRmax
8299        Ket
8300        End
8301------------------------------------------------------------------
8302    YabcXabc
8303 0: YabcXabc
8304 1: Xabc
8305 2: abc
8306    YabcXabcXabc
8307 0: YabcXabcXabc
8308 1: Xabc
8309 2: abc
8310    ** Failers
8311No match
8312    XabcXabc
8313No match
8314
8315/(?(-1)a)/BZ
8316Failed: reference to non-existent subpattern at offset 6
8317
8318/((?(-1)a))/BZ
8319------------------------------------------------------------------
8320        Bra
8321        CBra 1
8322        Cond
8323      1 Cond ref
8324        a
8325        Ket
8326        Ket
8327        Ket
8328        End
8329------------------------------------------------------------------
8330
8331/((?(-2)a))/BZ
8332Failed: reference to non-existent subpattern at offset 7
8333
8334/^(?(+1)X|Y)(.)/BZ
8335------------------------------------------------------------------
8336        Bra
8337        ^
8338        Cond
8339      1 Cond ref
8340        X
8341        Alt
8342        Y
8343        Ket
8344        CBra 1
8345        Any
8346        Ket
8347        Ket
8348        End
8349------------------------------------------------------------------
8350    Y!
8351 0: Y!
8352 1: !
8353
8354/(?<A>tom|bon)-\k{A}/
8355    tom-tom
8356 0: tom-tom
8357 1: tom
8358    bon-bon
8359 0: bon-bon
8360 1: bon
8361    ** Failers
8362No match
8363    tom-bon
8364No match
8365
8366/\g{A/
8367Failed: syntax error in subpattern name (missing terminator) at offset 4
8368
8369/(?|(abc)|(xyz))/BZ
8370------------------------------------------------------------------
8371        Bra
8372        Bra
8373        CBra 1
8374        abc
8375        Ket
8376        Alt
8377        CBra 1
8378        xyz
8379        Ket
8380        Ket
8381        Ket
8382        End
8383------------------------------------------------------------------
8384   >abc<
8385 0: abc
8386 1: abc
8387   >xyz<
8388 0: xyz
8389 1: xyz
8390
8391/(x)(?|(abc)|(xyz))(x)/BZ
8392------------------------------------------------------------------
8393        Bra
8394        CBra 1
8395        x
8396        Ket
8397        Bra
8398        CBra 2
8399        abc
8400        Ket
8401        Alt
8402        CBra 2
8403        xyz
8404        Ket
8405        Ket
8406        CBra 3
8407        x
8408        Ket
8409        Ket
8410        End
8411------------------------------------------------------------------
8412    xabcx
8413 0: xabcx
8414 1: x
8415 2: abc
8416 3: x
8417    xxyzx
8418 0: xxyzx
8419 1: x
8420 2: xyz
8421 3: x
8422
8423/(x)(?|(abc)(pqr)|(xyz))(x)/BZ
8424------------------------------------------------------------------
8425        Bra
8426        CBra 1
8427        x
8428        Ket
8429        Bra
8430        CBra 2
8431        abc
8432        Ket
8433        CBra 3
8434        pqr
8435        Ket
8436        Alt
8437        CBra 2
8438        xyz
8439        Ket
8440        Ket
8441        CBra 4
8442        x
8443        Ket
8444        Ket
8445        End
8446------------------------------------------------------------------
8447    xabcpqrx
8448 0: xabcpqrx
8449 1: x
8450 2: abc
8451 3: pqr
8452 4: x
8453    xxyzx
8454 0: xxyzx
8455 1: x
8456 2: xyz
8457 3: <unset>
8458 4: x
8459
8460/\H++X/BZ
8461------------------------------------------------------------------
8462        Bra
8463        \H++
8464        X
8465        Ket
8466        End
8467------------------------------------------------------------------
8468    ** Failers
8469No match
8470    XXXX
8471No match
8472
8473/\H+\hY/BZ
8474------------------------------------------------------------------
8475        Bra
8476        \H++
8477        \h
8478        Y
8479        Ket
8480        End
8481------------------------------------------------------------------
8482    XXXX Y
8483 0: XXXX Y
8484
8485/\H+ Y/BZ
8486------------------------------------------------------------------
8487        Bra
8488        \H++
8489         Y
8490        Ket
8491        End
8492------------------------------------------------------------------
8493
8494/\h+A/BZ
8495------------------------------------------------------------------
8496        Bra
8497        \h++
8498        A
8499        Ket
8500        End
8501------------------------------------------------------------------
8502
8503/\v*B/BZ
8504------------------------------------------------------------------
8505        Bra
8506        \v*+
8507        B
8508        Ket
8509        End
8510------------------------------------------------------------------
8511
8512/\V+\x0a/BZ
8513------------------------------------------------------------------
8514        Bra
8515        \V++
8516        \x0a
8517        Ket
8518        End
8519------------------------------------------------------------------
8520
8521/A+\h/BZ
8522------------------------------------------------------------------
8523        Bra
8524        A++
8525        \h
8526        Ket
8527        End
8528------------------------------------------------------------------
8529
8530/ *\H/BZ
8531------------------------------------------------------------------
8532        Bra
8533         *+
8534        \H
8535        Ket
8536        End
8537------------------------------------------------------------------
8538
8539/A*\v/BZ
8540------------------------------------------------------------------
8541        Bra
8542        A*+
8543        \v
8544        Ket
8545        End
8546------------------------------------------------------------------
8547
8548/\x0b*\V/BZ
8549------------------------------------------------------------------
8550        Bra
8551        \x0b*+
8552        \V
8553        Ket
8554        End
8555------------------------------------------------------------------
8556
8557/\d+\h/BZ
8558------------------------------------------------------------------
8559        Bra
8560        \d++
8561        \h
8562        Ket
8563        End
8564------------------------------------------------------------------
8565
8566/\d*\v/BZ
8567------------------------------------------------------------------
8568        Bra
8569        \d*+
8570        \v
8571        Ket
8572        End
8573------------------------------------------------------------------
8574
8575/S+\h\S+\v/BZ
8576------------------------------------------------------------------
8577        Bra
8578        S++
8579        \h
8580        \S++
8581        \v
8582        Ket
8583        End
8584------------------------------------------------------------------
8585
8586/\w{3,}\h\w+\v/BZ
8587------------------------------------------------------------------
8588        Bra
8589        \w{3}
8590        \w*+
8591        \h
8592        \w++
8593        \v
8594        Ket
8595        End
8596------------------------------------------------------------------
8597
8598/\h+\d\h+\w\h+\S\h+\H/BZ
8599------------------------------------------------------------------
8600        Bra
8601        \h++
8602        \d
8603        \h++
8604        \w
8605        \h++
8606        \S
8607        \h++
8608        \H
8609        Ket
8610        End
8611------------------------------------------------------------------
8612
8613/\v+\d\v+\w\v+\S\v+\V/BZ
8614------------------------------------------------------------------
8615        Bra
8616        \v++
8617        \d
8618        \v++
8619        \w
8620        \v++
8621        \S
8622        \v++
8623        \V
8624        Ket
8625        End
8626------------------------------------------------------------------
8627
8628/\H+\h\H+\d/BZ
8629------------------------------------------------------------------
8630        Bra
8631        \H++
8632        \h
8633        \H+
8634        \d
8635        Ket
8636        End
8637------------------------------------------------------------------
8638
8639/\V+\v\V+\w/BZ
8640------------------------------------------------------------------
8641        Bra
8642        \V++
8643        \v
8644        \V+
8645        \w
8646        Ket
8647        End
8648------------------------------------------------------------------
8649
8650/\( (?: [^()]* | (?R) )* \)/x
8651\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)
8652 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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
8654/[\E]AAA/
8655Failed: missing terminating ] for character class at offset 7
8656
8657/[\Q\E]AAA/
8658Failed: missing terminating ] for character class at offset 9
8659
8660/[^\E]AAA/
8661Failed: missing terminating ] for character class at offset 8
8662
8663/[^\Q\E]AAA/
8664Failed: missing terminating ] for character class at offset 10
8665
8666/[\E^]AAA/
8667Failed: missing terminating ] for character class at offset 8
8668
8669/[\Q\E^]AAA/
8670Failed: missing terminating ] for character class at offset 10
8671
8672/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
8673------------------------------------------------------------------
8674        Bra
8675        A
8676        *PRUNE
8677        B
8678        *SKIP
8679        C
8680        *THEN
8681        D
8682        *COMMIT
8683        E
8684        *FAIL
8685        F
8686        *FAIL
8687        G
8688        *FAIL
8689        H
8690        *ACCEPT
8691        I
8692        Ket
8693        End
8694------------------------------------------------------------------
8695
8696/^a+(*FAIL)/C
8697    aaaaaa
8698--->aaaaaa
8699 +0 ^          ^
8700 +1 ^          a+
8701 +3 ^     ^    (*FAIL)
8702 +3 ^    ^     (*FAIL)
8703 +3 ^   ^      (*FAIL)
8704 +3 ^  ^       (*FAIL)
8705 +3 ^ ^        (*FAIL)
8706 +3 ^^         (*FAIL)
8707No match
8708
8709/a+b?c+(*FAIL)/C
8710    aaabccc
8711--->aaabccc
8712 +0 ^           a+
8713 +2 ^  ^        b?
8714 +4 ^   ^       c+
8715 +6 ^      ^    (*FAIL)
8716 +6 ^     ^     (*FAIL)
8717 +6 ^    ^      (*FAIL)
8718 +0  ^          a+
8719 +2  ^ ^        b?
8720 +4  ^  ^       c+
8721 +6  ^     ^    (*FAIL)
8722 +6  ^    ^     (*FAIL)
8723 +6  ^   ^      (*FAIL)
8724 +0   ^         a+
8725 +2   ^^        b?
8726 +4   ^ ^       c+
8727 +6   ^    ^    (*FAIL)
8728 +6   ^   ^     (*FAIL)
8729 +6   ^  ^      (*FAIL)
8730No match
8731
8732/a+b?(*PRUNE)c+(*FAIL)/C
8733    aaabccc
8734--->aaabccc
8735 +0 ^           a+
8736 +2 ^  ^        b?
8737 +4 ^   ^       (*PRUNE)
8738+12 ^   ^       c+
8739+14 ^      ^    (*FAIL)
8740+14 ^     ^     (*FAIL)
8741+14 ^    ^      (*FAIL)
8742 +0  ^          a+
8743 +2  ^ ^        b?
8744 +4  ^  ^       (*PRUNE)
8745+12  ^  ^       c+
8746+14  ^     ^    (*FAIL)
8747+14  ^    ^     (*FAIL)
8748+14  ^   ^      (*FAIL)
8749 +0   ^         a+
8750 +2   ^^        b?
8751 +4   ^ ^       (*PRUNE)
8752+12   ^ ^       c+
8753+14   ^    ^    (*FAIL)
8754+14   ^   ^     (*FAIL)
8755+14   ^  ^      (*FAIL)
8756No match
8757
8758/a+b?(*COMMIT)c+(*FAIL)/C
8759    aaabccc
8760--->aaabccc
8761 +0 ^           a+
8762 +2 ^  ^        b?
8763 +4 ^   ^       (*COMMIT)
8764+13 ^   ^       c+
8765+15 ^      ^    (*FAIL)
8766+15 ^     ^     (*FAIL)
8767+15 ^    ^      (*FAIL)
8768No match
8769
8770/a+b?(*SKIP)c+(*FAIL)/C
8771    aaabcccaaabccc
8772--->aaabcccaaabccc
8773 +0 ^                  a+
8774 +2 ^  ^               b?
8775 +4 ^   ^              (*SKIP)
8776+11 ^   ^              c+
8777+13 ^      ^           (*FAIL)
8778+13 ^     ^            (*FAIL)
8779+13 ^    ^             (*FAIL)
8780 +0        ^           a+
8781 +2        ^  ^        b?
8782 +4        ^   ^       (*SKIP)
8783+11        ^   ^       c+
8784+13        ^      ^    (*FAIL)
8785+13        ^     ^     (*FAIL)
8786+13        ^    ^      (*FAIL)
8787No match
8788
8789/a+b?(*THEN)c+(*FAIL)/C
8790    aaabccc
8791--->aaabccc
8792 +0 ^           a+
8793 +2 ^  ^        b?
8794 +4 ^   ^       (*THEN)
8795+11 ^   ^       c+
8796+13 ^      ^    (*FAIL)
8797+13 ^     ^     (*FAIL)
8798+13 ^    ^      (*FAIL)
8799 +0  ^          a+
8800 +2  ^ ^        b?
8801 +4  ^  ^       (*THEN)
8802+11  ^  ^       c+
8803+13  ^     ^    (*FAIL)
8804+13  ^    ^     (*FAIL)
8805+13  ^   ^      (*FAIL)
8806 +0   ^         a+
8807 +2   ^^        b?
8808 +4   ^ ^       (*THEN)
8809+11   ^ ^       c+
8810+13   ^    ^    (*FAIL)
8811+13   ^   ^     (*FAIL)
8812+13   ^  ^      (*FAIL)
8813No match
8814
8815/a(*MARK)b/
8816Failed: (*MARK) must have an argument at offset 7
8817
8818/(?i:A{1,}\6666666666)/
8819Failed: number is too big at offset 19
8820
8821/\g6666666666/
8822Failed: number is too big at offset 11
8823
8824/[\g6666666666]/BZ
8825------------------------------------------------------------------
8826        Bra
8827        [6g]
8828        Ket
8829        End
8830------------------------------------------------------------------
8831
8832/(?1)\c[/
8833Failed: reference to non-existent subpattern at offset 3
8834
8835/.+A/<crlf>
8836    \r\nA
8837No match
8838
8839/\nA/<crlf>
8840    \r\nA
8841 0: \x0aA
8842
8843/[\r\n]A/<crlf>
8844    \r\nA
8845 0: \x0aA
8846
8847/(\r|\n)A/<crlf>
8848    \r\nA
8849 0: \x0aA
8850 1: \x0a
8851
8852/a(*CR)b/
8853Failed: (*VERB) not recognized or malformed at offset 5
8854
8855/(*CR)a.b/
8856    a\nb
8857 0: a\x0ab
8858    ** Failers
8859No match
8860    a\rb
8861No match
8862
8863/(*CR)a.b/<lf>
8864    a\nb
8865 0: a\x0ab
8866    ** Failers
8867No match
8868    a\rb
8869No match
8870
8871/(*LF)a.b/<CRLF>
8872    a\rb
8873 0: a\x0db
8874    ** Failers
8875No match
8876    a\nb
8877No match
8878
8879/(*CRLF)a.b/
8880    a\rb
8881 0: a\x0db
8882    a\nb
8883 0: a\x0ab
8884    ** Failers
8885No match
8886    a\r\nb
8887No match
8888
8889/(*ANYCRLF)a.b/<CR>
8890    ** Failers
8891No match
8892    a\rb
8893No match
8894    a\nb
8895No match
8896    a\r\nb
8897No match
8898
8899/(*ANY)a.b/<cr>
8900    ** Failers
8901No match
8902    a\rb
8903No match
8904    a\nb
8905No match
8906    a\r\nb
8907No match
8908    a\x85b
8909No match
8910
8911/(*ANY).*/g
8912    abc\r\ndef
8913 0: abc
8914 0:
8915 0: def
8916 0:
8917
8918/(*ANYCRLF).*/g
8919    abc\r\ndef
8920 0: abc
8921 0:
8922 0: def
8923 0:
8924
8925/(*CRLF).*/g
8926    abc\r\ndef
8927 0: abc
8928 0:
8929 0: def
8930 0:
8931
8932/a\Rb/I<bsr_anycrlf>
8933Capturing subpattern count = 0
8934Options: bsr_anycrlf
8935First char = 'a'
8936Need char = 'b'
8937    a\rb
8938 0: a\x0db
8939    a\nb
8940 0: a\x0ab
8941    a\r\nb
8942 0: a\x0d\x0ab
8943    ** Failers
8944No match
8945    a\x85b
8946No match
8947    a\x0bb
8948No match
8949
8950/a\Rb/I<bsr_unicode>
8951Capturing subpattern count = 0
8952Options: bsr_unicode
8953First char = 'a'
8954Need char = 'b'
8955    a\rb
8956 0: a\x0db
8957    a\nb
8958 0: a\x0ab
8959    a\r\nb
8960 0: a\x0d\x0ab
8961    a\x85b
8962 0: a\x85b
8963    a\x0bb
8964 0: a\x0bb
8965    ** Failers
8966No match
8967    a\x85b\<bsr_anycrlf>
8968No match
8969    a\x0bb\<bsr_anycrlf>
8970No match
8971
8972/a\R?b/I<bsr_anycrlf>
8973Capturing subpattern count = 0
8974Options: bsr_anycrlf
8975First char = 'a'
8976Need char = 'b'
8977    a\rb
8978 0: a\x0db
8979    a\nb
8980 0: a\x0ab
8981    a\r\nb
8982 0: a\x0d\x0ab
8983    ** Failers
8984No match
8985    a\x85b
8986No match
8987    a\x0bb
8988No match
8989
8990/a\R?b/I<bsr_unicode>
8991Capturing subpattern count = 0
8992Options: bsr_unicode
8993First char = 'a'
8994Need char = 'b'
8995    a\rb
8996 0: a\x0db
8997    a\nb
8998 0: a\x0ab
8999    a\r\nb
9000 0: a\x0d\x0ab
9001    a\x85b
9002 0: a\x85b
9003    a\x0bb
9004 0: a\x0bb
9005    ** Failers
9006No match
9007    a\x85b\<bsr_anycrlf>
9008No match
9009    a\x0bb\<bsr_anycrlf>
9010No match
9011
9012/a\R{2,4}b/I<bsr_anycrlf>
9013Capturing subpattern count = 0
9014Options: bsr_anycrlf
9015First char = 'a'
9016Need char = 'b'
9017    a\r\n\nb
9018 0: a\x0d\x0a\x0ab
9019    a\n\r\rb
9020 0: a\x0a\x0d\x0db
9021    a\r\n\r\n\r\n\r\nb
9022 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
9023    ** Failers
9024No match
9025    a\x85\85b
9026No match
9027    a\x0b\0bb
9028No match
9029
9030/a\R{2,4}b/I<bsr_unicode>
9031Capturing subpattern count = 0
9032Options: bsr_unicode
9033First char = 'a'
9034Need char = 'b'
9035    a\r\rb
9036 0: a\x0d\x0db
9037    a\n\n\nb
9038 0: a\x0a\x0a\x0ab
9039    a\r\n\n\r\rb
9040 0: a\x0d\x0a\x0a\x0d\x0db
9041    a\x85\85b
9042No match
9043    a\x0b\0bb
9044No match
9045    ** Failers
9046No match
9047    a\r\r\r\r\rb
9048No match
9049    a\x85\85b\<bsr_anycrlf>
9050No match
9051    a\x0b\0bb\<bsr_anycrlf>
9052No match
9053
9054/(*BSR_ANYCRLF)a\Rb/I
9055Capturing subpattern count = 0
9056Options: bsr_anycrlf
9057First char = 'a'
9058Need char = 'b'
9059    a\nb
9060 0: a\x0ab
9061    a\rb
9062 0: a\x0db
9063
9064/(*BSR_UNICODE)a\Rb/I
9065Capturing subpattern count = 0
9066Options: bsr_unicode
9067First char = 'a'
9068Need char = 'b'
9069    a\x85b
9070 0: a\x85b
9071
9072/(*BSR_ANYCRLF)(*CRLF)a\Rb/I
9073Capturing subpattern count = 0
9074Options: bsr_anycrlf
9075Forced newline sequence: CRLF
9076First char = 'a'
9077Need char = 'b'
9078    a\nb
9079 0: a\x0ab
9080    a\rb
9081 0: a\x0db
9082
9083/(*CRLF)(*BSR_UNICODE)a\Rb/I
9084Capturing subpattern count = 0
9085Options: bsr_unicode
9086Forced newline sequence: CRLF
9087First char = 'a'
9088Need char = 'b'
9089    a\x85b
9090 0: a\x85b
9091
9092/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
9093Capturing subpattern count = 0
9094Options: bsr_anycrlf
9095Forced newline sequence: CR
9096First char = 'a'
9097Need char = 'b'
9098
9099/(?<a>)(?&)/
9100Failed: subpattern name expected at offset 9
9101
9102/(?<abc>)(?&a)/
9103Failed: reference to non-existent subpattern at offset 12
9104
9105/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
9106Failed: reference to non-existent subpattern at offset 32
9107
9108/(?+-a)/
9109Failed: digit expected after (?+ at offset 3
9110
9111/(?-+a)/
9112Failed: unrecognized character after (? or (?- at offset 3
9113
9114/(?(-1))/
9115Failed: reference to non-existent subpattern at offset 6
9116
9117/(?(+10))/
9118Failed: reference to non-existent subpattern at offset 7
9119
9120/(?(10))/
9121Failed: reference to non-existent subpattern at offset 6
9122
9123/(?(+2))()()/
9124
9125/(?(2))()()/
9126
9127/\k''/
9128Failed: subpattern name expected at offset 3
9129
9130/\k<>/
9131Failed: subpattern name expected at offset 3
9132
9133/\k{}/
9134Failed: subpattern name expected at offset 3
9135
9136/\k/
9137Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1
9138
9139/\kabc/
9140Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 1
9141
9142/(?P=)/
9143Failed: subpattern name expected at offset 4
9144
9145/(?P>)/
9146Failed: subpattern name expected at offset 4
9147
9148/(?!\w)(?R)/
9149Failed: recursive call could loop indefinitely at offset 9
9150
9151/(?=\w)(?R)/
9152Failed: recursive call could loop indefinitely at offset 9
9153
9154/(?<!\w)(?R)/
9155Failed: recursive call could loop indefinitely at offset 10
9156
9157/(?<=\w)(?R)/
9158Failed: recursive call could loop indefinitely at offset 10
9159
9160/[[:foo:]]/
9161Failed: unknown POSIX class name at offset 3
9162
9163/[[:1234:]]/
9164Failed: unknown POSIX class name at offset 3
9165
9166/[[:f\oo:]]/
9167Failed: unknown POSIX class name at offset 3
9168
9169/[[: :]]/
9170Failed: unknown POSIX class name at offset 3
9171
9172/[[:...:]]/
9173Failed: unknown POSIX class name at offset 3
9174
9175/[[:l\ower:]]/
9176Failed: unknown POSIX class name at offset 3
9177
9178/[[:abc\:]]/
9179Failed: unknown POSIX class name at offset 3
9180
9181/[abc[:x\]pqr:]]/
9182Failed: unknown POSIX class name at offset 6
9183
9184/[[:a\dz:]]/
9185Failed: unknown POSIX class name at offset 3
9186
9187/(^(a|b\g<-1'c))/
9188Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
9189
9190/^(?+1)(?<a>x|y){0}z/
9191    xzxx
9192 0: xz
9193    yzyy
9194 0: yz
9195    ** Failers
9196No match
9197    xxz
9198No match
9199
9200/(\3)(\1)(a)/
9201    cat
9202No match
9203
9204/(\3)(\1)(a)/<JS>
9205    cat
9206 0: a
9207 1:
9208 2:
9209 3: a
9210
9211/TA]/
9212    The ACTA] comes
9213 0: TA]
9214
9215/TA]/<JS>
9216Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9217
9218/(?2)[]a()b](abc)/
9219Failed: reference to non-existent subpattern at offset 3
9220
9221/(?2)[^]a()b](abc)/
9222Failed: reference to non-existent subpattern at offset 3
9223
9224/(?1)[]a()b](abc)/
9225    abcbabc
9226 0: abcbabc
9227 1: abc
9228    ** Failers
9229No match
9230    abcXabc
9231No match
9232
9233/(?1)[^]a()b](abc)/
9234    abcXabc
9235 0: abcXabc
9236 1: abc
9237    ** Failers
9238No match
9239    abcbabc
9240No match
9241
9242/(?2)[]a()b](abc)(xyz)/
9243    xyzbabcxyz
9244 0: xyzbabcxyz
9245 1: abc
9246 2: xyz
9247
9248/(?&N)[]a(?<N>)](?<M>abc)/
9249Failed: reference to non-existent subpattern at offset 4
9250
9251/(?&N)[]a(?<N>)](abc)/
9252Failed: reference to non-existent subpattern at offset 4
9253
9254/a[]b/
9255Failed: missing terminating ] for character class at offset 4
9256
9257/a[^]b/
9258Failed: missing terminating ] for character class at offset 5
9259
9260/a[]b/<JS>
9261    ** Failers
9262No match
9263    ab
9264No match
9265
9266/a[]+b/<JS>
9267    ** Failers
9268No match
9269    ab
9270No match
9271
9272/a[]*+b/<JS>
9273    ** Failers
9274No match
9275    ab
9276No match
9277
9278/a[^]b/<JS>
9279    aXb
9280 0: aXb
9281    a\nb
9282 0: a\x0ab
9283    ** Failers
9284No match
9285    ab
9286No match
9287
9288/a[^]+b/<JS>
9289    aXb
9290 0: aXb
9291    a\nX\nXb
9292 0: a\x0aX\x0aXb
9293    ** Failers
9294No match
9295    ab
9296No match
9297
9298/a(?!)b/BZ
9299------------------------------------------------------------------
9300        Bra
9301        a
9302        *FAIL
9303        b
9304        Ket
9305        End
9306------------------------------------------------------------------
9307
9308/(?!)?a/BZ
9309------------------------------------------------------------------
9310        Bra
9311        Brazero
9312        Assert not
9313        Ket
9314        a
9315        Ket
9316        End
9317------------------------------------------------------------------
9318    ab
9319 0: a
9320
9321/a(*FAIL)+b/
9322Failed: nothing to repeat at offset 8
9323
9324/(abc|pqr|123){0}[xyz]/SI
9325Capturing subpattern count = 1
9326No options
9327No first char
9328No need char
9329Subject length lower bound = 1
9330Starting chars: x y z
9331
9332/(?(?=.*b)b|^)/CI
9333Capturing subpattern count = 0
9334May match empty string
9335Options:
9336No first char
9337No need char
9338   adc
9339--->adc
9340 +0 ^       (?(?=.*b)b|^)
9341 +2 ^       (?=.*b)
9342 +5 ^       .*
9343 +7 ^  ^    b
9344 +7 ^ ^     b
9345 +7 ^^      b
9346 +7 ^       b
9347+11 ^       ^
9348+12 ^       )
9349+13 ^
9350 0:
9351   abc
9352--->abc
9353 +0 ^       (?(?=.*b)b|^)
9354 +2 ^       (?=.*b)
9355 +5 ^       .*
9356 +7 ^  ^    b
9357 +7 ^ ^     b
9358 +7 ^^      b
9359 +8 ^ ^     )
9360 +9 ^       b
9361 +0  ^      (?(?=.*b)b|^)
9362 +2  ^      (?=.*b)
9363 +5  ^      .*
9364 +7  ^ ^    b
9365 +7  ^^     b
9366 +7  ^      b
9367 +8  ^^     )
9368 +9  ^      b
9369+10  ^^     |
9370+13  ^^
9371 0: b
9372
9373/(?(?=b).*b|^d)/I
9374Capturing subpattern count = 0
9375No options
9376No first char
9377No need char
9378
9379/(?(?=.*b).*b|^d)/I
9380Capturing subpattern count = 0
9381No options
9382No first char
9383No need char
9384
9385/xyz/C
9386  xyz
9387--->xyz
9388 +0 ^       x
9389 +1 ^^      y
9390 +2 ^ ^     z
9391 +3 ^  ^
9392 0: xyz
9393  abcxyz
9394--->abcxyz
9395 +0    ^       x
9396 +1    ^^      y
9397 +2    ^ ^     z
9398 +3    ^  ^
9399 0: xyz
9400  abcxyz\Y
9401--->abcxyz
9402 +0 ^          x
9403 +0  ^         x
9404 +0   ^        x
9405 +0    ^       x
9406 +1    ^^      y
9407 +2    ^ ^     z
9408 +3    ^  ^
9409 0: xyz
9410  ** Failers
9411No match
9412  abc
9413No match
9414  abc\Y
9415--->abc
9416 +0 ^       x
9417 +0  ^      x
9418 +0   ^     x
9419 +0    ^    x
9420No match
9421  abcxypqr
9422No match
9423  abcxypqr\Y
9424--->abcxypqr
9425 +0 ^            x
9426 +0  ^           x
9427 +0   ^          x
9428 +0    ^         x
9429 +1    ^^        y
9430 +2    ^ ^       z
9431 +0     ^        x
9432 +0      ^       x
9433 +0       ^      x
9434 +0        ^     x
9435 +0         ^    x
9436No match
9437
9438/(*NO_START_OPT)xyz/C
9439  abcxyz
9440--->abcxyz
9441+15 ^          x
9442+15  ^         x
9443+15   ^        x
9444+15    ^       x
9445+16    ^^      y
9446+17    ^ ^     z
9447+18    ^  ^
9448 0: xyz
9449
9450/(*NO_AUTO_POSSESS)a+b/BZ
9451------------------------------------------------------------------
9452        Bra
9453        a+
9454        b
9455        Ket
9456        End
9457------------------------------------------------------------------
9458
9459/xyz/CY
9460  abcxyz
9461--->abcxyz
9462 +0 ^          x
9463 +0  ^         x
9464 +0   ^        x
9465 +0    ^       x
9466 +1    ^^      y
9467 +2    ^ ^     z
9468 +3    ^  ^
9469 0: xyz
9470
9471/^"((?(?=[a])[^"])|b)*"$/C
9472    "ab"
9473--->"ab"
9474 +0 ^        ^
9475 +1 ^        "
9476 +2 ^^       ((?(?=[a])[^"])|b)*
9477 +3 ^^       (?(?=[a])[^"])
9478 +5 ^^       (?=[a])
9479 +8 ^^       [a]
9480+11 ^ ^      )
9481+12 ^^       [^"]
9482+16 ^ ^      )
9483+17 ^ ^      |
9484 +3 ^ ^      (?(?=[a])[^"])
9485 +5 ^ ^      (?=[a])
9486 +8 ^ ^      [a]
9487+17 ^ ^      |
9488+21 ^ ^      "
9489+18 ^ ^      b
9490+19 ^  ^     )
9491 +3 ^  ^     (?(?=[a])[^"])
9492 +5 ^  ^     (?=[a])
9493 +8 ^  ^     [a]
9494+17 ^  ^     |
9495+21 ^  ^     "
9496+22 ^   ^    $
9497+23 ^   ^
9498 0: "ab"
9499 1:
9500
9501/^"((?(?=[a])[^"])|b)*"$/
9502    "ab"
9503 0: "ab"
9504 1:
9505
9506/^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9507Failed: reference to non-existent subpattern at offset 5
9508
9509/^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9510    XYabcdY
9511 0: XYabcdY
9512 1: a
9513 2: b
9514 3: c
9515 4: d
9516 5: Y
9517
9518/Xa{2,4}b/
9519    X\P
9520Partial match: X
9521    Xa\P
9522Partial match: Xa
9523    Xaa\P
9524Partial match: Xaa
9525    Xaaa\P
9526Partial match: Xaaa
9527    Xaaaa\P
9528Partial match: Xaaaa
9529
9530/Xa{2,4}?b/
9531    X\P
9532Partial match: X
9533    Xa\P
9534Partial match: Xa
9535    Xaa\P
9536Partial match: Xaa
9537    Xaaa\P
9538Partial match: Xaaa
9539    Xaaaa\P
9540Partial match: Xaaaa
9541
9542/Xa{2,4}+b/
9543    X\P
9544Partial match: X
9545    Xa\P
9546Partial match: Xa
9547    Xaa\P
9548Partial match: Xaa
9549    Xaaa\P
9550Partial match: Xaaa
9551    Xaaaa\P
9552Partial match: Xaaaa
9553
9554/X\d{2,4}b/
9555    X\P
9556Partial match: X
9557    X3\P
9558Partial match: X3
9559    X33\P
9560Partial match: X33
9561    X333\P
9562Partial match: X333
9563    X3333\P
9564Partial match: X3333
9565
9566/X\d{2,4}?b/
9567    X\P
9568Partial match: X
9569    X3\P
9570Partial match: X3
9571    X33\P
9572Partial match: X33
9573    X333\P
9574Partial match: X333
9575    X3333\P
9576Partial match: X3333
9577
9578/X\d{2,4}+b/
9579    X\P
9580Partial match: X
9581    X3\P
9582Partial match: X3
9583    X33\P
9584Partial match: X33
9585    X333\P
9586Partial match: X333
9587    X3333\P
9588Partial match: X3333
9589
9590/X\D{2,4}b/
9591    X\P
9592Partial match: X
9593    Xa\P
9594Partial match: Xa
9595    Xaa\P
9596Partial match: Xaa
9597    Xaaa\P
9598Partial match: Xaaa
9599    Xaaaa\P
9600Partial match: Xaaaa
9601
9602/X\D{2,4}?b/
9603    X\P
9604Partial match: X
9605    Xa\P
9606Partial match: Xa
9607    Xaa\P
9608Partial match: Xaa
9609    Xaaa\P
9610Partial match: Xaaa
9611    Xaaaa\P
9612Partial match: Xaaaa
9613
9614/X\D{2,4}+b/
9615    X\P
9616Partial match: X
9617    Xa\P
9618Partial match: Xa
9619    Xaa\P
9620Partial match: Xaa
9621    Xaaa\P
9622Partial match: Xaaa
9623    Xaaaa\P
9624Partial match: Xaaaa
9625
9626/X[abc]{2,4}b/
9627    X\P
9628Partial match: X
9629    Xa\P
9630Partial match: Xa
9631    Xaa\P
9632Partial match: Xaa
9633    Xaaa\P
9634Partial match: Xaaa
9635    Xaaaa\P
9636Partial match: Xaaaa
9637
9638/X[abc]{2,4}?b/
9639    X\P
9640Partial match: X
9641    Xa\P
9642Partial match: Xa
9643    Xaa\P
9644Partial match: Xaa
9645    Xaaa\P
9646Partial match: Xaaa
9647    Xaaaa\P
9648Partial match: Xaaaa
9649
9650/X[abc]{2,4}+b/
9651    X\P
9652Partial match: X
9653    Xa\P
9654Partial match: Xa
9655    Xaa\P
9656Partial match: Xaa
9657    Xaaa\P
9658Partial match: Xaaa
9659    Xaaaa\P
9660Partial match: Xaaaa
9661
9662/X[^a]{2,4}b/
9663    X\P
9664Partial match: X
9665    Xz\P
9666Partial match: Xz
9667    Xzz\P
9668Partial match: Xzz
9669    Xzzz\P
9670Partial match: Xzzz
9671    Xzzzz\P
9672Partial match: Xzzzz
9673
9674/X[^a]{2,4}?b/
9675    X\P
9676Partial match: X
9677    Xz\P
9678Partial match: Xz
9679    Xzz\P
9680Partial match: Xzz
9681    Xzzz\P
9682Partial match: Xzzz
9683    Xzzzz\P
9684Partial match: Xzzzz
9685
9686/X[^a]{2,4}+b/
9687    X\P
9688Partial match: X
9689    Xz\P
9690Partial match: Xz
9691    Xzz\P
9692Partial match: Xzz
9693    Xzzz\P
9694Partial match: Xzzz
9695    Xzzzz\P
9696Partial match: Xzzzz
9697
9698/(Y)X\1{2,4}b/
9699    YX\P
9700Partial match: YX
9701    YXY\P
9702Partial match: YXY
9703    YXYY\P
9704Partial match: YXYY
9705    YXYYY\P
9706Partial match: YXYYY
9707    YXYYYY\P
9708Partial match: YXYYYY
9709
9710/(Y)X\1{2,4}?b/
9711    YX\P
9712Partial match: YX
9713    YXY\P
9714Partial match: YXY
9715    YXYY\P
9716Partial match: YXYY
9717    YXYYY\P
9718Partial match: YXYYY
9719    YXYYYY\P
9720Partial match: YXYYYY
9721
9722/(Y)X\1{2,4}+b/
9723    YX\P
9724Partial match: YX
9725    YXY\P
9726Partial match: YXY
9727    YXYY\P
9728Partial match: YXYY
9729    YXYYY\P
9730Partial match: YXYYY
9731    YXYYYY\P
9732Partial match: YXYYYY
9733
9734/\++\KZ|\d+X|9+Y/
9735    ++++123999\P
9736Partial match: 123999
9737    ++++123999Y\P
9738 0: 999Y
9739    ++++Z1234\P
9740 0: Z
9741
9742/Z(*F)/
9743    Z\P
9744No match
9745    ZA\P
9746No match
9747
9748/Z(?!)/
9749    Z\P
9750No match
9751    ZA\P
9752No match
9753
9754/dog(sbody)?/
9755    dogs\P
9756 0: dog
9757    dogs\P\P
9758Partial match: dogs
9759
9760/dog(sbody)??/
9761    dogs\P
9762 0: dog
9763    dogs\P\P
9764 0: dog
9765
9766/dog|dogsbody/
9767    dogs\P
9768 0: dog
9769    dogs\P\P
9770 0: dog
9771
9772/dogsbody|dog/
9773    dogs\P
9774 0: dog
9775    dogs\P\P
9776Partial match: dogs
9777
9778/\bthe cat\b/
9779    the cat\P
9780 0: the cat
9781    the cat\P\P
9782Partial match: the cat
9783
9784/abc/
9785   abc\P
9786 0: abc
9787   abc\P\P
9788 0: abc
9789
9790/abc\K123/
9791    xyzabc123pqr
9792 0: 123
9793    xyzabc12\P
9794Partial match: abc12
9795    xyzabc12\P\P
9796Partial match: abc12
9797
9798/(?<=abc)123/
9799    xyzabc123pqr
9800 0: 123
9801    xyzabc12\P
9802Partial match at offset 6: abc12
9803    xyzabc12\P\P
9804Partial match at offset 6: abc12
9805
9806/\babc\b/
9807    +++abc+++
9808 0: abc
9809    +++ab\P
9810Partial match at offset 3: +ab
9811    +++ab\P\P
9812Partial match at offset 3: +ab
9813
9814/(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9815------------------------------------------------------------------
9816        Bra
9817        Recurse
9818        Recurse
9819        Cond
9820        Cond def
9821        CBra 1
9822        <
9823        [^m]
9824        [^>]
9825        >
9826        [^<]
9827        Ket
9828        CBra 2
9829        \w*+
9830        Ket
9831        Ket
9832        Ket
9833        End
9834------------------------------------------------------------------
9835
9836/(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9837------------------------------------------------------------------
9838        Bra
9839        Recurse
9840        Recurse
9841        Cond
9842        Cond def
9843        CBra 1
9844        <
9845        [\x00-/:-\xff] (neg)
9846        [^>]
9847        >
9848        [^<]
9849        Ket
9850        CBra 2
9851        \w*+
9852        Ket
9853        Ket
9854        Ket
9855        End
9856------------------------------------------------------------------
9857
9858/(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9859------------------------------------------------------------------
9860        Bra
9861        CBra 1
9862        ab
9863        Ket
9864        CBra 2
9865        x
9866        CBra 3
9867        y
9868        Ket
9869        z
9870        CBra 4
9871        cd
9872        Close 4
9873        Close 2
9874        *ACCEPT
9875        Ket
9876        Ket
9877        pq
9878        Ket
9879        End
9880------------------------------------------------------------------
9881
9882/abc\K/+
9883    abcdef
9884 0:
9885 0+ def
9886    abcdef\N\N
9887 0:
9888 0+ def
9889    xyzabcdef\N\N
9890 0:
9891 0+ def
9892    ** Failers
9893No match
9894    abcdef\N
9895No match
9896    xyzabcdef\N
9897No match
9898
9899/^(?:(?=abc)|abc\K)/+
9900    abcdef
9901 0:
9902 0+ abcdef
9903    abcdef\N\N
9904 0:
9905 0+ def
9906    ** Failers
9907No match
9908    abcdef\N
9909No match
9910
9911/a?b?/+
9912    xyz
9913 0:
9914 0+ xyz
9915    xyzabc
9916 0:
9917 0+ xyzabc
9918    xyzabc\N
9919 0: ab
9920 0+ c
9921    xyzabc\N\N
9922 0:
9923 0+ yzabc
9924    xyz\N\N
9925 0:
9926 0+ yz
9927    ** Failers
9928 0:
9929 0+ ** Failers
9930    xyz\N
9931No match
9932
9933/^a?b?/+
9934    xyz
9935 0:
9936 0+ xyz
9937    xyzabc
9938 0:
9939 0+ xyzabc
9940    ** Failers
9941 0:
9942 0+ ** Failers
9943    xyzabc\N
9944No match
9945    xyzabc\N\N
9946No match
9947    xyz\N\N
9948No match
9949    xyz\N
9950No match
9951
9952/^(?<name>a|b\g<name>c)/
9953    aaaa
9954 0: a
9955 1: a
9956    bacxxx
9957 0: bac
9958 1: bac
9959    bbaccxxx
9960 0: bbacc
9961 1: bbacc
9962    bbbacccxx
9963 0: bbbaccc
9964 1: bbbaccc
9965
9966/^(?<name>a|b\g'name'c)/
9967    aaaa
9968 0: a
9969 1: a
9970    bacxxx
9971 0: bac
9972 1: bac
9973    bbaccxxx
9974 0: bbacc
9975 1: bbacc
9976    bbbacccxx
9977 0: bbbaccc
9978 1: bbbaccc
9979
9980/^(a|b\g<1>c)/
9981    aaaa
9982 0: a
9983 1: a
9984    bacxxx
9985 0: bac
9986 1: bac
9987    bbaccxxx
9988 0: bbacc
9989 1: bbacc
9990    bbbacccxx
9991 0: bbbaccc
9992 1: bbbaccc
9993
9994/^(a|b\g'1'c)/
9995    aaaa
9996 0: a
9997 1: a
9998    bacxxx
9999 0: bac
10000 1: bac
10001    bbaccxxx
10002 0: bbacc
10003 1: bbacc
10004    bbbacccxx
10005 0: bbbaccc
10006 1: bbbaccc
10007
10008/^(a|b\g'-1'c)/
10009    aaaa
10010 0: a
10011 1: a
10012    bacxxx
10013 0: bac
10014 1: bac
10015    bbaccxxx
10016 0: bbacc
10017 1: bbacc
10018    bbbacccxx
10019 0: bbbaccc
10020 1: bbbaccc
10021
10022/(^(a|b\g<-1>c))/
10023    aaaa
10024 0: a
10025 1: a
10026 2: a
10027    bacxxx
10028 0: bac
10029 1: bac
10030 2: bac
10031    bbaccxxx
10032 0: bbacc
10033 1: bbacc
10034 2: bbacc
10035    bbbacccxx
10036 0: bbbaccc
10037 1: bbbaccc
10038 2: bbbaccc
10039
10040/(?-i:\g<name>)(?i:(?<name>a))/
10041    XaaX
10042 0: aa
10043 1: a
10044    XAAX
10045 0: AA
10046 1: A
10047
10048/(?i:\g<name>)(?-i:(?<name>a))/
10049    XaaX
10050 0: aa
10051 1: a
10052    ** Failers
10053No match
10054    XAAX
10055No match
10056
10057/(?-i:\g<+1>)(?i:(a))/
10058    XaaX
10059 0: aa
10060 1: a
10061    XAAX
10062 0: AA
10063 1: A
10064
10065/(?=(?<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>\})\}))\{/
10066
10067/(?<n>a|b|c)\g<n>*/
10068   abc
10069 0: abc
10070 1: a
10071   accccbbb
10072 0: accccbbb
10073 1: a
10074
10075/^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
10076    XYabcdY
10077 0: XYabcdY
10078 1: a
10079 2: b
10080 3: <unset>
10081 4: <unset>
10082 5: c
10083 6: d
10084 7: Y
10085
10086/(?<=b(?1)|zzz)(a)/
10087    xbaax
10088 0: a
10089 1: a
10090    xzzzax
10091 0: a
10092 1: a
10093
10094/(a)(?<=b\1)/
10095Failed: lookbehind assertion is not fixed length at offset 10
10096
10097/(a)(?<=b+(?1))/
10098Failed: lookbehind assertion is not fixed length at offset 13
10099
10100/(a+)(?<=b(?1))/
10101Failed: lookbehind assertion is not fixed length at offset 14
10102
10103/(a(?<=b(?1)))/
10104Failed: lookbehind assertion is not fixed length at offset 13
10105
10106/(?<=b(?1))xyz/
10107Failed: reference to non-existent subpattern at offset 8
10108
10109/(?<=b(?1))xyz(b+)pqrstuvew/
10110Failed: lookbehind assertion is not fixed length at offset 26
10111
10112/(a|bc)\1/SI
10113Capturing subpattern count = 1
10114Max back reference = 1
10115No options
10116No first char
10117No need char
10118Subject length lower bound = 2
10119Starting chars: a b
10120
10121/(a|bc)\1{2,3}/SI
10122Capturing subpattern count = 1
10123Max back reference = 1
10124No options
10125No first char
10126No need char
10127Subject length lower bound = 3
10128Starting chars: a b
10129
10130/(a|bc)(?1)/SI
10131Capturing subpattern count = 1
10132No options
10133No first char
10134No need char
10135Subject length lower bound = 2
10136Starting chars: a b
10137
10138/(a|b\1)(a|b\1)/SI
10139Capturing subpattern count = 2
10140Max back reference = 1
10141No options
10142No first char
10143No need char
10144Subject length lower bound = 2
10145Starting chars: a b
10146
10147/(a|b\1){2}/SI
10148Capturing subpattern count = 1
10149Max back reference = 1
10150No options
10151No first char
10152No need char
10153Subject length lower bound = 2
10154Starting chars: a b
10155
10156/(a|bbbb\1)(a|bbbb\1)/SI
10157Capturing subpattern count = 2
10158Max back reference = 1
10159No options
10160No first char
10161No need char
10162Subject length lower bound = 2
10163Starting chars: a b
10164
10165/(a|bbbb\1){2}/SI
10166Capturing subpattern count = 1
10167Max back reference = 1
10168No options
10169No first char
10170No need char
10171Subject length lower bound = 2
10172Starting chars: a b
10173
10174/^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
10175Capturing subpattern count = 1
10176Options: anchored
10177No first char
10178Need char = ':'
10179Subject length lower bound = 22
10180No starting char list
10181
10182/<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
10183Capturing subpattern count = 11
10184Options: caseless dotall
10185First char = '<'
10186Need char = '>'
10187Subject length lower bound = 47
10188No starting char list
10189
10190"(?>.*/)foo"SI
10191Capturing subpattern count = 0
10192No options
10193No first char
10194Need char = 'o'
10195Subject length lower bound = 4
10196No starting char list
10197
10198/(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10199Capturing subpattern count = 0
10200Options: extended
10201No first char
10202Need char = '-'
10203Subject length lower bound = 8
10204No starting char list
10205
10206/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10207Capturing subpattern count = 1
10208Options: caseless
10209No first char
10210No need char
10211Subject length lower bound = 1
10212Starting chars: A B C a b c
10213
10214/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10215Capturing subpattern count = 0
10216No options
10217No first char
10218Need char = 'b'
10219Subject length lower bound = 41
10220Starting chars: c d
10221
10222/<a[\s]+href[\s]*=[\s]*          # find <a href=
10223 ([\"\'])?                       # find single or double quote
10224 (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10225                                 # quote, otherwise match up to next space
10226/isxSI
10227Capturing subpattern count = 3
10228Max back reference = 1
10229Options: caseless extended dotall
10230First char = '<'
10231Need char = '='
10232Subject length lower bound = 9
10233No starting char list
10234
10235/^(?!:)                       # colon disallowed at start
10236  (?:                         # start of item
10237    (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10238    (?(1)0 | () ) )           # if null previously matched, fail; else null
10239    :                         # followed by colon
10240  ){1,7}                      # end item; 1-7 of them required
10241  [0-9a-f]{1,4} $             # final hex number at end of string
10242  (?(1)|.)                    # check that there was an empty component
10243  /xiIS
10244Capturing subpattern count = 1
10245Max back reference = 1
10246Options: anchored caseless extended
10247No first char
10248Need char = ':'
10249Subject length lower bound = 2
10250No starting char list
10251
10252/(?|(?<a>A)|(?<a>B))/I
10253Capturing subpattern count = 1
10254Named capturing subpatterns:
10255  a   1
10256No options
10257No first char
10258No need char
10259    AB\Ca
10260 0: A
10261 1: A
10262  C A (1) a
10263    BA\Ca
10264 0: B
10265 1: B
10266  C B (1) a
10267
10268/(?|(?<a>A)|(?<b>B))/
10269Failed: different names for subpatterns of the same number are not allowed at offset 15
10270
10271/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10272    b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10273    (?('quote')[a-z]+|[0-9]+)/JIx
10274Capturing subpattern count = 6
10275Max back reference = 1
10276Named capturing subpatterns:
10277  apostrophe   2
10278  apostrophe   5
10279  quote        1
10280  quote        4
10281  realquote    3
10282  realquote    6
10283Options: extended dupnames
10284No first char
10285No need char
10286    a"aaaaa
10287 0: a"aaaaa
10288 1: "
10289 2: <unset>
10290 3: "
10291    b"aaaaa
10292 0: b"aaaaa
10293 1: <unset>
10294 2: <unset>
10295 3: <unset>
10296 4: "
10297 5: <unset>
10298 6: "
10299    ** Failers
10300No match
10301    b"11111
10302No match
10303    a"11111
10304No match
10305
10306/^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10307------------------------------------------------------------------
10308        Bra
10309        ^
10310        Bra
10311        CBra 1
10312        a
10313        Ket
10314        CBra 2
10315        b
10316        Ket
10317        CBra 3
10318        c
10319        Ket
10320        CBra 4
10321        d
10322        Ket
10323        Alt
10324        CBra 1
10325        e
10326        Ket
10327        Ket
10328        Cond
10329        Cond ref <D>2
10330        X
10331        Alt
10332        Y
10333        Ket
10334        Ket
10335        End
10336------------------------------------------------------------------
10337Capturing subpattern count = 4
10338Max back reference = 4
10339Named capturing subpatterns:
10340  D   4
10341  D   1
10342Options: anchored extended dupnames
10343No first char
10344No need char
10345    abcdX
10346 0: abcdX
10347 1: a
10348 2: b
10349 3: c
10350 4: d
10351    eX
10352 0: eX
10353 1: e
10354    ** Failers
10355No match
10356    abcdY
10357No match
10358    ey
10359No match
10360
10361/(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10362------------------------------------------------------------------
10363        Bra
10364        CBra 1
10365        a
10366        Ket
10367        CBra 2
10368        b
10369        Ket
10370        CBra 3
10371        c
10372        Ket
10373        CBra 4
10374        d
10375        Cond
10376        Cond recurse <A>2
10377        $
10378        Alt
10379        Recurse
10380        Ket
10381        Ket
10382        Ket
10383        End
10384------------------------------------------------------------------
10385Capturing subpattern count = 4
10386Max back reference = 1
10387Named capturing subpatterns:
10388  A   1
10389  A   4
10390Options: extended dupnames
10391First char = 'a'
10392Need char = 'd'
10393    abcdd
10394 0: abcdd
10395 1: a
10396 2: b
10397 3: c
10398 4: dd
10399    ** Failers
10400No match
10401    abcdde
10402No match
10403
10404/abcd*/
10405    xxxxabcd\P
10406 0: abcd
10407    xxxxabcd\P\P
10408Partial match: abcd
10409
10410/abcd*/i
10411    xxxxabcd\P
10412 0: abcd
10413    xxxxabcd\P\P
10414Partial match: abcd
10415    XXXXABCD\P
10416 0: ABCD
10417    XXXXABCD\P\P
10418Partial match: ABCD
10419
10420/abc\d*/
10421    xxxxabc1\P
10422 0: abc1
10423    xxxxabc1\P\P
10424Partial match: abc1
10425
10426/(a)bc\1*/
10427    xxxxabca\P
10428 0: abca
10429 1: a
10430    xxxxabca\P\P
10431Partial match: abca
10432
10433/abc[de]*/
10434    xxxxabcde\P
10435 0: abcde
10436    xxxxabcde\P\P
10437Partial match: abcde
10438
10439/-- This is not in the Perl-compatible test because Perl seems currently to be
10440    broken and not behaving as specified in that it *does* bumpalong after
10441    hitting (*COMMIT). --/
10442
10443/(?1)(A(*COMMIT)|B)D/
10444    ABD
10445 0: ABD
10446 1: B
10447    XABD
10448 0: ABD
10449 1: B
10450    BAD
10451 0: BAD
10452 1: A
10453    ABXABD
10454 0: ABD
10455 1: B
10456    ** Failers
10457No match
10458    ABX
10459No match
10460    BAXBAD
10461No match
10462
10463/(\3)(\1)(a)/<JS>
10464    cat
10465 0: a
10466 1:
10467 2:
10468 3: a
10469
10470/(\3)(\1)(a)/SI<JS>
10471Capturing subpattern count = 3
10472Max back reference = 3
10473Options:
10474No first char
10475Need char = 'a'
10476Subject length lower bound = 1
10477No starting char list
10478    cat
10479 0: a
10480 1:
10481 2:
10482 3: a
10483
10484/(\3)(\1)(a)/SI
10485Capturing subpattern count = 3
10486Max back reference = 3
10487No options
10488No first char
10489Need char = 'a'
10490Subject length lower bound = 3
10491No starting char list
10492    cat
10493No match
10494
10495/i(?(DEFINE)(?<s>a))/SI
10496Capturing subpattern count = 1
10497Named capturing subpatterns:
10498  s   1
10499No options
10500First char = 'i'
10501No need char
10502Subject length lower bound = 1
10503No starting char list
10504    i
10505 0: i
10506
10507/()i(?(1)a)/SI
10508Capturing subpattern count = 1
10509Max back reference = 1
10510No options
10511No first char
10512Need char = 'i'
10513Subject length lower bound = 1
10514Starting chars: i
10515    ia
10516 0: ia
10517 1:
10518
10519/(?i)a(?-i)b|c/BZ
10520------------------------------------------------------------------
10521        Bra
10522     /i a
10523        b
10524        Alt
10525        c
10526        Ket
10527        End
10528------------------------------------------------------------------
10529    XabX
10530 0: ab
10531    XAbX
10532 0: Ab
10533    CcC
10534 0: c
10535    ** Failers
10536No match
10537    XABX
10538No match
10539
10540/(?i)a(?s)b|c/BZ
10541------------------------------------------------------------------
10542        Bra
10543     /i ab
10544        Alt
10545     /i c
10546        Ket
10547        End
10548------------------------------------------------------------------
10549
10550/(?i)a(?s-i)b|c/BZ
10551------------------------------------------------------------------
10552        Bra
10553     /i a
10554        b
10555        Alt
10556        c
10557        Ket
10558        End
10559------------------------------------------------------------------
10560
10561/^(ab(c\1)d|x){2}$/BZ
10562------------------------------------------------------------------
10563        Bra
10564        ^
10565        Once
10566        CBra 1
10567        ab
10568        CBra 2
10569        c
10570        \1
10571        Ket
10572        d
10573        Alt
10574        x
10575        Ket
10576        Ket
10577        Once
10578        CBra 1
10579        ab
10580        CBra 2
10581        c
10582        \1
10583        Ket
10584        d
10585        Alt
10586        x
10587        Ket
10588        Ket
10589        $
10590        Ket
10591        End
10592------------------------------------------------------------------
10593    xabcxd
10594 0: xabcxd
10595 1: abcxd
10596 2: cx
10597
10598/^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10599------------------------------------------------------------------
10600        Bra
10601        ^
10602        Braposzero
10603        SBraPos
10604        Recurse
10605        KetRpos
10606        Cond
10607        Cond def
10608        CBra 1
10609        Any
10610        Ket
10611        Ket
10612        $
10613        Ket
10614        End
10615------------------------------------------------------------------
10616
10617/^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10618------------------------------------------------------------------
10619        Bra
10620        ^
10621        Brazero
10622        Once
10623        Recurse
10624        KetRmax
10625        Cond
10626        Cond def
10627        CBra 1
10628        Any
10629        Ket
10630        Ket
10631        $
10632        Ket
10633        End
10634------------------------------------------------------------------
10635
10636/ -- This one is here because Perl gives the match as "b" rather than "ab". I
10637     believe this to be a Perl bug. --/
10638
10639/(?>a\Kb)z|(ab)/
10640    ab
10641 0: ab
10642 1: ab
10643
10644/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10645Failed: recursive call could loop indefinitely at offset 31
10646
10647/abc(*MARK:)pqr/
10648Failed: (*MARK) must have an argument at offset 10
10649
10650/abc(*:)pqr/
10651Failed: (*MARK) must have an argument at offset 6
10652
10653/abc(*FAIL:123)xyz/
10654Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10655
10656/--- This should, and does, fail. In Perl, it does not, which I think is a
10657     bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10658
10659/A(*COMMIT)B/+K
10660    ACABX
10661No match
10662
10663/--- These should be different, but in Perl they are not, which I think
10664     is a bug in Perl. ---/
10665
10666/A(*THEN)B|A(*THEN)C/K
10667    AC
10668 0: AC
10669
10670/A(*PRUNE)B|A(*PRUNE)C/K
10671    AC
10672No match
10673
10674/--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10675though PCRE does. ---/
10676
10677/^A(*:A)B|^X(*:A)Y/K
10678    ** Failers
10679No match
10680    XAQQ
10681No match, mark = A
10682
10683/--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10684optimizations defeat this. So does the PCRE optimization unless we disable it
10685with \Y. ---/
10686
10687/(*COMMIT)ABC/
10688    ABCDEFG
10689 0: ABC
10690    ** Failers
10691No match
10692    DEFGABC\Y
10693No match
10694
10695/^(ab (c+(*THEN)cd) | xyz)/x
10696    abcccd
10697No match
10698
10699/^(ab (c+(*PRUNE)cd) | xyz)/x
10700    abcccd
10701No match
10702
10703/^(ab (c+(*FAIL)cd) | xyz)/x
10704    abcccd
10705No match
10706
10707/--- Perl gets some of these wrong ---/
10708
10709/(?>.(*ACCEPT))*?5/
10710    abcde
10711 0: a
10712
10713/(.(*ACCEPT))*?5/
10714    abcde
10715 0: a
10716 1: a
10717
10718/(.(*ACCEPT))5/
10719    abcde
10720 0: a
10721 1: a
10722
10723/(.(*ACCEPT))*5/
10724    abcde
10725 0: a
10726 1: a
10727
10728/A\NB./BZ
10729------------------------------------------------------------------
10730        Bra
10731        A
10732        Any
10733        B
10734        Any
10735        Ket
10736        End
10737------------------------------------------------------------------
10738    ACBD
10739 0: ACBD
10740    *** Failers
10741No match
10742    A\nB
10743No match
10744    ACB\n
10745No match
10746
10747/A\NB./sBZ
10748------------------------------------------------------------------
10749        Bra
10750        A
10751        Any
10752        B
10753        AllAny
10754        Ket
10755        End
10756------------------------------------------------------------------
10757    ACBD
10758 0: ACBD
10759    ACB\n
10760 0: ACB\x0a
10761    *** Failers
10762No match
10763    A\nB
10764No match
10765
10766/A\NB/<crlf>
10767    A\nB
10768 0: A\x0aB
10769    A\rB
10770 0: A\x0dB
10771    ** Failers
10772No match
10773    A\r\nB
10774No match
10775
10776/\R+b/BZ
10777------------------------------------------------------------------
10778        Bra
10779        \R++
10780        b
10781        Ket
10782        End
10783------------------------------------------------------------------
10784
10785/\R+\n/BZ
10786------------------------------------------------------------------
10787        Bra
10788        \R+
10789        \x0a
10790        Ket
10791        End
10792------------------------------------------------------------------
10793
10794/\R+\d/BZ
10795------------------------------------------------------------------
10796        Bra
10797        \R++
10798        \d
10799        Ket
10800        End
10801------------------------------------------------------------------
10802
10803/\d*\R/BZ
10804------------------------------------------------------------------
10805        Bra
10806        \d*+
10807        \R
10808        Ket
10809        End
10810------------------------------------------------------------------
10811
10812/\s*\R/BZ
10813------------------------------------------------------------------
10814        Bra
10815        \s*
10816        \R
10817        Ket
10818        End
10819------------------------------------------------------------------
10820    \x20\x0a
10821 0:  \x0a
10822    \x20\x0d
10823 0:  \x0d
10824    \x20\x0d\x0a
10825 0:  \x0d\x0a
10826
10827/\S*\R/BZ
10828------------------------------------------------------------------
10829        Bra
10830        \S*+
10831        \R
10832        Ket
10833        End
10834------------------------------------------------------------------
10835    a\x0a
10836 0: a\x0a
10837
10838/X\h*\R/BZ
10839------------------------------------------------------------------
10840        Bra
10841        X
10842        \h*+
10843        \R
10844        Ket
10845        End
10846------------------------------------------------------------------
10847    X\x20\x0a
10848 0: X \x0a
10849
10850/X\H*\R/BZ
10851------------------------------------------------------------------
10852        Bra
10853        X
10854        \H*
10855        \R
10856        Ket
10857        End
10858------------------------------------------------------------------
10859    X\x0d\x0a
10860 0: X\x0d\x0a
10861
10862/X\H+\R/BZ
10863------------------------------------------------------------------
10864        Bra
10865        X
10866        \H+
10867        \R
10868        Ket
10869        End
10870------------------------------------------------------------------
10871    X\x0d\x0a
10872 0: X\x0d\x0a
10873
10874/X\H++\R/BZ
10875------------------------------------------------------------------
10876        Bra
10877        X
10878        \H++
10879        \R
10880        Ket
10881        End
10882------------------------------------------------------------------
10883    X\x0d\x0a
10884No match
10885
10886/(?<=abc)def/
10887    abc\P\P
10888Partial match at offset 3: abc
10889
10890/abc$/
10891    abc
10892 0: abc
10893    abc\P
10894 0: abc
10895    abc\P\P
10896Partial match: abc
10897
10898/abc$/m
10899    abc
10900 0: abc
10901    abc\n
10902 0: abc
10903    abc\P\P
10904Partial match: abc
10905    abc\n\P\P
10906 0: abc
10907    abc\P
10908 0: abc
10909    abc\n\P
10910 0: abc
10911
10912/abc\z/
10913    abc
10914 0: abc
10915    abc\P
10916 0: abc
10917    abc\P\P
10918Partial match: abc
10919
10920/abc\Z/
10921    abc
10922 0: abc
10923    abc\P
10924 0: abc
10925    abc\P\P
10926Partial match: abc
10927
10928/abc\b/
10929    abc
10930 0: abc
10931    abc\P
10932 0: abc
10933    abc\P\P
10934Partial match: abc
10935
10936/abc\B/
10937    abc
10938No match
10939    abc\P
10940Partial match: abc
10941    abc\P\P
10942Partial match: abc
10943
10944/.+/
10945    abc\>0
10946 0: abc
10947    abc\>1
10948 0: bc
10949    abc\>2
10950 0: c
10951    abc\>3
10952No match
10953    abc\>4
10954Error -24 (bad offset value)
10955    abc\>-4
10956Error -24 (bad offset value)
10957
10958/^\cģ/
10959Failed: \c must be followed by an ASCII character at offset 3
10960
10961/(?P<abn>(?P=abn)xxx)/BZ
10962------------------------------------------------------------------
10963        Bra
10964        Once
10965        CBra 1
10966        \1
10967        xxx
10968        Ket
10969        Ket
10970        Ket
10971        End
10972------------------------------------------------------------------
10973
10974/(a\1z)/BZ
10975------------------------------------------------------------------
10976        Bra
10977        Once
10978        CBra 1
10979        a
10980        \1
10981        z
10982        Ket
10983        Ket
10984        Ket
10985        End
10986------------------------------------------------------------------
10987
10988/(?P<abn>(?P=abn)(?<badstufxxx)/BZ
10989Failed: syntax error in subpattern name (missing terminator) at offset 29
10990
10991/(?P<abn>(?P=axn)xxx)/BZ
10992Failed: reference to non-existent subpattern at offset 15
10993
10994/(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
10995------------------------------------------------------------------
10996        Bra
10997        CBra 1
10998        \2
10999        xxx
11000        Ket
11001        CBra 2
11002        yy
11003        Ket
11004        Ket
11005        End
11006------------------------------------------------------------------
11007
11008/-- These tests are here because Perl gets the first one wrong. --/
11009
11010/(\R*)(.)/s
11011    \r\n
11012 0: \x0d
11013 1:
11014 2: \x0d
11015    \r\r\n\n\r
11016 0: \x0d\x0d\x0a\x0a\x0d
11017 1: \x0d\x0d\x0a\x0a
11018 2: \x0d
11019    \r\r\n\n\r\n
11020 0: \x0d\x0d\x0a\x0a\x0d
11021 1: \x0d\x0d\x0a\x0a
11022 2: \x0d
11023
11024/(\R)*(.)/s
11025    \r\n
11026 0: \x0d
11027 1: <unset>
11028 2: \x0d
11029    \r\r\n\n\r
11030 0: \x0d\x0d\x0a\x0a\x0d
11031 1: \x0a
11032 2: \x0d
11033    \r\r\n\n\r\n
11034 0: \x0d\x0d\x0a\x0a\x0d
11035 1: \x0a
11036 2: \x0d
11037
11038/((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11039    \r\n
11040 0: \x0d
11041 1:
11042 2: \x0d
11043    \r\r\n\n\r
11044 0: \x0d\x0d\x0a\x0a\x0d
11045 1: \x0d\x0d\x0a\x0a
11046 2: \x0d
11047    \r\r\n\n\r\n
11048 0: \x0d\x0d\x0a\x0a\x0d
11049 1: \x0d\x0d\x0a\x0a
11050 2: \x0d
11051
11052/-- --/
11053
11054/^abc$/BZ
11055------------------------------------------------------------------
11056        Bra
11057        ^
11058        abc
11059        $
11060        Ket
11061        End
11062------------------------------------------------------------------
11063
11064/^abc$/BZm
11065------------------------------------------------------------------
11066        Bra
11067     /m ^
11068        abc
11069     /m $
11070        Ket
11071        End
11072------------------------------------------------------------------
11073
11074/^(a)*+(\w)/S
11075    aaaaX
11076 0: aaaaX
11077 1: a
11078 2: X
11079    ** Failers
11080No match
11081    aaaa
11082No match
11083
11084/^(?:a)*+(\w)/S
11085    aaaaX
11086 0: aaaaX
11087 1: X
11088    ** Failers
11089No match
11090    aaaa
11091No match
11092
11093/(a)++1234/SDZ
11094------------------------------------------------------------------
11095        Bra
11096        CBraPos 1
11097        a
11098        KetRpos
11099        1234
11100        Ket
11101        End
11102------------------------------------------------------------------
11103Capturing subpattern count = 1
11104No options
11105First char = 'a'
11106Need char = '4'
11107Subject length lower bound = 5
11108No starting char list
11109
11110/([abc])++1234/SI
11111Capturing subpattern count = 1
11112No options
11113No first char
11114Need char = '4'
11115Subject length lower bound = 5
11116Starting chars: a b c
11117
11118/(?<=(abc)+)X/
11119Failed: lookbehind assertion is not fixed length at offset 10
11120
11121/(^ab)/I
11122Capturing subpattern count = 1
11123Options: anchored
11124No first char
11125No need char
11126
11127/(^ab)++/I
11128Capturing subpattern count = 1
11129Options: anchored
11130No first char
11131No need char
11132
11133/(^ab|^)+/I
11134Capturing subpattern count = 1
11135May match empty string
11136Options: anchored
11137No first char
11138No need char
11139
11140/(^ab|^)++/I
11141Capturing subpattern count = 1
11142May match empty string
11143Options: anchored
11144No first char
11145No need char
11146
11147/(?:^ab)/I
11148Capturing subpattern count = 0
11149Options: anchored
11150No first char
11151No need char
11152
11153/(?:^ab)++/I
11154Capturing subpattern count = 0
11155Options: anchored
11156No first char
11157No need char
11158
11159/(?:^ab|^)+/I
11160Capturing subpattern count = 0
11161May match empty string
11162Options: anchored
11163No first char
11164No need char
11165
11166/(?:^ab|^)++/I
11167Capturing subpattern count = 0
11168May match empty string
11169Options: anchored
11170No first char
11171No need char
11172
11173/(.*ab)/I
11174Capturing subpattern count = 1
11175No options
11176First char at start or follows newline
11177Need char = 'b'
11178
11179/(.*ab)++/I
11180Capturing subpattern count = 1
11181No options
11182First char at start or follows newline
11183Need char = 'b'
11184
11185/(.*ab|.*)+/I
11186Capturing subpattern count = 1
11187May match empty string
11188No options
11189First char at start or follows newline
11190No need char
11191
11192/(.*ab|.*)++/I
11193Capturing subpattern count = 1
11194May match empty string
11195No options
11196First char at start or follows newline
11197No need char
11198
11199/(?:.*ab)/I
11200Capturing subpattern count = 0
11201No options
11202First char at start or follows newline
11203Need char = 'b'
11204
11205/(?:.*ab)++/I
11206Capturing subpattern count = 0
11207No options
11208First char at start or follows newline
11209Need char = 'b'
11210
11211/(?:.*ab|.*)+/I
11212Capturing subpattern count = 0
11213May match empty string
11214No options
11215First char at start or follows newline
11216No need char
11217
11218/(?:.*ab|.*)++/I
11219Capturing subpattern count = 0
11220May match empty string
11221No options
11222First char at start or follows newline
11223No need char
11224
11225/(?=a)[bcd]/I
11226Capturing subpattern count = 0
11227No options
11228First char = 'a'
11229No need char
11230
11231/((?=a))[bcd]/I
11232Capturing subpattern count = 1
11233No options
11234First char = 'a'
11235No need char
11236
11237/((?=a))+[bcd]/I
11238Capturing subpattern count = 1
11239No options
11240First char = 'a'
11241No need char
11242
11243/((?=a))++[bcd]/I
11244Capturing subpattern count = 1
11245No options
11246First char = 'a'
11247No need char
11248
11249/(?=a+)[bcd]/iI
11250Capturing subpattern count = 0
11251Options: caseless
11252First char = 'a' (caseless)
11253No need char
11254
11255/(?=a+?)[bcd]/iI
11256Capturing subpattern count = 0
11257Options: caseless
11258First char = 'a' (caseless)
11259No need char
11260
11261/(?=a++)[bcd]/iI
11262Capturing subpattern count = 0
11263Options: caseless
11264First char = 'a' (caseless)
11265No need char
11266
11267/(?=a{3})[bcd]/iI
11268Capturing subpattern count = 0
11269Options: caseless
11270First char = 'a' (caseless)
11271Need char = 'a' (caseless)
11272
11273/(abc)\1+/S
11274
11275/-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11276
11277/(?1)(?:(b(*ACCEPT))){0}/
11278    b
11279 0: b
11280
11281/(?1)(?:(b(*ACCEPT))){0}c/
11282    bc
11283 0: bc
11284    ** Failers
11285No match
11286    b
11287No match
11288
11289/(?1)(?:((*ACCEPT))){0}c/
11290    c
11291 0: c
11292    c\N
11293 0: c
11294
11295/^.*?(?(?=a)a|b(*THEN)c)/
11296    ba
11297No match
11298
11299/^.*?(?(?=a)a|bc)/
11300    ba
11301 0: ba
11302
11303/^.*?(?(?=a)a(*THEN)b|c)/
11304    ac
11305No match
11306
11307/^.*?(?(?=a)a(*THEN)b)c/
11308    ac
11309No match
11310
11311/^.*?(a(*THEN)b)c/
11312    aabc
11313No match
11314
11315/^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11316    aabc
11317 0: aabc
11318
11319/^.*?(a(*THEN)b|z)c/
11320    aabc
11321 0: aabc
11322 1: ab
11323
11324/^.*?(z|a(*THEN)b)c/
11325    aabc
11326 0: aabc
11327 1: ab
11328
11329/-- --/
11330
11331/-- These studied versions are here because they are not Perl-compatible; the
11332    studying means the mark is not seen. --/
11333
11334/(*MARK:A)(*SKIP:B)(C|X)/KS
11335    C
11336 0: C
11337 1: C
11338MK: A
11339    D
11340No match, mark = A
11341
11342/(*:A)A+(*SKIP:A)(B|Z)/KS
11343    AAAC
11344No match, mark = A
11345
11346/-- --/
11347
11348"(?=a*(*ACCEPT)b)c"
11349    c
11350 0: c
11351    c\N
11352 0: c
11353
11354/(?1)c(?(DEFINE)((*ACCEPT)b))/
11355    c
11356 0: c
11357    c\N
11358 0: c
11359
11360/(?>(*ACCEPT)b)c/
11361    c
11362 0:
11363    c\N
11364No match
11365
11366/(?:(?>(a)))+a%/++
11367    %aa%
11368 0: aa%
11369 0+
11370 1: a
11371 1+ a%
11372
11373/(a)b|ac/++SS
11374    ac\O3
11375 0: ac
11376 0+
11377
11378/(a)(b)x|abc/++
11379     abc\O6
11380 0: abc
11381 0+
11382
11383/(a)bc|(a)(b)\2/
11384    \O3abc
11385Matched, but too many substrings
11386 0: abc
11387    \O4abc
11388Matched, but too many substrings
11389 0: abc
11390
11391/(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11392Capturing subpattern count = 2
11393No options
11394No first char
11395No need char
11396Subject length lower bound = 1
11397No starting char list
11398
11399/(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11400Capturing subpattern count = 2
11401No options
11402No first char
11403No need char
11404Subject length lower bound = 3
11405Starting chars: a b
11406
11407/(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11408Capturing subpattern count = 2
11409No options
11410No first char
11411No need char
11412Subject length lower bound = 4
11413Starting chars: a b
11414
11415/(abc)(?1)/SI
11416Capturing subpattern count = 1
11417No options
11418First char = 'a'
11419Need char = 'c'
11420Subject length lower bound = 6
11421No starting char list
11422
11423/^(?>a)++/
11424    aa\M
11425Minimum match() limit = 5
11426Minimum match() recursion limit = 2
11427 0: aa
11428    aaaaaaaaa\M
11429Minimum match() limit = 12
11430Minimum match() recursion limit = 2
11431 0: aaaaaaaaa
11432
11433/(a)(?1)++/
11434    aa\M
11435Minimum match() limit = 7
11436Minimum match() recursion limit = 4
11437 0: aa
11438 1: a
11439    aaaaaaaaa\M
11440Minimum match() limit = 21
11441Minimum match() recursion limit = 4
11442 0: aaaaaaaaa
11443 1: a
11444
11445/(?:(foo)|(bar)|(baz))X/SS=
11446    bazfooX
11447 0: fooX
11448 1: foo
11449 2: <unset>
11450 3: <unset>
11451    foobazbarX
11452 0: barX
11453 1: <unset>
11454 2: bar
11455 3: <unset>
11456    barfooX
11457 0: fooX
11458 1: foo
11459 2: <unset>
11460 3: <unset>
11461    bazX
11462 0: bazX
11463 1: <unset>
11464 2: <unset>
11465 3: baz
11466    foobarbazX
11467 0: bazX
11468 1: <unset>
11469 2: <unset>
11470 3: baz
11471    bazfooX\O0
11472Matched, but too many substrings
11473    bazfooX\O2
11474Matched, but too many substrings
11475 0: fooX
11476    bazfooX\O4
11477Matched, but too many substrings
11478 0: fooX
11479 1: <unset>
11480    bazfooX\O6
11481Matched, but too many substrings
11482 0: fooX
11483 1: foo
11484 2: <unset>
11485    bazfooX\O8
11486Matched, but too many substrings
11487 0: fooX
11488 1: foo
11489 2: <unset>
11490 3: <unset>
11491    bazfooX\O10
11492 0: fooX
11493 1: foo
11494 2: <unset>
11495 3: <unset>
11496
11497/(?=abc){3}abc/BZ
11498------------------------------------------------------------------
11499        Bra
11500        Assert
11501        abc
11502        Ket
11503        abc
11504        Ket
11505        End
11506------------------------------------------------------------------
11507
11508/(?=abc)+abc/BZ
11509------------------------------------------------------------------
11510        Bra
11511        Assert
11512        abc
11513        Ket
11514        abc
11515        Ket
11516        End
11517------------------------------------------------------------------
11518
11519/(?=abc)++abc/BZ
11520------------------------------------------------------------------
11521        Bra
11522        Assert
11523        abc
11524        Ket
11525        abc
11526        Ket
11527        End
11528------------------------------------------------------------------
11529
11530/(?=abc){0}xyz/BZ
11531------------------------------------------------------------------
11532        Bra
11533        Skip zero
11534        Assert
11535        abc
11536        Ket
11537        xyz
11538        Ket
11539        End
11540------------------------------------------------------------------
11541
11542/(?=(a))?./BZ
11543------------------------------------------------------------------
11544        Bra
11545        Brazero
11546        Assert
11547        CBra 1
11548        a
11549        Ket
11550        Ket
11551        Any
11552        Ket
11553        End
11554------------------------------------------------------------------
11555
11556/(?=(a))??./BZ
11557------------------------------------------------------------------
11558        Bra
11559        Braminzero
11560        Assert
11561        CBra 1
11562        a
11563        Ket
11564        Ket
11565        Any
11566        Ket
11567        End
11568------------------------------------------------------------------
11569
11570/^(?=(a)){0}b(?1)/BZ
11571------------------------------------------------------------------
11572        Bra
11573        ^
11574        Skip zero
11575        Assert
11576        CBra 1
11577        a
11578        Ket
11579        Ket
11580        b
11581        Recurse
11582        Ket
11583        End
11584------------------------------------------------------------------
11585
11586/(?(DEFINE)(a))?b(?1)/BZ
11587------------------------------------------------------------------
11588        Bra
11589        Cond
11590        Cond def
11591        CBra 1
11592        a
11593        Ket
11594        Ket
11595        b
11596        Recurse
11597        Ket
11598        End
11599------------------------------------------------------------------
11600
11601/^(?=(?1))?[az]([abc])d/BZ
11602------------------------------------------------------------------
11603        Bra
11604        ^
11605        Brazero
11606        Assert
11607        Recurse
11608        Ket
11609        [az]
11610        CBra 1
11611        [a-c]
11612        Ket
11613        d
11614        Ket
11615        End
11616------------------------------------------------------------------
11617
11618/^(?!a){0}\w+/BZ
11619------------------------------------------------------------------
11620        Bra
11621        ^
11622        Skip zero
11623        Assert not
11624        a
11625        Ket
11626        \w++
11627        Ket
11628        End
11629------------------------------------------------------------------
11630
11631/(?<=(abc))?xyz/BZ
11632------------------------------------------------------------------
11633        Bra
11634        Brazero
11635        AssertB
11636        Reverse
11637        CBra 1
11638        abc
11639        Ket
11640        Ket
11641        xyz
11642        Ket
11643        End
11644------------------------------------------------------------------
11645
11646/[:a[:abc]b:]/BZ
11647------------------------------------------------------------------
11648        Bra
11649        [:[a-c]
11650        b:]
11651        Ket
11652        End
11653------------------------------------------------------------------
11654
11655/((?2))((?1))/SS
11656    abc
11657Error -26 (nested recursion at the same subject position)
11658
11659/((?(R2)a+|(?1)b))/SS
11660    aaaabcde
11661Error -26 (nested recursion at the same subject position)
11662
11663/(?(R)a*(?1)|((?R))b)/SS
11664    aaaabcde
11665Error -26 (nested recursion at the same subject position)
11666
11667/(a+|(?R)b)/
11668Failed: recursive call could loop indefinitely at offset 7
11669
11670/^(a(*:A)(d|e(*:B))z|aeq)/C
11671    adz
11672--->adz
11673 +0 ^       ^
11674 +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11675 +2 ^       a
11676 +3 ^^      (*:A)
11677 +8 ^^      (d|e(*:B))
11678Latest Mark: A
11679 +9 ^^      d
11680+10 ^ ^     |
11681+18 ^ ^     z
11682+19 ^  ^    |
11683+24 ^  ^
11684 0: adz
11685 1: adz
11686 2: d
11687    aez
11688--->aez
11689 +0 ^       ^
11690 +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11691 +2 ^       a
11692 +3 ^^      (*:A)
11693 +8 ^^      (d|e(*:B))
11694Latest Mark: A
11695 +9 ^^      d
11696+11 ^^      e
11697+12 ^ ^     (*:B)
11698+17 ^ ^     )
11699Latest Mark: B
11700+18 ^ ^     z
11701+19 ^  ^    |
11702+24 ^  ^
11703 0: aez
11704 1: aez
11705 2: e
11706    aeqwerty
11707--->aeqwerty
11708 +0 ^            ^
11709 +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11710 +2 ^            a
11711 +3 ^^           (*:A)
11712 +8 ^^           (d|e(*:B))
11713Latest Mark: A
11714 +9 ^^           d
11715+11 ^^           e
11716+12 ^ ^          (*:B)
11717+17 ^ ^          )
11718Latest Mark: B
11719+18 ^ ^          z
11720+20 ^            a
11721+21 ^^           e
11722+22 ^ ^          q
11723+23 ^  ^         )
11724+24 ^  ^
11725 0: aeq
11726 1: aeq
11727
11728/.(*F)/
11729    \P\Pabc
11730No match
11731
11732/\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11733Capturing subpattern count = 0
11734Max lookbehind = 1
11735No options
11736First char = 't'
11737Need char = 't'
11738Subject length lower bound = 18
11739No starting char list
11740
11741/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11742Capturing subpattern count = 0
11743Max lookbehind = 1
11744No options
11745No first char
11746No need char
11747Subject length lower bound = 8
11748Starting chars: < o t u
11749
11750/a(*SKIP)c|b(*ACCEPT)|/+S!I
11751Capturing subpattern count = 0
11752May match empty string
11753No options
11754No first char
11755No need char
11756Subject length lower bound = -1
11757No starting char list
11758    a
11759 0:
11760 0+
11761
11762/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11763Capturing subpattern count = 0
11764No options
11765No first char
11766No need char
11767Subject length lower bound = -1
11768Starting chars: a b x
11769    ax
11770 0: x
11771
11772'a*(*ACCEPT)b'+
11773    \N\N
11774No match
11775    abc\N\N
11776 0: a
11777 0+ bc
11778    bbb\N\N
11779 0:
11780 0+ bb
11781
11782/(*ACCEPT)a/+I
11783Capturing subpattern count = 0
11784No options
11785No first char
11786No need char
11787    bax
11788 0:
11789 0+ bax
11790
11791/z(*ACCEPT)a/+I
11792Capturing subpattern count = 0
11793No options
11794First char = 'z'
11795No need char
11796    baxzbx
11797 0: z
11798 0+ bx
11799
11800/a(?:.)*?a/ims
11801    \Mabbbbbbbbbbbbbbbbbbbbba
11802Minimum match() limit = 65
11803Minimum match() recursion limit = 2
11804 0: abbbbbbbbbbbbbbbbbbbbba
11805
11806/a(?:.(*THEN))*?a/ims
11807    \Mabbbbbbbbbbbbbbbbbbbbba
11808Minimum match() limit = 86
11809Minimum match() recursion limit = 45
11810 0: abbbbbbbbbbbbbbbbbbbbba
11811
11812/a(?:.(*THEN:ABC))*?a/ims
11813    \Mabbbbbbbbbbbbbbbbbbbbba
11814Minimum match() limit = 86
11815Minimum match() recursion limit = 45
11816 0: abbbbbbbbbbbbbbbbbbbbba
11817
11818/^(?>a+)(?>(z+))\w/BZ
11819------------------------------------------------------------------
11820        Bra
11821        ^
11822        Once_NC
11823        a++
11824        Ket
11825        Once
11826        CBra 1
11827        z++
11828        Ket
11829        Ket
11830        \w
11831        Ket
11832        End
11833------------------------------------------------------------------
11834    aaaazzzzb
11835 0: aaaazzzzb
11836 1: zzzz
11837    ** Failers
11838No match
11839    aazz
11840No match
11841
11842/(.)(\1|a(?2))/
11843    bab
11844 0: bab
11845 1: b
11846 2: ab
11847
11848/\1|(.)(?R)\1/
11849    cbbbc
11850 0: cbbbc
11851 1: c
11852
11853/(.)((?(1)c|a)|a(?2))/
11854    baa
11855No match
11856
11857/(?P<abn>(?P=abn)xxx)/BZ
11858------------------------------------------------------------------
11859        Bra
11860        Once
11861        CBra 1
11862        \1
11863        xxx
11864        Ket
11865        Ket
11866        Ket
11867        End
11868------------------------------------------------------------------
11869
11870/(a\1z)/BZ
11871------------------------------------------------------------------
11872        Bra
11873        Once
11874        CBra 1
11875        a
11876        \1
11877        z
11878        Ket
11879        Ket
11880        Ket
11881        End
11882------------------------------------------------------------------
11883
11884/^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11885     \Maabbccddee
11886Minimum match() limit = 7
11887Minimum match() recursion limit = 2
11888 0: aabbccddee
11889
11890/^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11891     \Maabbccddee
11892Minimum match() limit = 17
11893Minimum match() recursion limit = 16
11894 0: aabbccddee
11895 1: aa
11896 2: bb
11897 3: cc
11898 4: dd
11899 5: ee
11900
11901/^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11902     \Maabbccddee
11903Minimum match() limit = 13
11904Minimum match() recursion limit = 10
11905 0: aabbccddee
11906 1: aa
11907 2: cc
11908 3: ee
11909
11910/^a\x41z/<JS>
11911    aAz
11912 0: aAz
11913    *** Failers
11914No match
11915    ax41z
11916No match
11917
11918/^a[m\x41]z/<JS>
11919    aAz
11920 0: aAz
11921
11922/^a\x1z/<JS>
11923    ax1z
11924 0: ax1z
11925
11926/^a\u0041z/<JS>
11927    aAz
11928 0: aAz
11929    *** Failers
11930No match
11931    au0041z
11932No match
11933
11934/^a[m\u0041]z/<JS>
11935    aAz
11936 0: aAz
11937
11938/^a\u041z/<JS>
11939    au041z
11940 0: au041z
11941    *** Failers
11942No match
11943    aAz
11944No match
11945
11946/^a\U0041z/<JS>
11947    aU0041z
11948 0: aU0041z
11949    *** Failers
11950No match
11951    aAz
11952No match
11953
11954/(?(?=c)c|d)++Y/BZ
11955------------------------------------------------------------------
11956        Bra
11957        BraPos
11958        Cond
11959        Assert
11960        c
11961        Ket
11962        c
11963        Alt
11964        d
11965        Ket
11966        KetRpos
11967        Y
11968        Ket
11969        End
11970------------------------------------------------------------------
11971
11972/(?(?=c)c|d)*+Y/BZ
11973------------------------------------------------------------------
11974        Bra
11975        Braposzero
11976        BraPos
11977        Cond
11978        Assert
11979        c
11980        Ket
11981        c
11982        Alt
11983        d
11984        Ket
11985        KetRpos
11986        Y
11987        Ket
11988        End
11989------------------------------------------------------------------
11990
11991/a[\NB]c/
11992Failed: \N is not supported in a class at offset 3
11993
11994/a[B-\Nc]/
11995Failed: invalid range in character class at offset 5
11996
11997/a[B\Nc]/
11998Failed: \N is not supported in a class at offset 4
11999
12000/(a)(?2){0,1999}?(b)/
12001
12002/(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
12003
12004/--- This test, with something more complicated than individual letters, causes
12005different behaviour in Perl. Perhaps it disables some optimization; no tag is
12006passed back for the failures, whereas in PCRE there is a tag. ---/
12007
12008/(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
12009    AABC
12010 0: AB
12011 1: A
12012 2: B
12013MK: A
12014    XXYZ
12015 0: XXY
12016 1: <unset>
12017 2: <unset>
12018 3: X
12019 4: X
12020 5: Y
12021MK: B
12022    ** Failers
12023No match
12024    XAQQ
12025No match, mark = A
12026    XAQQXZZ
12027No match, mark = A
12028    AXQQQ
12029No match, mark = A
12030    AXXQQQ
12031No match, mark = B
12032
12033/-- Perl doesn't give marks for these, though it does if the alternatives are
12034replaced by single letters. --/
12035
12036/(b|q)(*:m)f|a(*:n)w/K
12037    aw
12038 0: aw
12039MK: n
12040    ** Failers
12041No match, mark = n
12042    abc
12043No match, mark = m
12044
12045/(q|b)(*:m)f|a(*:n)w/K
12046    aw
12047 0: aw
12048MK: n
12049    ** Failers
12050No match, mark = n
12051    abc
12052No match, mark = m
12053
12054/-- After a partial match, the behaviour is as for a failure. --/
12055
12056/^a(*:X)bcde/K
12057   abc\P
12058Partial match, mark=X: abc
12059
12060/-- These are here because Perl doesn't return a mark, except for the first --/
12061
12062/(?=(*:x))(q|)/K+
12063    abc
12064 0:
12065 0+ abc
12066 1:
12067MK: x
12068
12069/(?=(*:x))((*:y)q|)/K+
12070    abc
12071 0:
12072 0+ abc
12073 1:
12074MK: x
12075
12076/(?=(*:x))(?:(*:y)q|)/K+
12077    abc
12078 0:
12079 0+ abc
12080MK: x
12081
12082/(?=(*:x))(?>(*:y)q|)/K+
12083    abc
12084 0:
12085 0+ abc
12086MK: x
12087
12088/(?=a(*:x))(?!a(*:y)c)/K+
12089    ab
12090 0:
12091 0+ ab
12092MK: x
12093
12094/(?=a(*:x))(?=a(*:y)c|)/K+
12095    ab
12096 0:
12097 0+ ab
12098MK: x
12099
12100/(..)\1/
12101    ab\P
12102Partial match: ab
12103    aba\P
12104Partial match: aba
12105    abab\P
12106 0: abab
12107 1: ab
12108
12109/(..)\1/i
12110    ab\P
12111Partial match: ab
12112    abA\P
12113Partial match: abA
12114    aBAb\P
12115 0: aBAb
12116 1: aB
12117
12118/(..)\1{2,}/
12119    ab\P
12120Partial match: ab
12121    aba\P
12122Partial match: aba
12123    abab\P
12124Partial match: abab
12125    ababa\P
12126Partial match: ababa
12127    ababab\P
12128 0: ababab
12129 1: ab
12130    ababab\P\P
12131Partial match: ababab
12132    abababa\P
12133 0: ababab
12134 1: ab
12135    abababa\P\P
12136Partial match: abababa
12137
12138/(..)\1{2,}/i
12139    ab\P
12140Partial match: ab
12141    aBa\P
12142Partial match: aBa
12143    aBAb\P
12144Partial match: aBAb
12145    AbaBA\P
12146Partial match: AbaBA
12147    abABAb\P
12148 0: abABAb
12149 1: ab
12150    aBAbaB\P\P
12151Partial match: aBAbaB
12152    abABabA\P
12153 0: abABab
12154 1: ab
12155    abaBABa\P\P
12156Partial match: abaBABa
12157
12158/(..)\1{2,}?x/i
12159    ab\P
12160Partial match: ab
12161    abA\P
12162Partial match: abA
12163    aBAb\P
12164Partial match: aBAb
12165    abaBA\P
12166Partial match: abaBA
12167    abAbaB\P
12168Partial match: abAbaB
12169    abaBabA\P
12170Partial match: abaBabA
12171    abAbABaBx\P
12172 0: abAbABaBx
12173 1: ab
12174
12175/^(..)\1/
12176    aba\P
12177Partial match: aba
12178
12179/^(..)\1{2,3}x/
12180    aba\P
12181Partial match: aba
12182    ababa\P
12183Partial match: ababa
12184    ababa\P\P
12185Partial match: ababa
12186    abababx
12187 0: abababx
12188 1: ab
12189    ababababx
12190 0: ababababx
12191 1: ab
12192
12193/^(..)\1{2,3}?x/
12194    aba\P
12195Partial match: aba
12196    ababa\P
12197Partial match: ababa
12198    ababa\P\P
12199Partial match: ababa
12200    abababx
12201 0: abababx
12202 1: ab
12203    ababababx
12204 0: ababababx
12205 1: ab
12206
12207/^(..)(\1{2,3})ab/
12208    abababab
12209 0: abababab
12210 1: ab
12211 2: abab
12212
12213/^\R/
12214    \r\P
12215 0: \x0d
12216    \r\P\P
12217Partial match: \x0d
12218
12219/^\R{2,3}x/
12220    \r\P
12221Partial match: \x0d
12222    \r\P\P
12223Partial match: \x0d
12224    \r\r\P
12225Partial match: \x0d\x0d
12226    \r\r\P\P
12227Partial match: \x0d\x0d
12228    \r\r\r\P
12229Partial match: \x0d\x0d\x0d
12230    \r\r\r\P\P
12231Partial match: \x0d\x0d\x0d
12232    \r\rx
12233 0: \x0d\x0dx
12234    \r\r\rx
12235 0: \x0d\x0d\x0dx
12236
12237/^\R{2,3}?x/
12238    \r\P
12239Partial match: \x0d
12240    \r\P\P
12241Partial match: \x0d
12242    \r\r\P
12243Partial match: \x0d\x0d
12244    \r\r\P\P
12245Partial match: \x0d\x0d
12246    \r\r\r\P
12247Partial match: \x0d\x0d\x0d
12248    \r\r\r\P\P
12249Partial match: \x0d\x0d\x0d
12250    \r\rx
12251 0: \x0d\x0dx
12252    \r\r\rx
12253 0: \x0d\x0d\x0dx
12254
12255/^\R?x/
12256    \r\P
12257Partial match: \x0d
12258    \r\P\P
12259Partial match: \x0d
12260    x
12261 0: x
12262    \rx
12263 0: \x0dx
12264
12265/^\R+x/
12266    \r\P
12267Partial match: \x0d
12268    \r\P\P
12269Partial match: \x0d
12270    \r\n\P
12271Partial match: \x0d\x0a
12272    \r\n\P\P
12273Partial match: \x0d\x0a
12274    \rx
12275 0: \x0dx
12276
12277/^a$/<CRLF>
12278    a\r\P
12279Partial match: a\x0d
12280    a\r\P\P
12281Partial match: a\x0d
12282
12283/^a$/m<CRLF>
12284    a\r\P
12285Partial match: a\x0d
12286    a\r\P\P
12287Partial match: a\x0d
12288
12289/^(a$|a\r)/<CRLF>
12290    a\r\P
12291 0: a\x0d
12292 1: a\x0d
12293    a\r\P\P
12294Partial match: a\x0d
12295
12296/^(a$|a\r)/m<CRLF>
12297    a\r\P
12298 0: a\x0d
12299 1: a\x0d
12300    a\r\P\P
12301Partial match: a\x0d
12302
12303/./<CRLF>
12304    \r\P
12305 0: \x0d
12306    \r\P\P
12307Partial match: \x0d
12308
12309/.{2,3}/<CRLF>
12310    \r\P
12311Partial match: \x0d
12312    \r\P\P
12313Partial match: \x0d
12314    \r\r\P
12315 0: \x0d\x0d
12316    \r\r\P\P
12317Partial match: \x0d\x0d
12318    \r\r\r\P
12319 0: \x0d\x0d\x0d
12320    \r\r\r\P\P
12321Partial match: \x0d\x0d\x0d
12322
12323/.{2,3}?/<CRLF>
12324    \r\P
12325Partial match: \x0d
12326    \r\P\P
12327Partial match: \x0d
12328    \r\r\P
12329 0: \x0d\x0d
12330    \r\r\P\P
12331Partial match: \x0d\x0d
12332    \r\r\r\P
12333 0: \x0d\x0d
12334    \r\r\r\P\P
12335 0: \x0d\x0d
12336
12337"AB(C(D))(E(F))?(?(?=\2)(?=\4))"
12338    ABCDGHI\O03
12339Matched, but too many substrings
12340 0: ABCD
12341
12342/-- These are all run as real matches in test 1; here we are just checking the
12343settings of the anchored and startline bits. --/
12344
12345/(?>.*?a)(?<=ba)/I
12346Capturing subpattern count = 0
12347Max lookbehind = 2
12348No options
12349No first char
12350Need char = 'a'
12351
12352/(?:.*?a)(?<=ba)/I
12353Capturing subpattern count = 0
12354Max lookbehind = 2
12355No options
12356First char at start or follows newline
12357Need char = 'a'
12358
12359/.*?a(*PRUNE)b/I
12360Capturing subpattern count = 0
12361No options
12362No first char
12363Need char = 'b'
12364
12365/.*?a(*PRUNE)b/sI
12366Capturing subpattern count = 0
12367Options: dotall
12368No first char
12369Need char = 'b'
12370
12371/^a(*PRUNE)b/sI
12372Capturing subpattern count = 0
12373Options: anchored dotall
12374No first char
12375No need char
12376
12377/.*?a(*SKIP)b/I
12378Capturing subpattern count = 0
12379No options
12380No first char
12381Need char = 'b'
12382
12383/(?>.*?a)b/sI
12384Capturing subpattern count = 0
12385Options: dotall
12386No first char
12387Need char = 'b'
12388
12389/(?>.*?a)b/I
12390Capturing subpattern count = 0
12391No options
12392No first char
12393Need char = 'b'
12394
12395/(?>^a)b/sI
12396Capturing subpattern count = 0
12397Options: anchored dotall
12398No first char
12399No need char
12400
12401/(?>.*?)(?<=(abcd)|(wxyz))/I
12402Capturing subpattern count = 2
12403Max lookbehind = 4
12404May match empty string
12405No options
12406No first char
12407No need char
12408
12409/(?>.*)(?<=(abcd)|(wxyz))/I
12410Capturing subpattern count = 2
12411Max lookbehind = 4
12412May match empty string
12413No options
12414No first char
12415No need char
12416
12417"(?>.*)foo"I
12418Capturing subpattern count = 0
12419No options
12420No first char
12421Need char = 'o'
12422
12423"(?>.*?)foo"I
12424Capturing subpattern count = 0
12425No options
12426No first char
12427Need char = 'o'
12428
12429/(?>^abc)/mI
12430Capturing subpattern count = 0
12431Options: multiline
12432First char at start or follows newline
12433Need char = 'c'
12434
12435/(?>.*abc)/mI
12436Capturing subpattern count = 0
12437Options: multiline
12438No first char
12439Need char = 'c'
12440
12441/(?:.*abc)/mI
12442Capturing subpattern count = 0
12443Options: multiline
12444First char at start or follows newline
12445Need char = 'c'
12446
12447/-- Check PCRE_STUDY_EXTRA_NEEDED --/
12448
12449/.?/S-I
12450Capturing subpattern count = 0
12451May match empty string
12452No options
12453No first char
12454No need char
12455Study returned NULL
12456
12457/.?/S!I
12458Capturing subpattern count = 0
12459May match empty string
12460No options
12461No first char
12462No need char
12463Subject length lower bound = -1
12464No starting char list
12465
12466/(?:(a)+(?C1)bb|aa(?C2)b)/
12467    aab\C+
12468Callout 1: last capture = 1
12469 0: <unset>
12470 1: a
12471--->aab
12472    ^ ^     b
12473Callout 1: last capture = 1
12474 0: <unset>
12475 1: a
12476--->aab
12477    ^^      b
12478Callout 2: last capture = -1
12479 0: <unset>
12480--->aab
12481    ^ ^     b
12482 0: aab
12483
12484/(?:(a)++(?C1)bb|aa(?C2)b)/
12485    aab\C+
12486Callout 1: last capture = 1
12487 0: <unset>
12488 1: a
12489--->aab
12490    ^ ^     b
12491Callout 2: last capture = -1
12492 0: <unset>
12493--->aab
12494    ^ ^     b
12495 0: aab
12496
12497/(?:(?>(a))(?C1)bb|aa(?C2)b)/
12498    aab\C+
12499Callout 1: last capture = 1
12500 0: <unset>
12501 1: a
12502--->aab
12503    ^^      b
12504Callout 2: last capture = -1
12505 0: <unset>
12506--->aab
12507    ^ ^     b
12508 0: aab
12509
12510/(?:(?1)(?C1)x|ab(?C2))((a)){0}/
12511    aab\C+
12512Callout 1: last capture = -1
12513 0: <unset>
12514--->aab
12515    ^^      x
12516Callout 1: last capture = -1
12517 0: <unset>
12518--->aab
12519     ^^     x
12520Callout 2: last capture = -1
12521 0: <unset>
12522--->aab
12523     ^ ^    )
12524 0: ab
12525
12526/(?1)(?C1)((a)(?C2)){0}/
12527    aab\C+
12528Callout 2: last capture = 2
12529 0: <unset>
12530 1: <unset>
12531 2: a
12532--->aab
12533    ^^      )
12534Callout 1: last capture = -1
12535 0: <unset>
12536--->aab
12537    ^^      ((a)(?C2)){0}
12538 0: a
12539
12540/(?:(a)+(?C1)bb|aa(?C2)b)++/
12541    aab\C+
12542Callout 1: last capture = 1
12543 0: <unset>
12544 1: a
12545--->aab
12546    ^ ^     b
12547Callout 1: last capture = 1
12548 0: <unset>
12549 1: a
12550--->aab
12551    ^^      b
12552Callout 2: last capture = -1
12553 0: <unset>
12554--->aab
12555    ^ ^     b
12556 0: aab
12557    aab\C+\O2
12558Callout 1: last capture = 1
12559 0: <unset>
12560--->aab
12561    ^ ^     b
12562Callout 1: last capture = 1
12563 0: <unset>
12564--->aab
12565    ^^      b
12566Callout 2: last capture = -1
12567 0: <unset>
12568--->aab
12569    ^ ^     b
12570 0: aab
12571
12572/(ab)x|ab/
12573    ab\O3
12574 0: ab
12575    ab\O2
12576 0: ab
12577
12578/(ab)/
12579    ab\O3
12580Matched, but too many substrings
12581 0: ab
12582    ab\O2
12583Matched, but too many substrings
12584 0: ab
12585
12586/(?<=123)(*MARK:xx)abc/K
12587    xxxx123a\P\P
12588Partial match at offset 7, mark=xx: 123a
12589    xxxx123a\P
12590Partial match at offset 7, mark=xx: 123a
12591
12592/123\Kabc/
12593    xxxx123a\P\P
12594Partial match: 123a
12595    xxxx123a\P
12596Partial match: 123a
12597
12598/^(?(?=a)aa|bb)/C
12599    bb
12600--->bb
12601 +0 ^      ^
12602 +1 ^      (?(?=a)aa|bb)
12603 +3 ^      (?=a)
12604 +6 ^      a
12605+11 ^      b
12606+12 ^^     b
12607+13 ^ ^    )
12608+14 ^ ^
12609 0: bb
12610
12611/(?C1)^(?C2)(?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))(?C11)/
12612    bb
12613--->bb
12614  1 ^      ^
12615  2 ^      (?(?C99)(?=(?C3)a(?C4))(?C5)a(?C6)a(?C7)|(?C8)b(?C9)b(?C10))
12616 99 ^      (?=(?C3)a(?C4))
12617  3 ^      a
12618  8 ^      b
12619  9 ^^     b
12620 10 ^ ^    )
12621 11 ^ ^
12622 0: bb
12623
12624/-- Perl seems to have a bug with this one --/
12625
12626/aaaaa(*COMMIT)(*PRUNE)b|a+c/
12627    aaaaaac
12628 0: aaaac
12629
12630/-- Here are some that Perl treats differently because of the way it handles
12631backtracking verbs. --/
12632
12633 /(?!a(*COMMIT)b)ac|ad/
12634     ac
12635 0: ac
12636     ad
12637 0: ad
12638
12639/^(?!a(*THEN)b|ac)../
12640     ac
12641No match
12642     ad
12643 0: ad
12644
12645/^(?=a(*THEN)b|ac)/
12646    ac
12647 0:
12648
12649/\A.*?(?:a|b(*THEN)c)/
12650    ba
12651 0: ba
12652
12653/\A.*?(?:a|b(*THEN)c)++/
12654    ba
12655 0: ba
12656
12657/\A.*?(?:a|b(*THEN)c|d)/
12658    ba
12659 0: ba
12660
12661/(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/
12662    aac
12663 0: aac
12664
12665/\A.*?(a|b(*THEN)c)/
12666    ba
12667 0: ba
12668 1: a
12669
12670/^(A(*THEN)B|A(*THEN)D)/
12671    AD
12672 0: AD
12673 1: AD
12674
12675/(?!b(*THEN)a)bn|bnn/
12676    bnn
12677 0: bn
12678
12679/(?(?=b(*SKIP)a)bn|bnn)/
12680    bnn
12681No match
12682
12683/(?=b(*THEN)a|)bn|bnn/
12684    bnn
12685 0: bn
12686
12687/-------------------------/
12688
12689/(*LIMIT_MATCH=12bc)abc/
12690Failed: (*VERB) not recognized or malformed at offset 7
12691
12692/(*LIMIT_MATCH=4294967290)abc/
12693Failed: (*VERB) not recognized or malformed at offset 7
12694
12695/(*LIMIT_RECURSION=4294967280)abc/I
12696Capturing subpattern count = 0
12697Recursion limit = 4294967280
12698No options
12699First char = 'a'
12700Need char = 'c'
12701
12702/(a+)*zz/
12703    aaaaaaaaaaaaaz
12704No match
12705    aaaaaaaaaaaaaz\q3000
12706Error -8 (match limit exceeded)
12707
12708/(a+)*zz/S-
12709    aaaaaaaaaaaaaz\Q10
12710Error -21 (recursion limit exceeded)
12711
12712/(*LIMIT_MATCH=3000)(a+)*zz/I
12713Capturing subpattern count = 1
12714Match limit = 3000
12715No options
12716No first char
12717Need char = 'z'
12718    aaaaaaaaaaaaaz
12719Error -8 (match limit exceeded)
12720    aaaaaaaaaaaaaz\q60000
12721Error -8 (match limit exceeded)
12722
12723/(*LIMIT_MATCH=60000)(*LIMIT_MATCH=3000)(a+)*zz/I
12724Capturing subpattern count = 1
12725Match limit = 3000
12726No options
12727No first char
12728Need char = 'z'
12729    aaaaaaaaaaaaaz
12730Error -8 (match limit exceeded)
12731
12732/(*LIMIT_MATCH=60000)(a+)*zz/I
12733Capturing subpattern count = 1
12734Match limit = 60000
12735No options
12736No first char
12737Need char = 'z'
12738    aaaaaaaaaaaaaz
12739No match
12740    aaaaaaaaaaaaaz\q3000
12741Error -8 (match limit exceeded)
12742
12743/(*LIMIT_RECURSION=10)(a+)*zz/IS-
12744Capturing subpattern count = 1
12745Recursion limit = 10
12746No options
12747No first char
12748Need char = 'z'
12749Subject length lower bound = 2
12750Starting chars: a z
12751    aaaaaaaaaaaaaz
12752Error -21 (recursion limit exceeded)
12753    aaaaaaaaaaaaaz\Q1000
12754Error -21 (recursion limit exceeded)
12755
12756/(*LIMIT_RECURSION=10)(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12757Capturing subpattern count = 1
12758Recursion limit = 10
12759No options
12760No first char
12761Need char = 'z'
12762Subject length lower bound = 2
12763Starting chars: a z
12764    aaaaaaaaaaaaaz
12765Error -21 (recursion limit exceeded)
12766
12767/(*LIMIT_RECURSION=1000)(a+)*zz/IS-
12768Capturing subpattern count = 1
12769Recursion limit = 1000
12770No options
12771No first char
12772Need char = 'z'
12773Subject length lower bound = 2
12774Starting chars: a z
12775    aaaaaaaaaaaaaz
12776No match
12777    aaaaaaaaaaaaaz\Q10
12778Error -21 (recursion limit exceeded)
12779
12780/-- This test causes a segfault with Perl 5.18.0 --/
12781
12782/^(?=(a)){0}b(?1)/
12783    backgammon
12784 0: ba
12785
12786/(?|(?<n>f)|(?<n>b))/JI
12787Capturing subpattern count = 1
12788Named capturing subpatterns:
12789  n   1
12790Options: dupnames
12791No first char
12792No need char
12793
12794/(?<a>abc)(?<a>z)\k<a>()/JDZS
12795------------------------------------------------------------------
12796        Bra
12797        CBra 1
12798        abc
12799        Ket
12800        CBra 2
12801        z
12802        Ket
12803        \k<a>2
12804        CBra 3
12805        Ket
12806        Ket
12807        End
12808------------------------------------------------------------------
12809Capturing subpattern count = 3
12810Max back reference = 2
12811Named capturing subpatterns:
12812  a   1
12813  a   2
12814Options: dupnames
12815First char = 'a'
12816Need char = 'z'
12817Subject length lower bound = 5
12818No starting char list
12819
12820/a*[bcd]/BZ
12821------------------------------------------------------------------
12822        Bra
12823        a*+
12824        [b-d]
12825        Ket
12826        End
12827------------------------------------------------------------------
12828
12829/[bcd]*a/BZ
12830------------------------------------------------------------------
12831        Bra
12832        [b-d]*+
12833        a
12834        Ket
12835        End
12836------------------------------------------------------------------
12837
12838/-- A complete set of tests for auto-possessification of character types --/
12839
12840/\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
12841------------------------------------------------------------------
12842        Bra
12843        \D+
12844        \D
12845        \D++
12846        \d
12847        \D+
12848        \S
12849        \D+
12850        \s
12851        \D+
12852        \W
12853        \D+
12854        \w
12855        \D+
12856        Any
12857        \D+
12858        AllAny
12859        \D+
12860        \R
12861        \D+
12862        \H
12863        \D+
12864        \h
12865        \D+
12866        \V
12867        \D+
12868        \v
12869        \D+
12870        \Z
12871        \D++
12872        \z
12873        \D+
12874        $
12875        Ket
12876        End
12877------------------------------------------------------------------
12878
12879/\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
12880------------------------------------------------------------------
12881        Bra
12882        \d++
12883        \D
12884        \d+
12885        \d
12886        \d+
12887        \S
12888        \d++
12889        \s
12890        \d++
12891        \W
12892        \d+
12893        \w
12894        \d+
12895        Any
12896        \d+
12897        AllAny
12898        \d++
12899        \R
12900        \d+
12901        \H
12902        \d++
12903        \h
12904        \d+
12905        \V
12906        \d++
12907        \v
12908        \d++
12909        \Z
12910        \d++
12911        \z
12912        \d++
12913        $
12914        Ket
12915        End
12916------------------------------------------------------------------
12917
12918/\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
12919------------------------------------------------------------------
12920        Bra
12921        \S+
12922        \D
12923        \S+
12924        \d
12925        \S+
12926        \S
12927        \S++
12928        \s
12929        \S+
12930        \W
12931        \S+
12932        \w
12933        \S+
12934        Any
12935        \S+
12936        AllAny
12937        \S++
12938        \R
12939        \S+
12940        \H
12941        \S++
12942        \h
12943        \S+
12944        \V
12945        \S++
12946        \v
12947        \S++
12948        \Z
12949        \S++
12950        \z
12951        \S++
12952        $
12953        Ket
12954        End
12955------------------------------------------------------------------
12956
12957/\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
12958------------------------------------------------------------------
12959        Bra
12960        \s+
12961        \D
12962        \s++
12963        \d
12964        \s++
12965        \S
12966        \s+
12967        \s
12968        \s+
12969        \W
12970        \s++
12971        \w
12972        \s+
12973        Any
12974        \s+
12975        AllAny
12976        \s+
12977        \R
12978        \s+
12979        \H
12980        \s+
12981        \h
12982        \s+
12983        \V
12984        \s+
12985        \v
12986        \s+
12987        \Z
12988        \s++
12989        \z
12990        \s+
12991        $
12992        Ket
12993        End
12994------------------------------------------------------------------
12995
12996/\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
12997------------------------------------------------------------------
12998        Bra
12999        \W+
13000        \D
13001        \W++
13002        \d
13003        \W+
13004        \S
13005        \W+
13006        \s
13007        \W+
13008        \W
13009        \W++
13010        \w
13011        \W+
13012        Any
13013        \W+
13014        AllAny
13015        \W+
13016        \R
13017        \W+
13018        \H
13019        \W+
13020        \h
13021        \W+
13022        \V
13023        \W+
13024        \v
13025        \W+
13026        \Z
13027        \W++
13028        \z
13029        \W+
13030        $
13031        Ket
13032        End
13033------------------------------------------------------------------
13034
13035/\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
13036------------------------------------------------------------------
13037        Bra
13038        \w+
13039        \D
13040        \w+
13041        \d
13042        \w+
13043        \S
13044        \w++
13045        \s
13046        \w++
13047        \W
13048        \w+
13049        \w
13050        \w+
13051        Any
13052        \w+
13053        AllAny
13054        \w++
13055        \R
13056        \w+
13057        \H
13058        \w++
13059        \h
13060        \w+
13061        \V
13062        \w++
13063        \v
13064        \w++
13065        \Z
13066        \w++
13067        \z
13068        \w++
13069        $
13070        Ket
13071        End
13072------------------------------------------------------------------
13073
13074/\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
13075------------------------------------------------------------------
13076        Bra
13077        AllAny+
13078        \D
13079        AllAny+
13080        \d
13081        AllAny+
13082        \S
13083        AllAny+
13084        \s
13085        AllAny+
13086        \W
13087        AllAny+
13088        \w
13089        AllAny+
13090        Any
13091        AllAny+
13092        AllAny
13093        AllAny+
13094        \R
13095        AllAny+
13096        \H
13097        AllAny+
13098        \h
13099        AllAny+
13100        \V
13101        AllAny+
13102        \v
13103        AllAny+
13104        \Z
13105        AllAny++
13106        \z
13107        AllAny+
13108        $
13109        Ket
13110        End
13111------------------------------------------------------------------
13112
13113/\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
13114------------------------------------------------------------------
13115        Bra
13116        \R+
13117        \D
13118        \R++
13119        \d
13120        \R+
13121        \S
13122        \R++
13123        \s
13124        \R+
13125        \W
13126        \R++
13127        \w
13128        \R++
13129        Any
13130        \R+
13131        AllAny
13132        \R+
13133        \R
13134        \R+
13135        \H
13136        \R++
13137        \h
13138        \R+
13139        \V
13140        \R+
13141        \v
13142        \R+
13143        \Z
13144        \R++
13145        \z
13146        \R+
13147        $
13148        Ket
13149        End
13150------------------------------------------------------------------
13151
13152/\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
13153------------------------------------------------------------------
13154        Bra
13155        \H+
13156        \D
13157        \H+
13158        \d
13159        \H+
13160        \S
13161        \H+
13162        \s
13163        \H+
13164        \W
13165        \H+
13166        \w
13167        \H+
13168        Any
13169        \H+
13170        AllAny
13171        \H+
13172        \R
13173        \H+
13174        \H
13175        \H++
13176        \h
13177        \H+
13178        \V
13179        \H+
13180        \v
13181        \H+
13182        \Z
13183        \H++
13184        \z
13185        \H+
13186        $
13187        Ket
13188        End
13189------------------------------------------------------------------
13190
13191/\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
13192------------------------------------------------------------------
13193        Bra
13194        \h+
13195        \D
13196        \h++
13197        \d
13198        \h++
13199        \S
13200        \h+
13201        \s
13202        \h+
13203        \W
13204        \h++
13205        \w
13206        \h+
13207        Any
13208        \h+
13209        AllAny
13210        \h++
13211        \R
13212        \h++
13213        \H
13214        \h+
13215        \h
13216        \h+
13217        \V
13218        \h++
13219        \v
13220        \h+
13221        \Z
13222        \h++
13223        \z
13224        \h+
13225        $
13226        Ket
13227        End
13228------------------------------------------------------------------
13229
13230/\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
13231------------------------------------------------------------------
13232        Bra
13233        \V+
13234        \D
13235        \V+
13236        \d
13237        \V+
13238        \S
13239        \V+
13240        \s
13241        \V+
13242        \W
13243        \V+
13244        \w
13245        \V+
13246        Any
13247        \V+
13248        AllAny
13249        \V++
13250        \R
13251        \V+
13252        \H
13253        \V+
13254        \h
13255        \V+
13256        \V
13257        \V++
13258        \v
13259        \V+
13260        \Z
13261        \V++
13262        \z
13263        \V+
13264        $
13265        Ket
13266        End
13267------------------------------------------------------------------
13268
13269/\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
13270------------------------------------------------------------------
13271        Bra
13272        \v+
13273        \D
13274        \v++
13275        \d
13276        \v++
13277        \S
13278        \v+
13279        \s
13280        \v+
13281        \W
13282        \v++
13283        \w
13284        \v+
13285        Any
13286        \v+
13287        AllAny
13288        \v+
13289        \R
13290        \v+
13291        \H
13292        \v++
13293        \h
13294        \v++
13295        \V
13296        \v+
13297        \v
13298        \v+
13299        \Z
13300        \v++
13301        \z
13302        \v+
13303        $
13304        Ket
13305        End
13306------------------------------------------------------------------
13307
13308/ 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
13309------------------------------------------------------------------
13310        Bra
13311        a+
13312        \D
13313        a++
13314        \d
13315        a+
13316        \S
13317        a++
13318        \s
13319        a++
13320        \W
13321        a+
13322        \w
13323        a+
13324        Any
13325        a+
13326        AllAny
13327        a++
13328        \R
13329        a+
13330        \H
13331        a++
13332        \h
13333        a+
13334        \V
13335        a++
13336        \v
13337        a++
13338        \Z
13339        a++
13340        \z
13341        a++
13342        $
13343        Ket
13344        End
13345------------------------------------------------------------------
13346
13347/\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
13348------------------------------------------------------------------
13349        Bra
13350        \x0a+
13351        \D
13352        \x0a++
13353        \d
13354        \x0a++
13355        \S
13356        \x0a+
13357        \s
13358        \x0a+
13359        \W
13360        \x0a++
13361        \w
13362        \x0a+
13363        Any
13364        \x0a+
13365        AllAny
13366        \x0a+
13367        \R
13368        \x0a+
13369        \H
13370        \x0a++
13371        \h
13372        \x0a++
13373        \V
13374        \x0a+
13375        \v
13376        \x0a+
13377        \Z
13378        \x0a++
13379        \z
13380        \x0a+
13381        $
13382        Ket
13383        End
13384------------------------------------------------------------------
13385
13386/ .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZx
13387------------------------------------------------------------------
13388        Bra
13389        Any+
13390        \D
13391        Any+
13392        \d
13393        Any+
13394        \S
13395        Any+
13396        \s
13397        Any+
13398        \W
13399        Any+
13400        \w
13401        Any+
13402        Any
13403        Any+
13404        AllAny
13405        Any++
13406        \R
13407        Any+
13408        \H
13409        Any+
13410        \h
13411        Any+
13412        \V
13413        Any+
13414        \v
13415        Any+
13416        \Z
13417        Any++
13418        \z
13419        Any+
13420        $
13421        Ket
13422        End
13423------------------------------------------------------------------
13424
13425/ .+\D  .+\d  .+\S  .+\s  .+\W  .+\w  .+.  .+\C  .+\R  .+\H  .+\h  .+\V  .+\v  .+\Z  .+\z  .+$/BZxs
13426------------------------------------------------------------------
13427        Bra
13428        AllAny+
13429        \D
13430        AllAny+
13431        \d
13432        AllAny+
13433        \S
13434        AllAny+
13435        \s
13436        AllAny+
13437        \W
13438        AllAny+
13439        \w
13440        AllAny+
13441        AllAny
13442        AllAny+
13443        AllAny
13444        AllAny+
13445        \R
13446        AllAny+
13447        \H
13448        AllAny+
13449        \h
13450        AllAny+
13451        \V
13452        AllAny+
13453        \v
13454        AllAny+
13455        \Z
13456        AllAny++
13457        \z
13458        AllAny+
13459        $
13460        Ket
13461        End
13462------------------------------------------------------------------
13463
13464/\D+$  \d+$  \S+$  \s+$  \W+$  \w+$  \C+$  \R+$  \H+$  \h+$  \V+$  \v+$   a+$  \n+$   .+$  .+$/BZxm
13465------------------------------------------------------------------
13466        Bra
13467        \D+
13468     /m $
13469        \d++
13470     /m $
13471        \S++
13472     /m $
13473        \s+
13474     /m $
13475        \W+
13476     /m $
13477        \w++
13478     /m $
13479        AllAny+
13480     /m $
13481        \R+
13482     /m $
13483        \H+
13484     /m $
13485        \h+
13486     /m $
13487        \V+
13488     /m $
13489        \v+
13490     /m $
13491        a+
13492     /m $
13493        \x0a+
13494     /m $
13495        Any+
13496     /m $
13497        Any+
13498     /m $
13499        Ket
13500        End
13501------------------------------------------------------------------
13502
13503/(?=a+)a(a+)++a/BZ
13504------------------------------------------------------------------
13505        Bra
13506        Assert
13507        a++
13508        Ket
13509        a
13510        CBraPos 1
13511        a++
13512        KetRpos
13513        a
13514        Ket
13515        End
13516------------------------------------------------------------------
13517
13518/a+(bb|cc)a+(?:bb|cc)a+(?>bb|cc)a+(?:bb|cc)+a+(aa)a+(?:bb|aa)/BZ
13519------------------------------------------------------------------
13520        Bra
13521        a++
13522        CBra 1
13523        bb
13524        Alt
13525        cc
13526        Ket
13527        a++
13528        Bra
13529        bb
13530        Alt
13531        cc
13532        Ket
13533        a++
13534        Once_NC
13535        bb
13536        Alt
13537        cc
13538        Ket
13539        a++
13540        Bra
13541        bb
13542        Alt
13543        cc
13544        KetRmax
13545        a+
13546        CBra 2
13547        aa
13548        Ket
13549        a+
13550        Bra
13551        bb
13552        Alt
13553        aa
13554        Ket
13555        Ket
13556        End
13557------------------------------------------------------------------
13558
13559/a+(bb|cc)?#a+(?:bb|cc)??#a+(?:bb|cc)?+#a+(?:bb|cc)*#a+(bb|cc)?a#a+(?:aa)?/BZ
13560------------------------------------------------------------------
13561        Bra
13562        a++
13563        Brazero
13564        CBra 1
13565        bb
13566        Alt
13567        cc
13568        Ket
13569        #
13570        a++
13571        Braminzero
13572        Bra
13573        bb
13574        Alt
13575        cc
13576        Ket
13577        #
13578        a++
13579        Once
13580        Brazero
13581        Bra
13582        bb
13583        Alt
13584        cc
13585        Ket
13586        Ket
13587        #
13588        a++
13589        Brazero
13590        Bra
13591        bb
13592        Alt
13593        cc
13594        KetRmax
13595        #
13596        a+
13597        Brazero
13598        CBra 2
13599        bb
13600        Alt
13601        cc
13602        Ket
13603        a#
13604        a+
13605        Brazero
13606        Bra
13607        aa
13608        Ket
13609        Ket
13610        End
13611------------------------------------------------------------------
13612
13613/a+(?:bb)?a#a+(?:|||)#a+(?:|b)a#a+(?:|||)?a/BZ
13614------------------------------------------------------------------
13615        Bra
13616        a+
13617        Brazero
13618        Bra
13619        bb
13620        Ket
13621        a#
13622        a++
13623        Bra
13624        Alt
13625        Alt
13626        Alt
13627        Ket
13628        #
13629        a+
13630        Bra
13631        Alt
13632        b
13633        Ket
13634        a#
13635        a+
13636        Brazero
13637        Bra
13638        Alt
13639        Alt
13640        Alt
13641        Ket
13642        a
13643        Ket
13644        End
13645------------------------------------------------------------------
13646
13647/[ab]*/BZ
13648------------------------------------------------------------------
13649        Bra
13650        [ab]*+
13651        Ket
13652        End
13653------------------------------------------------------------------
13654    aaaa
13655 0: aaaa
13656
13657/[ab]*?/BZ
13658------------------------------------------------------------------
13659        Bra
13660        [ab]*?
13661        Ket
13662        End
13663------------------------------------------------------------------
13664    aaaa
13665 0:
13666
13667/[ab]?/BZ
13668------------------------------------------------------------------
13669        Bra
13670        [ab]?+
13671        Ket
13672        End
13673------------------------------------------------------------------
13674    aaaa
13675 0: a
13676
13677/[ab]??/BZ
13678------------------------------------------------------------------
13679        Bra
13680        [ab]??
13681        Ket
13682        End
13683------------------------------------------------------------------
13684    aaaa
13685 0:
13686
13687/[ab]+/BZ
13688------------------------------------------------------------------
13689        Bra
13690        [ab]++
13691        Ket
13692        End
13693------------------------------------------------------------------
13694    aaaa
13695 0: aaaa
13696
13697/[ab]+?/BZ
13698------------------------------------------------------------------
13699        Bra
13700        [ab]+?
13701        Ket
13702        End
13703------------------------------------------------------------------
13704    aaaa
13705 0: a
13706
13707/[ab]{2,3}/BZ
13708------------------------------------------------------------------
13709        Bra
13710        [ab]{2,3}+
13711        Ket
13712        End
13713------------------------------------------------------------------
13714    aaaa
13715 0: aaa
13716
13717/[ab]{2,3}?/BZ
13718------------------------------------------------------------------
13719        Bra
13720        [ab]{2,3}?
13721        Ket
13722        End
13723------------------------------------------------------------------
13724    aaaa
13725 0: aa
13726
13727/[ab]{2,}/BZ
13728------------------------------------------------------------------
13729        Bra
13730        [ab]{2,}+
13731        Ket
13732        End
13733------------------------------------------------------------------
13734    aaaa
13735 0: aaaa
13736
13737/[ab]{2,}?/BZ
13738------------------------------------------------------------------
13739        Bra
13740        [ab]{2,}?
13741        Ket
13742        End
13743------------------------------------------------------------------
13744    aaaa
13745 0: aa
13746
13747/\d+\s{0,5}=\s*\S?=\w{0,4}\W*/BZ
13748------------------------------------------------------------------
13749        Bra
13750        \d++
13751        \s{0,5}+
13752        =
13753        \s*+
13754        \S?
13755        =
13756        \w{0,4}+
13757        \W*+
13758        Ket
13759        End
13760------------------------------------------------------------------
13761
13762/[a-d]{5,12}[e-z0-9]*#[^a-z]+[b-y]*a[2-7]?[^0-9a-z]+/BZ
13763------------------------------------------------------------------
13764        Bra
13765        [a-d]{5,12}+
13766        [0-9e-z]*+
13767        #
13768        [\x00-`{-\xff] (neg)++
13769        [b-y]*+
13770        a
13771        [2-7]?+
13772        [\x00-/:-`{-\xff] (neg)++
13773        Ket
13774        End
13775------------------------------------------------------------------
13776
13777/[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
13778------------------------------------------------------------------
13779        Bra
13780        [a-z]*+
13781        \s
13782        #
13783        [\x09 ]?+
13784        \S
13785        #
13786        [a-c]*
13787        \S
13788        #
13789        [C-G]++
13790        \d
13791        #
13792        [4-8]*+
13793        \D
13794        #
13795        [,4-9]*
13796        \D
13797        #
13798        [!$]{0,5}+
13799        \w
13800        #
13801        [M-Xf-l]++
13802        \W
13803        #
13804        [,a-c]?
13805        \W
13806        Ket
13807        End
13808------------------------------------------------------------------
13809
13810/a+(aa|bb)*c#a*(bb|cc)*a#a?(bb|cc)*d#[a-f]*(g|hh)*f/BZ
13811------------------------------------------------------------------
13812        Bra
13813        a+
13814        Brazero
13815        CBra 1
13816        aa
13817        Alt
13818        bb
13819        KetRmax
13820        c#
13821        a*
13822        Brazero
13823        CBra 2
13824        bb
13825        Alt
13826        cc
13827        KetRmax
13828        a#
13829        a?+
13830        Brazero
13831        CBra 3
13832        bb
13833        Alt
13834        cc
13835        KetRmax
13836        d#
13837        [a-f]*
13838        Brazero
13839        CBra 4
13840        g
13841        Alt
13842        hh
13843        KetRmax
13844        f
13845        Ket
13846        End
13847------------------------------------------------------------------
13848
13849/[a-f]*(g|hh|i)*i#[a-x]{4,}(y{0,6})*y#[a-k]+(ll|mm)+n/BZ
13850------------------------------------------------------------------
13851        Bra
13852        [a-f]*+
13853        Brazero
13854        CBra 1
13855        g
13856        Alt
13857        hh
13858        Alt
13859        i
13860        KetRmax
13861        i#
13862        [a-x]{4,}
13863        Brazero
13864        SCBra 2
13865        y{0,6}
13866        KetRmax
13867        y#
13868        [a-k]++
13869        CBra 3
13870        ll
13871        Alt
13872        mm
13873        KetRmax
13874        n
13875        Ket
13876        End
13877------------------------------------------------------------------
13878
13879/[a-f]*(?>gg|hh)+#[a-f]*(?>gg|hh)?#[a-f]*(?>gg|hh)*a#[a-f]*(?>gg|hh)*h/BZ
13880------------------------------------------------------------------
13881        Bra
13882        [a-f]*+
13883        Once_NC
13884        gg
13885        Alt
13886        hh
13887        KetRmax
13888        #
13889        [a-f]*+
13890        Brazero
13891        Once_NC
13892        gg
13893        Alt
13894        hh
13895        Ket
13896        #
13897        [a-f]*
13898        Brazero
13899        Once_NC
13900        gg
13901        Alt
13902        hh
13903        KetRmax
13904        a#
13905        [a-f]*+
13906        Brazero
13907        Once_NC
13908        gg
13909        Alt
13910        hh
13911        KetRmax
13912        h
13913        Ket
13914        End
13915------------------------------------------------------------------
13916
13917/[a-c]*d/DZS
13918------------------------------------------------------------------
13919        Bra
13920        [a-c]*+
13921        d
13922        Ket
13923        End
13924------------------------------------------------------------------
13925Capturing subpattern count = 0
13926No options
13927No first char
13928Need char = 'd'
13929Subject length lower bound = 1
13930Starting chars: a b c d
13931
13932/[a-c]+d/DZS
13933------------------------------------------------------------------
13934        Bra
13935        [a-c]++
13936        d
13937        Ket
13938        End
13939------------------------------------------------------------------
13940Capturing subpattern count = 0
13941No options
13942No first char
13943Need char = 'd'
13944Subject length lower bound = 2
13945Starting chars: a b c
13946
13947/[a-c]?d/DZS
13948------------------------------------------------------------------
13949        Bra
13950        [a-c]?+
13951        d
13952        Ket
13953        End
13954------------------------------------------------------------------
13955Capturing subpattern count = 0
13956No options
13957No first char
13958Need char = 'd'
13959Subject length lower bound = 1
13960Starting chars: a b c d
13961
13962/[a-c]{4,6}d/DZS
13963------------------------------------------------------------------
13964        Bra
13965        [a-c]{4,6}+
13966        d
13967        Ket
13968        End
13969------------------------------------------------------------------
13970Capturing subpattern count = 0
13971No options
13972No first char
13973Need char = 'd'
13974Subject length lower bound = 5
13975Starting chars: a b c
13976
13977/[a-c]{0,6}d/DZS
13978------------------------------------------------------------------
13979        Bra
13980        [a-c]{0,6}+
13981        d
13982        Ket
13983        End
13984------------------------------------------------------------------
13985Capturing subpattern count = 0
13986No options
13987No first char
13988Need char = 'd'
13989Subject length lower bound = 1
13990Starting chars: a b c d
13991
13992/-- End of special auto-possessive tests --/
13993
13994/^A\o{1239}B/
13995Failed: non-octal character in \o{} (closing brace missing?) at offset 8
13996
13997/^A\oB/
13998Failed: missing opening brace after \o at offset 3
13999
14000/^A\x{zz}B/
14001Failed: non-hex character in \x{} (closing brace missing?) at offset 5
14002
14003/^A\x{12Z/
14004Failed: non-hex character in \x{} (closing brace missing?) at offset 7
14005
14006/^A\x{/
14007Failed: non-hex character in \x{} (closing brace missing?) at offset 5
14008
14009/[ab]++/BZO
14010------------------------------------------------------------------
14011        Bra
14012        [ab]++
14013        Ket
14014        End
14015------------------------------------------------------------------
14016
14017/[^ab]*+/BZO
14018------------------------------------------------------------------
14019        Bra
14020        [\x00-`c-\xff] (neg)*+
14021        Ket
14022        End
14023------------------------------------------------------------------
14024
14025/a{4}+/BZO
14026------------------------------------------------------------------
14027        Bra
14028        a{4}
14029        Ket
14030        End
14031------------------------------------------------------------------
14032
14033/a{4}+/BZOi
14034------------------------------------------------------------------
14035        Bra
14036     /i a{4}
14037        Ket
14038        End
14039------------------------------------------------------------------
14040
14041/[a-[:digit:]]+/
14042Failed: invalid range in character class at offset 3
14043
14044/[A-[:digit:]]+/
14045Failed: invalid range in character class at offset 3
14046
14047/[a-[.xxx.]]+/
14048Failed: invalid range in character class at offset 3
14049
14050/[a-[=xxx=]]+/
14051Failed: invalid range in character class at offset 3
14052
14053/[a-[!xxx!]]+/
14054Failed: range out of order in character class at offset 3
14055
14056/[A-[!xxx!]]+/
14057    A]]]
14058 0: A]]]
14059
14060/[a-\d]+/
14061Failed: invalid range in character class at offset 4
14062
14063/(?<0abc>xx)/
14064Failed: group name must start with a non-digit at offset 3
14065
14066/(?&1abc)xx(?<1abc>y)/
14067Failed: group name must start with a non-digit at offset 3
14068
14069/(?<ab-cd>xx)/
14070Failed: syntax error in subpattern name (missing terminator) at offset 5
14071
14072/(?'0abc'xx)/
14073Failed: group name must start with a non-digit at offset 3
14074
14075/(?P<0abc>xx)/
14076Failed: group name must start with a non-digit at offset 4
14077
14078/\k<5ghj>/
14079Failed: group name must start with a non-digit at offset 3
14080
14081/\k'5ghj'/
14082Failed: group name must start with a non-digit at offset 3
14083
14084/\k{2fgh}/
14085Failed: group name must start with a non-digit at offset 3
14086
14087/(?P=8yuki)/
14088Failed: group name must start with a non-digit at offset 4
14089
14090/\g{4df}/
14091Failed: group name must start with a non-digit at offset 3
14092
14093/(?&1abc)xx(?<1abc>y)/
14094Failed: group name must start with a non-digit at offset 3
14095
14096/(?P>1abc)xx(?<1abc>y)/
14097Failed: group name must start with a non-digit at offset 4
14098
14099/\g'3gh'/
14100Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2
14101
14102/\g<5fg>/
14103Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 2
14104
14105/(?(<4gh>)abc)/
14106Failed: group name must start with a non-digit at offset 4
14107
14108/(?('4gh')abc)/
14109Failed: group name must start with a non-digit at offset 4
14110
14111/(?(4gh)abc)/
14112Failed: malformed number or name after (?( at offset 4
14113
14114/(?(R&6yh)abc)/
14115Failed: group name must start with a non-digit at offset 5
14116
14117/(((a\2)|(a*)\g<-1>))*a?/BZ
14118------------------------------------------------------------------
14119        Bra
14120        Brazero
14121        SCBra 1
14122        Once
14123        CBra 2
14124        CBra 3
14125        a
14126        \2
14127        Ket
14128        Alt
14129        CBra 4
14130        a*
14131        Ket
14132        Recurse
14133        Ket
14134        Ket
14135        KetRmax
14136        a?+
14137        Ket
14138        End
14139------------------------------------------------------------------
14140
14141/-- Test the ugly "start or end of word" compatibility syntax --/
14142
14143/[[:<:]]red[[:>:]]/BZ
14144------------------------------------------------------------------
14145        Bra
14146        \b
14147        Assert
14148        \w
14149        Ket
14150        red
14151        \b
14152        AssertB
14153        Reverse
14154        \w
14155        Ket
14156        Ket
14157        End
14158------------------------------------------------------------------
14159    little red riding hood
14160 0: red
14161    a /red/ thing
14162 0: red
14163    red is a colour
14164 0: red
14165    put it all on red
14166 0: red
14167    ** Failers
14168No match
14169    no reduction
14170No match
14171    Alfred Winifred
14172No match
14173
14174/[a[:<:]] should give error/
14175Failed: unknown POSIX class name at offset 4
14176
14177/(?=ab\K)/+
14178    abcd
14179Start of matched string is beyond its end - displaying from end to start.
14180 0: ab
14181 0+ abcd
14182
14183/abcd/f<lf>
14184    xx\nxabcd
14185No match
14186
14187/ -- Test stack check external calls --/
14188
14189/(((((a)))))/Q0
14190
14191/(((((a)))))/Q1
14192Failed: parentheses are too deeply nested (stack check) at offset 0
14193
14194/(((((a)))))/Q
14195** Missing 0 or 1 after /Q
14196
14197/^\w+(?>\s*)(?<=\w)/BZ
14198------------------------------------------------------------------
14199        Bra
14200        ^
14201        \w+
14202        Once_NC
14203        \s*+
14204        Ket
14205        AssertB
14206        Reverse
14207        \w
14208        Ket
14209        Ket
14210        End
14211------------------------------------------------------------------
14212
14213/\othing/
14214Failed: missing opening brace after \o at offset 1
14215
14216/\o{}/
14217Failed: digits missing in \x{} or \o{} at offset 1
14218
14219/\o{whatever}/
14220Failed: non-octal character in \o{} (closing brace missing?) at offset 3
14221
14222/\xthing/
14223
14224/\x{}/
14225Failed: digits missing in \x{} or \o{} at offset 3
14226
14227/\x{whatever}/
14228Failed: non-hex character in \x{} (closing brace missing?) at offset 3
14229
14230"((?=(?(?=(?(?=(?(?=()))))))))"
14231    a
14232 0:
14233 1:
14234 2:
14235
14236"(?(?=)==)(((((((((?=)))))))))"
14237    a
14238No match
14239
14240/^(?:(a)|b)(?(1)A|B)/I
14241Capturing subpattern count = 1
14242Max back reference = 1
14243Options: anchored
14244No first char
14245No need char
14246    aA123\O3
14247Matched, but too many substrings
14248 0: aA
14249    aA123\O6
14250 0: aA
14251 1: a
14252
14253'^(?:(?<AA>a)|b)(?(<AA>)A|B)'
14254    aA123\O3
14255Matched, but too many substrings
14256 0: aA
14257    aA123\O6
14258 0: aA
14259 1: a
14260
14261'^(?<AA>)(?:(?<AA>a)|b)(?(<AA>)A|B)'J
14262    aA123\O3
14263Matched, but too many substrings
14264 0: aA
14265    aA123\O6
14266Matched, but too many substrings
14267 0: aA
14268 1:
14269
14270'^(?:(?<AA>X)|)(?:(?<AA>a)|b)\k{AA}'J
14271    aa123\O3
14272Matched, but too many substrings
14273 0: aa
14274    aa123\O6
14275Matched, but too many substrings
14276 0: aa
14277 1: <unset>
14278
14279/(?<N111>(?J)(?<N111>1(111111)11|)1|1|)(?(<N111>)1)/
14280
14281/(?(?=0)?)+/
14282Failed: nothing to repeat at offset 7
14283
14284/(?(?=0)(?=00)?00765)/
14285     00765
14286 0: 00765
14287
14288/(?(?=0)(?=00)?00765|(?!3).56)/
14289     00765
14290 0: 00765
14291     456
14292 0: 456
14293     ** Failers
14294No match
14295     356
14296No match
14297
14298'^(a)*+(\w)'
14299    g
14300 0: g
14301 1: <unset>
14302 2: g
14303    g\O3
14304Matched, but too many substrings
14305 0: g
14306
14307'^(?:a)*+(\w)'
14308    g
14309 0: g
14310 1: g
14311    g\O3
14312Matched, but too many substrings
14313 0: g
14314
14315//C
14316    \O\C+
14317Callout 255: last capture = -1
14318--->
14319 +0 ^
14320Matched, but too many substrings
14321
14322"((?2){0,1999}())?"
14323
14324/((?+1)(\1))/BZ
14325------------------------------------------------------------------
14326        Bra
14327        Once
14328        CBra 1
14329        Recurse
14330        CBra 2
14331        \1
14332        Ket
14333        Ket
14334        Ket
14335        Ket
14336        End
14337------------------------------------------------------------------
14338
14339/(?(?!)a|b)/
14340    bbb
14341 0: b
14342    aaa
14343No match
14344
14345"((?2)+)((?1))"
14346
14347"(?(?<E>.*!.*)?)"
14348Failed: assertion expected after (?( or (?(?C) at offset 3
14349
14350"X((?2)()*+){2}+"BZ
14351------------------------------------------------------------------
14352        Bra
14353        X
14354        Once
14355        CBra 1
14356        Recurse
14357        Braposzero
14358        SCBraPos 2
14359        KetRpos
14360        Ket
14361        CBra 1
14362        Recurse
14363        Braposzero
14364        SCBraPos 2
14365        KetRpos
14366        Ket
14367        Ket
14368        Ket
14369        End
14370------------------------------------------------------------------
14371
14372"X((?2)()*+){2}"BZ
14373------------------------------------------------------------------
14374        Bra
14375        X
14376        CBra 1
14377        Recurse
14378        Braposzero
14379        SCBraPos 2
14380        KetRpos
14381        Ket
14382        CBra 1
14383        Recurse
14384        Braposzero
14385        SCBraPos 2
14386        KetRpos
14387        Ket
14388        Ket
14389        End
14390------------------------------------------------------------------
14391
14392"(?<=((?2))((?1)))"
14393Failed: lookbehind assertion is not fixed length at offset 17
14394
14395/(?<=\Ka)/g+
14396    aaaaa
14397 0: a
14398 0+ aaaa
14399 0: a
14400 0+ aaaa
14401 0: a
14402 0+ aaa
14403 0: a
14404 0+ aa
14405 0: a
14406 0+ a
14407 0: a
14408 0+
14409
14410/(?<=\Ka)/G+
14411    aaaaa
14412 0: a
14413 0+ aaaa
14414 0: a
14415 0+ aaa
14416 0: a
14417 0+ aa
14418 0: a
14419 0+ a
14420 0: a
14421 0+
14422
14423/((?2){73}(?2))((?1))/
14424
14425/.((?2)(?R)\1)()/BZ
14426------------------------------------------------------------------
14427        Bra
14428        Any
14429        Once
14430        CBra 1
14431        Recurse
14432        Recurse
14433        \1
14434        Ket
14435        Ket
14436        CBra 2
14437        Ket
14438        Ket
14439        End
14440------------------------------------------------------------------
14441
14442/(?1)()((((((\1++))\x85)+)|))/
14443
14444/(\9*+(?2);\3++()2|)++{/
14445Failed: reference to non-existent subpattern at offset 22
14446
14447/\V\x85\9*+((?2)\3++()2)*:2/
14448Failed: reference to non-existent subpattern at offset 26
14449
14450/(((?(R)){0,2}) (?''((?'R')((?'R')))))/J
14451
14452/(((?(X)){0,2}) (?''((?'X')((?'X')))))/J
14453
14454/(((?(R)){0,2}) (?''((?'X')((?'R')))))/
14455
14456"(?J)(?'d'(?'d'\g{d}))"
14457
14458".*?\h.+.\.+\R*?\xd(?i)(?=!(?=b`b`b`\`b\xa9b!)`\a`bbbbbbbbbbbbb`bbbbbbbbbbbb*R\x85bbbbbbb\C?{((?2)(?))((
14459\H){8(?<=(?1){29}\xa8bbbb\x16\xd\xc6^($(?<! )(\xa9H4){4}h}1)B))\x15')"
14460
14461"(?J:(?|(?'R')(\k'R')|((?'R'))))"
14462
14463/(?<=|(\,\$(?73591620449005828816)\xa8.{7}){6}\x09)/
14464Failed: number is too big at offset 32
14465
14466//
14467\O1
14468Matched, but too many substrings
14469
14470/^(?:(?(1)x|)+)+$()/BZ
14471------------------------------------------------------------------
14472        Bra
14473        ^
14474        SBra
14475        SCond
14476      1 Cond ref
14477        x
14478        Alt
14479        KetRmax
14480        KetRmax
14481        $
14482        CBra 1
14483        Ket
14484        Ket
14485        End
14486------------------------------------------------------------------
14487
14488/(?=di(?<=(?1))|(?=(.))))/
14489Failed: unmatched parentheses at offset 23
14490
14491/(?(R))*+/BZ
14492------------------------------------------------------------------
14493        Bra
14494        Braposzero
14495        SBraPos
14496        SCond
14497        Cond recurse any
14498        Ket
14499        KetRpos
14500        Ket
14501        End
14502------------------------------------------------------------------
14503
14504/[[:\\](?'abc')[a:]/
14505
14506"[[[.\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[[[:[::::::[[[:[[[[[[[[:[[::[::::[[:::::::[[:[[[[[[[:[[::[:[[:[~"
14507Failed: missing terminating ] for character class at offset 353
14508
14509/()(?(R)0)*+/BZ
14510------------------------------------------------------------------
14511        Bra
14512        CBra 1
14513        Ket
14514        Braposzero
14515        SBraPos
14516        SCond
14517        Cond recurse any
14518        0
14519        Ket
14520        KetRpos
14521        Ket
14522        End
14523------------------------------------------------------------------
14524
14525/(?R-:(?</
14526Failed: (?R or (?[+-]digits must be followed by ) at offset 3
14527
14528/(?1){3918}(((((0(\k'R'))))(?J)(?'R'(?'R'\3){99})))/I
14529Capturing subpattern count = 8
14530Max back reference = 8
14531Named capturing subpatterns:
14532  R   7
14533  R   8
14534No options
14535Duplicate name status changes
14536No first char
14537Need char = '0'
14538
14539/(?J:(?|(:(?|(?'R')(\k'R')|((?'R')))H'Rk'Rf)|s(?'R')))/
14540
14541/0(?0)|(1)(*THEN)(*SKIP:0)(*FAIL)/
14542    01
14543No match
14544
14545/((?(R8000000000)))/
14546Failed: number is too big at offset 16
14547
14548/(?(8000000000/
14549Failed: number is too big at offset 13
14550
14551/(?:ab)?(?:ab)(?:ab)/
14552    abab
14553 0: abab
14554    ababab
14555 0: ababab
14556    aba
14557No match
14558
14559/((*MARK:A))++a(*SKIP:B)b/
14560    aacb
14561No match
14562
14563/(?J:(?|(:(?|(?'R')(\z(?|(?'R')(\k'R')|((?'R')))k'R')|((?'R')))H'Ak'Rf)|s(?'R')))/
14564
14565/(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&a)(?&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)/
14566
14567/a[[:punct:]b]/BZ
14568------------------------------------------------------------------
14569        Bra
14570        a
14571        [!-/:-@[-`b{-~]
14572        Ket
14573        End
14574------------------------------------------------------------------
14575
14576/L(?#(|++<!(2)?/BZ
14577------------------------------------------------------------------
14578        Bra
14579        L?+
14580        Ket
14581        End
14582------------------------------------------------------------------
14583
14584/L(?#(|++<!(2)?/BOZ
14585------------------------------------------------------------------
14586        Bra
14587        L?
14588        Ket
14589        End
14590------------------------------------------------------------------
14591
14592/L(?#(|++<!(2)?/BCZ
14593------------------------------------------------------------------
14594        Bra
14595        Callout 255 0 14
14596        L?+
14597        Callout 255 14 0
14598        Ket
14599        End
14600------------------------------------------------------------------
14601
14602/L(?#(|++<!(2)?/BCOZ
14603------------------------------------------------------------------
14604        Bra
14605        Callout 255 0 14
14606        L?
14607        Callout 255 14 0
14608        Ket
14609        End
14610------------------------------------------------------------------
14611
14612/(A*)\E+/CBZ
14613------------------------------------------------------------------
14614        Bra
14615        Callout 255 0 7
14616        SCBra 1
14617        Callout 255 1 2
14618        A*
14619        Callout 255 3 0
14620        KetRmax
14621        Callout 255 7 0
14622        Ket
14623        End
14624------------------------------------------------------------------
14625
14626/()\Q\E*]/BCZ
14627------------------------------------------------------------------
14628        Bra
14629        Callout 255 0 7
14630        Brazero
14631        SCBra 1
14632        Callout 255 1 0
14633        KetRmax
14634        Callout 255 7 1
14635        ]
14636        Callout 255 8 0
14637        Ket
14638        End
14639------------------------------------------------------------------
14640
14641/(?<A>)(?J:(?<B>)(?<B>))(?<C>)/
14642    \O\CC
14643Matched, but too many substrings
14644copy substring C failed -7
14645
14646/(?=a\K)/
14647    ring bpattingbobnd $ 1,oern cou \rb\L
14648Start of matched string is beyond its end - displaying from end to start.
14649 0: a
14650 0L
14651
14652/(?<=((?C)0))/
14653    9010
14654--->9010
14655  0  ^       0
14656  0   ^      0
14657 0:
14658 1: 0
14659    abcd
14660--->abcd
14661  0  ^       0
14662  0   ^      0
14663  0    ^     0
14664  0     ^    0
14665No match
14666
14667/((?J)(?'R'(?'R'(?'R'(?'R'(?'R'(?|(\k'R'))))))))/
14668
14669/\N(?(?C)0?!.)*/
14670Failed: assertion expected after (?( or (?(?C) at offset 4
14671
14672/(?<RA>abc)(?(R)xyz)/BZ
14673------------------------------------------------------------------
14674        Bra
14675        CBra 1
14676        abc
14677        Ket
14678        Cond
14679        Cond recurse any
14680        xyz
14681        Ket
14682        Ket
14683        End
14684------------------------------------------------------------------
14685
14686/(?<R>abc)(?(R)xyz)/BZ
14687------------------------------------------------------------------
14688        Bra
14689        CBra 1
14690        abc
14691        Ket
14692        Cond
14693      1 Cond ref
14694        xyz
14695        Ket
14696        Ket
14697        End
14698------------------------------------------------------------------
14699
14700/(?=.*[A-Z])/I
14701Capturing subpattern count = 0
14702May match empty string
14703No options
14704No first char
14705No need char
14706
14707"(?<=(a))\1?b"
14708    ab
14709 0: b
14710 1: a
14711    aaab
14712 0: ab
14713 1: a
14714
14715"(?=(a))\1?b"
14716    ab
14717 0: ab
14718 1: a
14719    aaab
14720 0: ab
14721 1: a
14722
14723/(?(?=^))b/
14724    abc
14725 0: b
14726
14727/-- End of testinput2 --/
14728