blob: d279fb489cb7ac7dd37b55d0ca6e292096708c43 [file] [log] [blame]
Tristan Matthews04616462013-11-14 16:09:34 -05001/-- 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-8 set of tests. When UTF-8 is needed, use test
9 5, and if Unicode Property Support is needed, use test 13. --/
10
11/-- Originally, the Perl >= 5.10 things were in here too, but now I have
12 separated many (most?) of them out into test 11. However, there may still
13 be some that were overlooked. --/
14
15/(a)b|/I
16Capturing subpattern count = 1
17No options
18No first char
19No need char
20
21/abc/I
22Capturing subpattern count = 0
23No options
24First char = 'a'
25Need char = 'c'
26 abc
27 0: abc
28 defabc
29 0: abc
30 \Aabc
31 0: abc
32 *** Failers
33No match
34 \Adefabc
35No match
36 ABC
37No match
38
39/^abc/I
40Capturing subpattern count = 0
41Options: anchored
42No first char
43No need char
44 abc
45 0: abc
46 \Aabc
47 0: abc
48 *** Failers
49No match
50 defabc
51No match
52 \Adefabc
53No match
54
55/a+bc/I
56Capturing subpattern count = 0
57No options
58First char = 'a'
59Need char = 'c'
60
61/a*bc/I
62Capturing subpattern count = 0
63No options
64No first char
65Need char = 'c'
66
67/a{3}bc/I
68Capturing subpattern count = 0
69No options
70First char = 'a'
71Need char = 'c'
72
73/(abc|a+z)/I
74Capturing subpattern count = 1
75No options
76First char = 'a'
77No need char
78
79/^abc$/I
80Capturing subpattern count = 0
81Options: anchored
82No first char
83No need char
84 abc
85 0: abc
86 *** Failers
87No match
88 def\nabc
89No match
90
91/ab\idef/X
92Failed: unrecognized character follows \ at offset 3
93
94/(?X)ab\idef/X
95Failed: unrecognized character follows \ at offset 7
96
97/x{5,4}/
98Failed: numbers out of order in {} quantifier at offset 5
99
100/z{65536}/
101Failed: number too big in {} quantifier at offset 7
102
103/[abcd/
104Failed: missing terminating ] for character class at offset 5
105
106/(?X)[\B]/
107Failed: invalid escape sequence in character class at offset 6
108
109/(?X)[\R]/
110Failed: invalid escape sequence in character class at offset 6
111
112/(?X)[\X]/
113Failed: invalid escape sequence in character class at offset 6
114
115/[\B]/BZ
116------------------------------------------------------------------
117 Bra
118 B
119 Ket
120 End
121------------------------------------------------------------------
122
123/[\R]/BZ
124------------------------------------------------------------------
125 Bra
126 R
127 Ket
128 End
129------------------------------------------------------------------
130
131/[\X]/BZ
132------------------------------------------------------------------
133 Bra
134 X
135 Ket
136 End
137------------------------------------------------------------------
138
139/[z-a]/
140Failed: range out of order in character class at offset 3
141
142/^*/
143Failed: nothing to repeat at offset 1
144
145/(abc/
146Failed: missing ) at offset 4
147
148/(?# abc/
149Failed: missing ) after comment at offset 7
150
151/(?z)abc/
152Failed: unrecognized character after (? or (?- at offset 2
153
154/.*b/I
155Capturing subpattern count = 0
156No options
157First char at start or follows newline
158Need char = 'b'
159
160/.*?b/I
161Capturing subpattern count = 0
162No options
163First char at start or follows newline
164Need char = 'b'
165
166/cat|dog|elephant/I
167Capturing subpattern count = 0
168No options
169No first char
170No need char
171 this sentence eventually mentions a cat
172 0: cat
173 this sentences rambles on and on for a while and then reaches elephant
174 0: elephant
175
176/cat|dog|elephant/IS
177Capturing subpattern count = 0
178No options
179No first char
180No need char
181Subject length lower bound = 3
182Starting byte set: c d e
183 this sentence eventually mentions a cat
184 0: cat
185 this sentences rambles on and on for a while and then reaches elephant
186 0: elephant
187
188/cat|dog|elephant/IiS
189Capturing subpattern count = 0
190Options: caseless
191No first char
192No need char
193Subject length lower bound = 3
194Starting byte set: C D E c d e
195 this sentence eventually mentions a CAT cat
196 0: CAT
197 this sentences rambles on and on for a while to elephant ElePhant
198 0: elephant
199
200/a|[bcd]/IS
201Capturing subpattern count = 0
202No options
203No first char
204No need char
205Subject length lower bound = 1
206Starting byte set: a b c d
207
208/(a|[^\dZ])/IS
209Capturing subpattern count = 1
210No options
211No first char
212No need char
213Subject length lower bound = 1
214Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
215 \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
216 \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
217 ? @ 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
218 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
219 \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92
220 \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1
221 \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0
222 \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf
223 \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce
224 \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd
225 \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec
226 \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
227 \xfc \xfd \xfe \xff
228
229/(a|b)*[\s]/IS
230Capturing subpattern count = 1
231No options
232No first char
233No need char
234Subject length lower bound = 1
235Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
236
237/(ab\2)/
238Failed: reference to non-existent subpattern at offset 6
239
240/{4,5}abc/
241Failed: nothing to repeat at offset 4
242
243/(a)(b)(c)\2/I
244Capturing subpattern count = 3
245Max back reference = 2
246No options
247First char = 'a'
248Need char = 'c'
249 abcb
250 0: abcb
251 1: a
252 2: b
253 3: c
254 \O0abcb
255Matched, but too many substrings
256 \O3abcb
257Matched, but too many substrings
258 0: abcb
259 \O6abcb
260Matched, but too many substrings
261 0: abcb
262 1: a
263 \O9abcb
264Matched, but too many substrings
265 0: abcb
266 1: a
267 2: b
268 \O12abcb
269 0: abcb
270 1: a
271 2: b
272 3: c
273
274/(a)bc|(a)(b)\2/I
275Capturing subpattern count = 3
276Max back reference = 2
277No options
278First char = 'a'
279No need char
280 abc
281 0: abc
282 1: a
283 \O0abc
284Matched, but too many substrings
285 \O3abc
286Matched, but too many substrings
287 0: abc
288 \O6abc
289 0: abc
290 1: a
291 aba
292 0: aba
293 1: <unset>
294 2: a
295 3: b
296 \O0aba
297Matched, but too many substrings
298 \O3aba
299Matched, but too many substrings
300 0: aba
301 \O6aba
302Matched, but too many substrings
303 0: aba
304 1: <unset>
305 \O9aba
306Matched, but too many substrings
307 0: aba
308 1: <unset>
309 2: a
310 \O12aba
311 0: aba
312 1: <unset>
313 2: a
314 3: b
315
316/abc$/IE
317Capturing subpattern count = 0
318Options: dollar_endonly
319First char = 'a'
320Need char = 'c'
321 abc
322 0: abc
323 *** Failers
324No match
325 abc\n
326No match
327 abc\ndef
328No match
329
330/(a)(b)(c)(d)(e)\6/
331Failed: reference to non-existent subpattern at offset 17
332
333/the quick brown fox/I
334Capturing subpattern count = 0
335No options
336First char = 't'
337Need char = 'x'
338 the quick brown fox
339 0: the quick brown fox
340 this is a line with the quick brown fox
341 0: the quick brown fox
342
343/the quick brown fox/IA
344Capturing subpattern count = 0
345Options: anchored
346No first char
347No need char
348 the quick brown fox
349 0: the quick brown fox
350 *** Failers
351No match
352 this is a line with the quick brown fox
353No match
354
355/ab(?z)cd/
356Failed: unrecognized character after (? or (?- at offset 4
357
358/^abc|def/I
359Capturing subpattern count = 0
360No options
361No first char
362No need char
363 abcdef
364 0: abc
365 abcdef\B
366 0: def
367
368/.*((abc)$|(def))/I
369Capturing subpattern count = 3
370No options
371First char at start or follows newline
372No need char
373 defabc
374 0: defabc
375 1: abc
376 2: abc
377 \Zdefabc
378 0: def
379 1: def
380 2: <unset>
381 3: def
382
383/abc/P
384 abc
385 0: abc
386 *** Failers
387No match: POSIX code 17: match failed
388
389/^abc|def/P
390 abcdef
391 0: abc
392 abcdef\B
393 0: def
394
395/.*((abc)$|(def))/P
396 defabc
397 0: defabc
398 1: abc
399 2: abc
400 \Zdefabc
401 0: def
402 1: def
403 3: def
404
405/the quick brown fox/P
406 the quick brown fox
407 0: the quick brown fox
408 *** Failers
409No match: POSIX code 17: match failed
410 The Quick Brown Fox
411No match: POSIX code 17: match failed
412
413/the quick brown fox/Pi
414 the quick brown fox
415 0: the quick brown fox
416 The Quick Brown Fox
417 0: The Quick Brown Fox
418
419/abc.def/P
420 *** Failers
421No match: POSIX code 17: match failed
422 abc\ndef
423No match: POSIX code 17: match failed
424
425/abc$/P
426 abc
427 0: abc
428 abc\n
429 0: abc
430
431/(abc)\2/P
432Failed: POSIX code 15: bad back reference at offset 7
433
434/(abc\1)/P
435 abc
436No match: POSIX code 17: match failed
437
438/)/
439Failed: unmatched parentheses at offset 0
440
441/a[]b/
442Failed: missing terminating ] for character class at offset 4
443
444/[^aeiou ]{3,}/I
445Capturing subpattern count = 0
446No options
447No first char
448No need char
449 co-processors, and for
450 0: -pr
451
452/<.*>/I
453Capturing subpattern count = 0
454No options
455First char = '<'
456Need char = '>'
457 abc<def>ghi<klm>nop
458 0: <def>ghi<klm>
459
460/<.*?>/I
461Capturing subpattern count = 0
462No options
463First char = '<'
464Need char = '>'
465 abc<def>ghi<klm>nop
466 0: <def>
467
468/<.*>/IU
469Capturing subpattern count = 0
470Options: ungreedy
471First char = '<'
472Need char = '>'
473 abc<def>ghi<klm>nop
474 0: <def>
475
476/(?U)<.*>/I
477Capturing subpattern count = 0
478Options: ungreedy
479First char = '<'
480Need char = '>'
481 abc<def>ghi<klm>nop
482 0: <def>
483
484/<.*?>/IU
485Capturing subpattern count = 0
486Options: ungreedy
487First char = '<'
488Need char = '>'
489 abc<def>ghi<klm>nop
490 0: <def>ghi<klm>
491
492/={3,}/IU
493Capturing subpattern count = 0
494Options: ungreedy
495First char = '='
496Need char = '='
497 abc========def
498 0: ===
499
500/(?U)={3,}?/I
501Capturing subpattern count = 0
502Options: ungreedy
503First char = '='
504Need char = '='
505 abc========def
506 0: ========
507
508/(?<!bar|cattle)foo/I
509Capturing subpattern count = 0
510No options
511First char = 'f'
512Need char = 'o'
513 foo
514 0: foo
515 catfoo
516 0: foo
517 *** Failers
518No match
519 the barfoo
520No match
521 and cattlefoo
522No match
523
524/(?<=a+)b/
525Failed: lookbehind assertion is not fixed length at offset 6
526
527/(?<=aaa|b{0,3})b/
528Failed: lookbehind assertion is not fixed length at offset 14
529
530/(?<!(foo)a\1)bar/
531Failed: lookbehind assertion is not fixed length at offset 12
532
533/(?i)abc/I
534Capturing subpattern count = 0
535Options: caseless
536First char = 'a' (caseless)
537Need char = 'c' (caseless)
538
539/(a|(?m)a)/I
540Capturing subpattern count = 1
541No options
542First char = 'a'
543No need char
544
545/(?i)^1234/I
546Capturing subpattern count = 0
547Options: anchored caseless
548No first char
549No need char
550
551/(^b|(?i)^d)/I
552Capturing subpattern count = 1
553Options: anchored
554No first char
555No need char
556
557/(?s).*/I
558Capturing subpattern count = 0
559Options: anchored dotall
560No first char
561No need char
562
563/[abcd]/IS
564Capturing subpattern count = 0
565No options
566No first char
567No need char
568Subject length lower bound = 1
569Starting byte set: a b c d
570
571/(?i)[abcd]/IS
572Capturing subpattern count = 0
573Options: caseless
574No first char
575No need char
576Subject length lower bound = 1
577Starting byte set: A B C D a b c d
578
579/(?m)[xy]|(b|c)/IS
580Capturing subpattern count = 1
581Options: multiline
582No first char
583No need char
584Subject length lower bound = 1
585Starting byte set: b c x y
586
587/(^a|^b)/Im
588Capturing subpattern count = 1
589Options: multiline
590First char at start or follows newline
591No need char
592
593/(?i)(^a|^b)/Im
594Capturing subpattern count = 1
595Options: caseless multiline
596First char at start or follows newline
597No need char
598
599/(a)(?(1)a|b|c)/
600Failed: conditional group contains more than two branches at offset 13
601
602/(?(?=a)a|b|c)/
603Failed: conditional group contains more than two branches at offset 12
604
605/(?(1a)/
606Failed: missing ) at offset 6
607
608/(?(1a))/
609Failed: reference to non-existent subpattern at offset 6
610
611/(?(?i))/
612Failed: assertion expected after (?( at offset 3
613
614/(?(abc))/
615Failed: reference to non-existent subpattern at offset 7
616
617/(?(?<ab))/
618Failed: syntax error in subpattern name (missing terminator) at offset 7
619
620/((?s)blah)\s+\1/I
621Capturing subpattern count = 1
622Max back reference = 1
623No options
624First char = 'b'
625Need char = 'h'
626
627/((?i)blah)\s+\1/I
628Capturing subpattern count = 1
629Max back reference = 1
630No options
631First char = 'b' (caseless)
632Need char = 'h' (caseless)
633
634/((?i)b)/IDZS
635------------------------------------------------------------------
636 Bra
637 CBra 1
638 /i b
639 Ket
640 Ket
641 End
642------------------------------------------------------------------
643Capturing subpattern count = 1
644No options
645First char = 'b' (caseless)
646No need char
647Subject length lower bound = 1
648No set of starting bytes
649
650/(a*b|(?i:c*(?-i)d))/IS
651Capturing subpattern count = 1
652No options
653No first char
654No need char
655Subject length lower bound = 1
656Starting byte set: C a b c d
657
658/a$/I
659Capturing subpattern count = 0
660No options
661First char = 'a'
662No need char
663 a
664 0: a
665 a\n
666 0: a
667 *** Failers
668No match
669 \Za
670No match
671 \Za\n
672No match
673
674/a$/Im
675Capturing subpattern count = 0
676Options: multiline
677First char = 'a'
678No need char
679 a
680 0: a
681 a\n
682 0: a
683 \Za\n
684 0: a
685 *** Failers
686No match
687 \Za
688No match
689
690/\Aabc/Im
691Capturing subpattern count = 0
692Options: anchored multiline
693No first char
694No need char
695
696/^abc/Im
697Capturing subpattern count = 0
698Options: multiline
699First char at start or follows newline
700Need char = 'c'
701
702/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
703Capturing subpattern count = 5
704Options: anchored
705No first char
706No need char
707 aaaaabbbbbcccccdef
708 0: aaaaabbbbbcccccdef
709 1: aaaaabbbbbcccccdef
710 2: aaaaa
711 3: b
712 4: bbbbccccc
713 5: def
714
715/(?<=foo)[ab]/IS
716Capturing subpattern count = 0
717No options
718No first char
719No need char
720Subject length lower bound = 1
721Starting byte set: a b
722
723/(?<!foo)(alpha|omega)/IS
724Capturing subpattern count = 1
725No options
726No first char
727Need char = 'a'
728Subject length lower bound = 5
729Starting byte set: a o
730
731/(?!alphabet)[ab]/IS
732Capturing subpattern count = 0
733No options
734No first char
735No need char
736Subject length lower bound = 1
737Starting byte set: a b
738
739/(?<=foo\n)^bar/Im
740Capturing subpattern count = 0
741Contains explicit CR or LF match
742Options: multiline
743No first char
744Need char = 'r'
745 foo\nbarbar
746 0: bar
747 ***Failers
748No match
749 rhubarb
750No match
751 barbell
752No match
753 abc\nbarton
754No match
755
756/^(?<=foo\n)bar/Im
757Capturing subpattern count = 0
758Contains explicit CR or LF match
759Options: multiline
760First char at start or follows newline
761Need char = 'r'
762 foo\nbarbar
763 0: bar
764 ***Failers
765No match
766 rhubarb
767No match
768 barbell
769No match
770 abc\nbarton
771No match
772
773/(?>^abc)/Im
774Capturing subpattern count = 0
775Options: multiline
776First char at start or follows newline
777Need char = 'c'
778 abc
779 0: abc
780 def\nabc
781 0: abc
782 *** Failers
783No match
784 defabc
785No match
786
787/(?<=ab(c+)d)ef/
788Failed: lookbehind assertion is not fixed length at offset 11
789
790/(?<=ab(?<=c+)d)ef/
791Failed: lookbehind assertion is not fixed length at offset 12
792
793/(?<=ab(c|de)f)g/
794Failed: lookbehind assertion is not fixed length at offset 13
795
796/The next three are in testinput2 because they have variable length branches/
797
798/(?<=bullock|donkey)-cart/I
799Capturing subpattern count = 0
800No options
801First char = '-'
802Need char = 't'
803 the bullock-cart
804 0: -cart
805 a donkey-cart race
806 0: -cart
807 *** Failers
808No match
809 cart
810No match
811 horse-and-cart
812No match
813
814/(?<=ab(?i)x|y|z)/I
815Capturing subpattern count = 0
816No options
817No first char
818No need char
819
820/(?>.*)(?<=(abcd)|(xyz))/I
821Capturing subpattern count = 2
822No options
823First char at start or follows newline
824No need char
825 alphabetabcd
826 0: alphabetabcd
827 1: abcd
828 endingxyz
829 0: endingxyz
830 1: <unset>
831 2: xyz
832
833/(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
834Capturing subpattern count = 0
835No options
836First char = 'Z'
837Need char = 'Z'
838 abxyZZ
839 0: ZZ
840 abXyZZ
841 0: ZZ
842 ZZZ
843 0: ZZ
844 zZZ
845 0: ZZ
846 bZZ
847 0: ZZ
848 BZZ
849 0: ZZ
850 *** Failers
851No match
852 ZZ
853No match
854 abXYZZ
855No match
856 zzz
857No match
858 bzz
859No match
860
861/(?<!(foo)a)bar/I
862Capturing subpattern count = 1
863No options
864First char = 'b'
865Need char = 'r'
866 bar
867 0: bar
868 foobbar
869 0: bar
870 *** Failers
871No match
872 fooabar
873No match
874
875/This one is here because Perl 5.005_02 doesn't fail it/I
876Capturing subpattern count = 0
877No options
878First char = 'T'
879Need char = 't'
880
881/^(a)?(?(1)a|b)+$/I
882Capturing subpattern count = 1
883Options: anchored
884No first char
885No need char
886 *** Failers
887No match
888 a
889No match
890
891/This one is here because Perl behaves differently; see also the following/I
892Capturing subpattern count = 0
893No options
894First char = 'T'
895Need char = 'g'
896
897/^(a\1?){4}$/I
898Capturing subpattern count = 1
899Max back reference = 1
900Options: anchored
901No first char
902No need char
903 aaaa
904No match
905 aaaaaa
906No match
907
908/Perl does not fail these two for the final subjects. Neither did PCRE until/
909/release 8.01. The problem is in backtracking into a subpattern that contains/
910No match
911/a recursive reference to itself. PCRE has now made these into atomic patterns./
912No match
913
914/^(xa|=?\1a){2}$/
915 xa=xaa
916 0: xa=xaa
917 1: =xaa
918 ** Failers
919No match
920 xa=xaaa
921No match
922
923/^(xa|=?\1a)+$/
924 xa=xaa
925 0: xa=xaa
926 1: =xaa
927 ** Failers
928No match
929 xa=xaaa
930No match
931
932/These are syntax tests from Perl 5.005/I
933Capturing subpattern count = 0
934No options
935First char = 'T'
936Need char = '5'
937
938/a[b-a]/
939Failed: range out of order in character class at offset 4
940
941/a[]b/
942Failed: missing terminating ] for character class at offset 4
943
944/a[/
945Failed: missing terminating ] for character class at offset 2
946
947/*a/
948Failed: nothing to repeat at offset 0
949
950/(*)b/
951Failed: nothing to repeat at offset 1
952
953/abc)/
954Failed: unmatched parentheses at offset 3
955
956/(abc/
957Failed: missing ) at offset 4
958
959/a**/
960Failed: nothing to repeat at offset 2
961
962/)(/
963Failed: unmatched parentheses at offset 0
964
965/\1/
966Failed: reference to non-existent subpattern at offset 2
967
968/\2/
969Failed: reference to non-existent subpattern at offset 2
970
971/(a)|\2/
972Failed: reference to non-existent subpattern at offset 6
973
974/a[b-a]/Ii
975Failed: range out of order in character class at offset 4
976
977/a[]b/Ii
978Failed: missing terminating ] for character class at offset 4
979
980/a[/Ii
981Failed: missing terminating ] for character class at offset 2
982
983/*a/Ii
984Failed: nothing to repeat at offset 0
985
986/(*)b/Ii
987Failed: nothing to repeat at offset 1
988
989/abc)/Ii
990Failed: unmatched parentheses at offset 3
991
992/(abc/Ii
993Failed: missing ) at offset 4
994
995/a**/Ii
996Failed: nothing to repeat at offset 2
997
998/)(/Ii
999Failed: unmatched parentheses at offset 0
1000
1001/:(?:/
1002Failed: missing ) at offset 4
1003
1004/(?<%)b/
1005Failed: unrecognized character after (?< at offset 3
1006
1007/a(?{)b/
1008Failed: unrecognized character after (? or (?- at offset 3
1009
1010/a(?{{})b/
1011Failed: unrecognized character after (? or (?- at offset 3
1012
1013/a(?{}})b/
1014Failed: unrecognized character after (? or (?- at offset 3
1015
1016/a(?{"{"})b/
1017Failed: unrecognized character after (? or (?- at offset 3
1018
1019/a(?{"{"}})b/
1020Failed: unrecognized character after (? or (?- at offset 3
1021
1022/(?(1?)a|b)/
1023Failed: malformed number or name after (?( at offset 4
1024
1025/[a[:xyz:/
1026Failed: missing terminating ] for character class at offset 8
1027
1028/(?<=x+)y/
1029Failed: lookbehind assertion is not fixed length at offset 6
1030
1031/a{37,17}/
1032Failed: numbers out of order in {} quantifier at offset 7
1033
1034/abc/\
1035Failed: \ at end of pattern at offset 4
1036
1037/abc/\P
1038Failed: POSIX code 9: bad escape sequence at offset 4
1039
1040/abc/\i
1041Failed: \ at end of pattern at offset 4
1042
1043/(a)bc(d)/I
1044Capturing subpattern count = 2
1045No options
1046First char = 'a'
1047Need char = 'd'
1048 abcd
1049 0: abcd
1050 1: a
1051 2: d
1052 abcd\C2
1053 0: abcd
1054 1: a
1055 2: d
1056 2C d (1)
1057 abcd\C5
1058 0: abcd
1059 1: a
1060 2: d
1061copy substring 5 failed -7
1062
1063/(.{20})/I
1064Capturing subpattern count = 1
1065No options
1066No first char
1067No need char
1068 abcdefghijklmnopqrstuvwxyz
1069 0: abcdefghijklmnopqrst
1070 1: abcdefghijklmnopqrst
1071 abcdefghijklmnopqrstuvwxyz\C1
1072 0: abcdefghijklmnopqrst
1073 1: abcdefghijklmnopqrst
1074 1C abcdefghijklmnopqrst (20)
1075 abcdefghijklmnopqrstuvwxyz\G1
1076 0: abcdefghijklmnopqrst
1077 1: abcdefghijklmnopqrst
1078 1G abcdefghijklmnopqrst (20)
1079
1080/(.{15})/I
1081Capturing subpattern count = 1
1082No options
1083No first char
1084No need char
1085 abcdefghijklmnopqrstuvwxyz
1086 0: abcdefghijklmno
1087 1: abcdefghijklmno
1088 abcdefghijklmnopqrstuvwxyz\C1\G1
1089 0: abcdefghijklmno
1090 1: abcdefghijklmno
1091 1C abcdefghijklmno (15)
1092 1G abcdefghijklmno (15)
1093
1094/(.{16})/I
1095Capturing subpattern count = 1
1096No options
1097No first char
1098No need char
1099 abcdefghijklmnopqrstuvwxyz
1100 0: abcdefghijklmnop
1101 1: abcdefghijklmnop
1102 abcdefghijklmnopqrstuvwxyz\C1\G1\L
1103 0: abcdefghijklmnop
1104 1: abcdefghijklmnop
1105 1C abcdefghijklmnop (16)
1106 1G abcdefghijklmnop (16)
1107 0L abcdefghijklmnop
1108 1L abcdefghijklmnop
1109
1110/^(a|(bc))de(f)/I
1111Capturing subpattern count = 3
1112Options: anchored
1113No first char
1114No need char
1115 adef\G1\G2\G3\G4\L
1116 0: adef
1117 1: a
1118 2: <unset>
1119 3: f
1120 1G a (1)
1121 2G (0)
1122 3G f (1)
1123get substring 4 failed -7
1124 0L adef
1125 1L a
1126 2L
1127 3L f
1128 bcdef\G1\G2\G3\G4\L
1129 0: bcdef
1130 1: bc
1131 2: bc
1132 3: f
1133 1G bc (2)
1134 2G bc (2)
1135 3G f (1)
1136get substring 4 failed -7
1137 0L bcdef
1138 1L bc
1139 2L bc
1140 3L f
1141 adefghijk\C0
1142 0: adef
1143 1: a
1144 2: <unset>
1145 3: f
1146 0C adef (4)
1147
1148/^abc\00def/I
1149Capturing subpattern count = 0
1150Options: anchored
1151No first char
1152No need char
1153 abc\00def\L\C0
1154 0: abc\x00def
1155 0C abc (7)
1156 0L abc
1157
1158/word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1159)((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1160)?)?)?)?)?)?)?)?)?otherword/I
1161Capturing subpattern count = 8
1162Contains explicit CR or LF match
1163No options
1164First char = 'w'
1165Need char = 'd'
1166
1167/.*X/IDZ
1168------------------------------------------------------------------
1169 Bra
1170 Any*
1171 X
1172 Ket
1173 End
1174------------------------------------------------------------------
1175Capturing subpattern count = 0
1176No options
1177First char at start or follows newline
1178Need char = 'X'
1179
1180/.*X/IDZs
1181------------------------------------------------------------------
1182 Bra
1183 AllAny*
1184 X
1185 Ket
1186 End
1187------------------------------------------------------------------
1188Capturing subpattern count = 0
1189Options: anchored dotall
1190No first char
1191Need char = 'X'
1192
1193/(.*X|^B)/IDZ
1194------------------------------------------------------------------
1195 Bra
1196 CBra 1
1197 Any*
1198 X
1199 Alt
1200 ^
1201 B
1202 Ket
1203 Ket
1204 End
1205------------------------------------------------------------------
1206Capturing subpattern count = 1
1207No options
1208First char at start or follows newline
1209No need char
1210
1211/(.*X|^B)/IDZs
1212------------------------------------------------------------------
1213 Bra
1214 CBra 1
1215 AllAny*
1216 X
1217 Alt
1218 ^
1219 B
1220 Ket
1221 Ket
1222 End
1223------------------------------------------------------------------
1224Capturing subpattern count = 1
1225Options: anchored dotall
1226No first char
1227No need char
1228
1229/(?s)(.*X|^B)/IDZ
1230------------------------------------------------------------------
1231 Bra
1232 CBra 1
1233 AllAny*
1234 X
1235 Alt
1236 ^
1237 B
1238 Ket
1239 Ket
1240 End
1241------------------------------------------------------------------
1242Capturing subpattern count = 1
1243Options: anchored dotall
1244No first char
1245No need char
1246
1247/(?s:.*X|^B)/IDZ
1248------------------------------------------------------------------
1249 Bra
1250 Bra
1251 AllAny*
1252 X
1253 Alt
1254 ^
1255 B
1256 Ket
1257 Ket
1258 End
1259------------------------------------------------------------------
1260Capturing subpattern count = 0
1261Options: anchored
1262No first char
1263No need char
1264
1265/\Biss\B/I+
1266Capturing subpattern count = 0
1267No options
1268First char = 'i'
1269Need char = 's'
1270 Mississippi
1271 0: iss
1272 0+ issippi
1273
1274/\Biss\B/I+P
1275 Mississippi
1276 0: iss
1277 0+ issippi
1278
1279/iss/IG+
1280Capturing subpattern count = 0
1281No options
1282First char = 'i'
1283Need char = 's'
1284 Mississippi
1285 0: iss
1286 0+ issippi
1287 0: iss
1288 0+ ippi
1289
1290/\Biss\B/IG+
1291Capturing subpattern count = 0
1292No options
1293First char = 'i'
1294Need char = 's'
1295 Mississippi
1296 0: iss
1297 0+ issippi
1298
1299/\Biss\B/Ig+
1300Capturing subpattern count = 0
1301No options
1302First char = 'i'
1303Need char = 's'
1304 Mississippi
1305 0: iss
1306 0+ issippi
1307 0: iss
1308 0+ ippi
1309 *** Failers
1310No match
1311 Mississippi\A
1312No match
1313
1314/(?<=[Ms])iss/Ig+
1315Capturing subpattern count = 0
1316No options
1317First char = 'i'
1318Need char = 's'
1319 Mississippi
1320 0: iss
1321 0+ issippi
1322 0: iss
1323 0+ ippi
1324
1325/(?<=[Ms])iss/IG+
1326Capturing subpattern count = 0
1327No options
1328First char = 'i'
1329Need char = 's'
1330 Mississippi
1331 0: iss
1332 0+ issippi
1333
1334/^iss/Ig+
1335Capturing subpattern count = 0
1336Options: anchored
1337No first char
1338No need char
1339 ississippi
1340 0: iss
1341 0+ issippi
1342
1343/.*iss/Ig+
1344Capturing subpattern count = 0
1345No options
1346First char at start or follows newline
1347Need char = 's'
1348 abciss\nxyzisspqr
1349 0: abciss
1350 0+ \x0axyzisspqr
1351 0: xyziss
1352 0+ pqr
1353
1354/.i./I+g
1355Capturing subpattern count = 0
1356No options
1357No first char
1358Need char = 'i'
1359 Mississippi
1360 0: Mis
1361 0+ sissippi
1362 0: sis
1363 0+ sippi
1364 0: sip
1365 0+ pi
1366 Mississippi\A
1367 0: Mis
1368 0+ sissippi
1369 0: sis
1370 0+ sippi
1371 0: sip
1372 0+ pi
1373 Missouri river
1374 0: Mis
1375 0+ souri river
1376 0: ri
1377 0+ river
1378 0: riv
1379 0+ er
1380 Missouri river\A
1381 0: Mis
1382 0+ souri river
1383
1384/^.is/I+g
1385Capturing subpattern count = 0
1386Options: anchored
1387No first char
1388No need char
1389 Mississippi
1390 0: Mis
1391 0+ sissippi
1392
1393/^ab\n/Ig+
1394Capturing subpattern count = 0
1395Contains explicit CR or LF match
1396Options: anchored
1397No first char
1398No need char
1399 ab\nab\ncd
1400 0: ab\x0a
1401 0+ ab\x0acd
1402
1403/^ab\n/Img+
1404Capturing subpattern count = 0
1405Contains explicit CR or LF match
1406Options: multiline
1407First char at start or follows newline
1408Need char = 10
1409 ab\nab\ncd
1410 0: ab\x0a
1411 0+ ab\x0acd
1412 0: ab\x0a
1413 0+ cd
1414
1415/abc/I
1416Capturing subpattern count = 0
1417No options
1418First char = 'a'
1419Need char = 'c'
1420
1421/abc|bac/I
1422Capturing subpattern count = 0
1423No options
1424No first char
1425Need char = 'c'
1426
1427/(abc|bac)/I
1428Capturing subpattern count = 1
1429No options
1430No first char
1431Need char = 'c'
1432
1433/(abc|(c|dc))/I
1434Capturing subpattern count = 2
1435No options
1436No first char
1437Need char = 'c'
1438
1439/(abc|(d|de)c)/I
1440Capturing subpattern count = 2
1441No options
1442No first char
1443Need char = 'c'
1444
1445/a*/I
1446Capturing subpattern count = 0
1447No options
1448No first char
1449No need char
1450
1451/a+/I
1452Capturing subpattern count = 0
1453No options
1454First char = 'a'
1455No need char
1456
1457/(baa|a+)/I
1458Capturing subpattern count = 1
1459No options
1460No first char
1461Need char = 'a'
1462
1463/a{0,3}/I
1464Capturing subpattern count = 0
1465No options
1466No first char
1467No need char
1468
1469/baa{3,}/I
1470Capturing subpattern count = 0
1471No options
1472First char = 'b'
1473Need char = 'a'
1474
1475/"([^\\"]+|\\.)*"/I
1476Capturing subpattern count = 1
1477No options
1478First char = '"'
1479Need char = '"'
1480
1481/(abc|ab[cd])/I
1482Capturing subpattern count = 1
1483No options
1484First char = 'a'
1485No need char
1486
1487/(a|.)/I
1488Capturing subpattern count = 1
1489No options
1490No first char
1491No need char
1492
1493/a|ba|\w/I
1494Capturing subpattern count = 0
1495No options
1496No first char
1497No need char
1498
1499/abc(?=pqr)/I
1500Capturing subpattern count = 0
1501No options
1502First char = 'a'
1503Need char = 'r'
1504
1505/...(?<=abc)/I
1506Capturing subpattern count = 0
1507No options
1508No first char
1509No need char
1510
1511/abc(?!pqr)/I
1512Capturing subpattern count = 0
1513No options
1514First char = 'a'
1515Need char = 'c'
1516
1517/ab./I
1518Capturing subpattern count = 0
1519No options
1520First char = 'a'
1521Need char = 'b'
1522
1523/ab[xyz]/I
1524Capturing subpattern count = 0
1525No options
1526First char = 'a'
1527Need char = 'b'
1528
1529/abc*/I
1530Capturing subpattern count = 0
1531No options
1532First char = 'a'
1533Need char = 'b'
1534
1535/ab.c*/I
1536Capturing subpattern count = 0
1537No options
1538First char = 'a'
1539Need char = 'b'
1540
1541/a.c*/I
1542Capturing subpattern count = 0
1543No options
1544First char = 'a'
1545No need char
1546
1547/.c*/I
1548Capturing subpattern count = 0
1549No options
1550No first char
1551No need char
1552
1553/ac*/I
1554Capturing subpattern count = 0
1555No options
1556First char = 'a'
1557No need char
1558
1559/(a.c*|b.c*)/I
1560Capturing subpattern count = 1
1561No options
1562No first char
1563No need char
1564
1565/a.c*|aba/I
1566Capturing subpattern count = 0
1567No options
1568First char = 'a'
1569No need char
1570
1571/.+a/I
1572Capturing subpattern count = 0
1573No options
1574No first char
1575Need char = 'a'
1576
1577/(?=abcda)a.*/I
1578Capturing subpattern count = 0
1579No options
1580First char = 'a'
1581Need char = 'a'
1582
1583/(?=a)a.*/I
1584Capturing subpattern count = 0
1585No options
1586First char = 'a'
1587No need char
1588
1589/a(b)*/I
1590Capturing subpattern count = 1
1591No options
1592First char = 'a'
1593No need char
1594
1595/a\d*/I
1596Capturing subpattern count = 0
1597No options
1598First char = 'a'
1599No need char
1600
1601/ab\d*/I
1602Capturing subpattern count = 0
1603No options
1604First char = 'a'
1605Need char = 'b'
1606
1607/a(\d)*/I
1608Capturing subpattern count = 1
1609No options
1610First char = 'a'
1611No need char
1612
1613/abcde{0,0}/I
1614Capturing subpattern count = 0
1615No options
1616First char = 'a'
1617Need char = 'd'
1618
1619/ab\d+/I
1620Capturing subpattern count = 0
1621No options
1622First char = 'a'
1623Need char = 'b'
1624
1625/a(?(1)b)(.)/I
1626Capturing subpattern count = 1
1627No options
1628First char = 'a'
1629No need char
1630
1631/a(?(1)bag|big)(.)/I
1632Capturing subpattern count = 1
1633No options
1634First char = 'a'
1635Need char = 'g'
1636
1637/a(?(1)bag|big)*(.)/I
1638Capturing subpattern count = 1
1639No options
1640First char = 'a'
1641No need char
1642
1643/a(?(1)bag|big)+(.)/I
1644Capturing subpattern count = 1
1645No options
1646First char = 'a'
1647Need char = 'g'
1648
1649/a(?(1)b..|b..)(.)/I
1650Capturing subpattern count = 1
1651No options
1652First char = 'a'
1653Need char = 'b'
1654
1655/ab\d{0}e/I
1656Capturing subpattern count = 0
1657No options
1658First char = 'a'
1659Need char = 'e'
1660
1661/a?b?/I
1662Capturing subpattern count = 0
1663No options
1664No first char
1665No need char
1666 a
1667 0: a
1668 b
1669 0: b
1670 ab
1671 0: ab
1672 \
1673 0:
1674 *** Failers
1675 0:
1676 \N
1677No match
1678
1679/|-/I
1680Capturing subpattern count = 0
1681No options
1682No first char
1683No need char
1684 abcd
1685 0:
1686 -abc
1687 0:
1688 \Nab-c
1689 0: -
1690 *** Failers
1691 0:
1692 \Nabc
1693No match
1694
1695/a*(b+)(z)(z)/P
1696 aaaabbbbzzzz
1697 0: aaaabbbbzz
1698 1: bbbb
1699 2: z
1700 3: z
1701 aaaabbbbzzzz\O0
1702 aaaabbbbzzzz\O1
1703 0: aaaabbbbzz
1704 aaaabbbbzzzz\O2
1705 0: aaaabbbbzz
1706 1: bbbb
1707 aaaabbbbzzzz\O3
1708 0: aaaabbbbzz
1709 1: bbbb
1710 2: z
1711 aaaabbbbzzzz\O4
1712 0: aaaabbbbzz
1713 1: bbbb
1714 2: z
1715 3: z
1716 aaaabbbbzzzz\O5
1717 0: aaaabbbbzz
1718 1: bbbb
1719 2: z
1720 3: z
1721
1722/^.?abcd/IS
1723Capturing subpattern count = 0
1724Options: anchored
1725No first char
1726Need char = 'd'
1727Subject length lower bound = 4
1728No set of starting bytes
1729
1730/\( # ( at start
1731 (?: # Non-capturing bracket
1732 (?>[^()]+) # Either a sequence of non-brackets (no backtracking)
1733 | # Or
1734 (?R) # Recurse - i.e. nested bracketed string
1735 )* # Zero or more contents
1736 \) # Closing )
1737 /Ix
1738Capturing subpattern count = 0
1739Options: extended
1740First char = '('
1741Need char = ')'
1742 (abcd)
1743 0: (abcd)
1744 (abcd)xyz
1745 0: (abcd)
1746 xyz(abcd)
1747 0: (abcd)
1748 (ab(xy)cd)pqr
1749 0: (ab(xy)cd)
1750 (ab(xycd)pqr
1751 0: (xycd)
1752 () abc ()
1753 0: ()
1754 12(abcde(fsh)xyz(foo(bar))lmno)89
1755 0: (abcde(fsh)xyz(foo(bar))lmno)
1756 *** Failers
1757No match
1758 abcd
1759No match
1760 abcd)
1761No match
1762 (abcd
1763No match
1764
1765/\( ( (?>[^()]+) | (?R) )* \) /Ixg
1766Capturing subpattern count = 1
1767Options: extended
1768First char = '('
1769Need char = ')'
1770 (ab(xy)cd)pqr
1771 0: (ab(xy)cd)
1772 1: cd
1773 1(abcd)(x(y)z)pqr
1774 0: (abcd)
1775 1: abcd
1776 0: (x(y)z)
1777 1: z
1778
1779/\( (?: (?>[^()]+) | (?R) ) \) /Ix
1780Capturing subpattern count = 0
1781Options: extended
1782First char = '('
1783Need char = ')'
1784 (abcd)
1785 0: (abcd)
1786 (ab(xy)cd)
1787 0: (xy)
1788 (a(b(c)d)e)
1789 0: (c)
1790 ((ab))
1791 0: ((ab))
1792 *** Failers
1793No match
1794 ()
1795No match
1796
1797/\( (?: (?>[^()]+) | (?R) )? \) /Ix
1798Capturing subpattern count = 0
1799Options: extended
1800First char = '('
1801Need char = ')'
1802 ()
1803 0: ()
1804 12(abcde(fsh)xyz(foo(bar))lmno)89
1805 0: (fsh)
1806
1807/\( ( (?>[^()]+) | (?R) )* \) /Ix
1808Capturing subpattern count = 1
1809Options: extended
1810First char = '('
1811Need char = ')'
1812 (ab(xy)cd)
1813 0: (ab(xy)cd)
1814 1: cd
1815
1816/\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1817Capturing subpattern count = 2
1818Options: extended
1819First char = '('
1820Need char = ')'
1821 (ab(xy)cd)
1822 0: (ab(xy)cd)
1823 1: ab(xy)cd
1824 2: cd
1825
1826/\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1827Capturing subpattern count = 3
1828Options: extended
1829First char = '('
1830Need char = ')'
1831 (ab(xy)cd)
1832 0: (ab(xy)cd)
1833 1: <unset>
1834 2: ab(xy)cd
1835 3: cd
1836 (123ab(xy)cd)
1837 0: (123ab(xy)cd)
1838 1: 123
1839 2: ab(xy)cd
1840 3: cd
1841
1842/\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1843Capturing subpattern count = 3
1844Options: extended
1845First char = '('
1846Need char = ')'
1847 (ab(xy)cd)
1848 0: (ab(xy)cd)
1849 1: ab(xy)cd
1850 2: <unset>
1851 3: cd
1852 (123ab(xy)cd)
1853 0: (123ab(xy)cd)
1854 1: 123ab(xy)cd
1855 2: 123
1856 3: cd
1857
1858/\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1859Capturing subpattern count = 11
1860Options: extended
1861First char = '('
1862Need char = ')'
1863 (ab(xy)cd)
1864 0: (ab(xy)cd)
1865 1: ab(xy)cd
1866 2: ab(xy)cd
1867 3: ab(xy)cd
1868 4: ab(xy)cd
1869 5: ab(xy)cd
1870 6: ab(xy)cd
1871 7: ab(xy)cd
1872 8: ab(xy)cd
1873 9: ab(xy)cd
187410: ab(xy)cd
187511: cd
1876
1877/\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1878Capturing subpattern count = 3
1879Options: extended
1880First char = '('
1881Need char = ')'
1882 (abcd(xyz<p>qrs)123)
1883 0: (abcd(xyz<p>qrs)123)
1884 1: abcd(xyz<p>qrs)123
1885 2: 123
1886
1887/\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1888Capturing subpattern count = 3
1889Options: extended
1890First char = '('
1891Need char = ')'
1892 (ab(cd)ef)
1893 0: (ab(cd)ef)
1894 1: ab(cd)ef
1895 2: ef
1896 3: (cd)
1897 (ab(cd(ef)gh)ij)
1898 0: (ab(cd(ef)gh)ij)
1899 1: ab(cd(ef)gh)ij
1900 2: ij
1901 3: (cd(ef)gh)
1902
1903/^[[:alnum:]]/DZ
1904------------------------------------------------------------------
1905 Bra
1906 ^
1907 [0-9A-Za-z]
1908 Ket
1909 End
1910------------------------------------------------------------------
1911Capturing subpattern count = 0
1912Options: anchored
1913No first char
1914No need char
1915
1916/^[[:^alnum:]]/DZ
1917------------------------------------------------------------------
1918 Bra
1919 ^
1920 [\x00-/:-@[-`{-\xff] (neg)
1921 Ket
1922 End
1923------------------------------------------------------------------
1924Capturing subpattern count = 0
1925Options: anchored
1926No first char
1927No need char
1928
1929/^[[:alpha:]]/DZ
1930------------------------------------------------------------------
1931 Bra
1932 ^
1933 [A-Za-z]
1934 Ket
1935 End
1936------------------------------------------------------------------
1937Capturing subpattern count = 0
1938Options: anchored
1939No first char
1940No need char
1941
1942/^[[:^alpha:]]/DZ
1943------------------------------------------------------------------
1944 Bra
1945 ^
1946 [\x00-@[-`{-\xff] (neg)
1947 Ket
1948 End
1949------------------------------------------------------------------
1950Capturing subpattern count = 0
1951Options: anchored
1952No first char
1953No need char
1954
1955/[_[:alpha:]]/IS
1956Capturing subpattern count = 0
1957No options
1958No first char
1959No need char
1960Subject length lower bound = 1
1961Starting byte set: 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
1962 _ 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
1963
1964/^[[:ascii:]]/DZ
1965------------------------------------------------------------------
1966 Bra
1967 ^
1968 [\x00-\x7f]
1969 Ket
1970 End
1971------------------------------------------------------------------
1972Capturing subpattern count = 0
1973Options: anchored
1974No first char
1975No need char
1976
1977/^[[:^ascii:]]/DZ
1978------------------------------------------------------------------
1979 Bra
1980 ^
1981 [\x80-\xff] (neg)
1982 Ket
1983 End
1984------------------------------------------------------------------
1985Capturing subpattern count = 0
1986Options: anchored
1987No first char
1988No need char
1989
1990/^[[:blank:]]/DZ
1991------------------------------------------------------------------
1992 Bra
1993 ^
1994 [\x09 ]
1995 Ket
1996 End
1997------------------------------------------------------------------
1998Capturing subpattern count = 0
1999Options: anchored
2000No first char
2001No need char
2002
2003/^[[:^blank:]]/DZ
2004------------------------------------------------------------------
2005 Bra
2006 ^
2007 [\x00-\x08\x0a-\x1f!-\xff] (neg)
2008 Ket
2009 End
2010------------------------------------------------------------------
2011Capturing subpattern count = 0
2012Options: anchored
2013No first char
2014No need char
2015
2016/[\n\x0b\x0c\x0d[:blank:]]/IS
2017Capturing subpattern count = 0
2018Contains explicit CR or LF match
2019No options
2020No first char
2021No need char
2022Subject length lower bound = 1
2023Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2024
2025/^[[:cntrl:]]/DZ
2026------------------------------------------------------------------
2027 Bra
2028 ^
2029 [\x00-\x1f\x7f]
2030 Ket
2031 End
2032------------------------------------------------------------------
2033Capturing subpattern count = 0
2034Options: anchored
2035No first char
2036No need char
2037
2038/^[[:digit:]]/DZ
2039------------------------------------------------------------------
2040 Bra
2041 ^
2042 [0-9]
2043 Ket
2044 End
2045------------------------------------------------------------------
2046Capturing subpattern count = 0
2047Options: anchored
2048No first char
2049No need char
2050
2051/^[[:graph:]]/DZ
2052------------------------------------------------------------------
2053 Bra
2054 ^
2055 [!-~]
2056 Ket
2057 End
2058------------------------------------------------------------------
2059Capturing subpattern count = 0
2060Options: anchored
2061No first char
2062No need char
2063
2064/^[[:lower:]]/DZ
2065------------------------------------------------------------------
2066 Bra
2067 ^
2068 [a-z]
2069 Ket
2070 End
2071------------------------------------------------------------------
2072Capturing subpattern count = 0
2073Options: anchored
2074No first char
2075No need char
2076
2077/^[[:print:]]/DZ
2078------------------------------------------------------------------
2079 Bra
2080 ^
2081 [ -~]
2082 Ket
2083 End
2084------------------------------------------------------------------
2085Capturing subpattern count = 0
2086Options: anchored
2087No first char
2088No need char
2089
2090/^[[:punct:]]/DZ
2091------------------------------------------------------------------
2092 Bra
2093 ^
2094 [!-/:-@[-`{-~]
2095 Ket
2096 End
2097------------------------------------------------------------------
2098Capturing subpattern count = 0
2099Options: anchored
2100No first char
2101No need char
2102
2103/^[[:space:]]/DZ
2104------------------------------------------------------------------
2105 Bra
2106 ^
2107 [\x09-\x0d ]
2108 Ket
2109 End
2110------------------------------------------------------------------
2111Capturing subpattern count = 0
2112Options: anchored
2113No first char
2114No need char
2115
2116/^[[:upper:]]/DZ
2117------------------------------------------------------------------
2118 Bra
2119 ^
2120 [A-Z]
2121 Ket
2122 End
2123------------------------------------------------------------------
2124Capturing subpattern count = 0
2125Options: anchored
2126No first char
2127No need char
2128
2129/^[[:xdigit:]]/DZ
2130------------------------------------------------------------------
2131 Bra
2132 ^
2133 [0-9A-Fa-f]
2134 Ket
2135 End
2136------------------------------------------------------------------
2137Capturing subpattern count = 0
2138Options: anchored
2139No first char
2140No need char
2141
2142/^[[:word:]]/DZ
2143------------------------------------------------------------------
2144 Bra
2145 ^
2146 [0-9A-Z_a-z]
2147 Ket
2148 End
2149------------------------------------------------------------------
2150Capturing subpattern count = 0
2151Options: anchored
2152No first char
2153No need char
2154
2155/^[[:^cntrl:]]/DZ
2156------------------------------------------------------------------
2157 Bra
2158 ^
2159 [ -~\x80-\xff] (neg)
2160 Ket
2161 End
2162------------------------------------------------------------------
2163Capturing subpattern count = 0
2164Options: anchored
2165No first char
2166No need char
2167
2168/^[12[:^digit:]]/DZ
2169------------------------------------------------------------------
2170 Bra
2171 ^
2172 [\x00-/12:-\xff] (neg)
2173 Ket
2174 End
2175------------------------------------------------------------------
2176Capturing subpattern count = 0
2177Options: anchored
2178No first char
2179No need char
2180
2181/^[[:^blank:]]/DZ
2182------------------------------------------------------------------
2183 Bra
2184 ^
2185 [\x00-\x08\x0a-\x1f!-\xff] (neg)
2186 Ket
2187 End
2188------------------------------------------------------------------
2189Capturing subpattern count = 0
2190Options: anchored
2191No first char
2192No need char
2193
2194/[01[:alpha:]%]/DZ
2195------------------------------------------------------------------
2196 Bra
2197 [%01A-Za-z]
2198 Ket
2199 End
2200------------------------------------------------------------------
2201Capturing subpattern count = 0
2202No options
2203No first char
2204No need char
2205
2206/[[.ch.]]/I
2207Failed: POSIX collating elements are not supported at offset 1
2208
2209/[[=ch=]]/I
2210Failed: POSIX collating elements are not supported at offset 1
2211
2212/[[:rhubarb:]]/I
2213Failed: unknown POSIX class name at offset 3
2214
2215/[[:upper:]]/Ii
2216Capturing subpattern count = 0
2217Options: caseless
2218No first char
2219No need char
2220 A
2221 0: A
2222 a
2223 0: a
2224
2225/[[:lower:]]/Ii
2226Capturing subpattern count = 0
2227Options: caseless
2228No first char
2229No need char
2230 A
2231 0: A
2232 a
2233 0: a
2234
2235/((?-i)[[:lower:]])[[:lower:]]/Ii
2236Capturing subpattern count = 1
2237Options: caseless
2238No first char
2239No need char
2240 ab
2241 0: ab
2242 1: a
2243 aB
2244 0: aB
2245 1: a
2246 *** Failers
2247 0: ai
2248 1: a
2249 Ab
2250No match
2251 AB
2252No match
2253
2254/[\200-\110]/I
2255Failed: range out of order in character class at offset 9
2256
2257/^(?(0)f|b)oo/I
2258Failed: invalid condition (?(0) at offset 6
2259
2260/This one's here because of the large output vector needed/I
2261Capturing subpattern count = 0
2262No options
2263First char = 'T'
2264Need char = 'd'
2265
2266/(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2267Capturing subpattern count = 271
2268Max back reference = 270
2269No options
2270No first char
2271No need char
2272 \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
2273 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
2274 1: 1
2275 2: 2
2276 3: 3
2277 4: 4
2278 5: 5
2279 6: 6
2280 7: 7
2281 8: 8
2282 9: 9
228310: 10
228411: 11
228512: 12
228613: 13
228714: 14
228815: 15
228916: 16
229017: 17
229118: 18
229219: 19
229320: 20
229421: 21
229522: 22
229623: 23
229724: 24
229825: 25
229926: 26
230027: 27
230128: 28
230229: 29
230330: 30
230431: 31
230532: 32
230633: 33
230734: 34
230835: 35
230936: 36
231037: 37
231138: 38
231239: 39
231340: 40
231441: 41
231542: 42
231643: 43
231744: 44
231845: 45
231946: 46
232047: 47
232148: 48
232249: 49
232350: 50
232451: 51
232552: 52
232653: 53
232754: 54
232855: 55
232956: 56
233057: 57
233158: 58
233259: 59
233360: 60
233461: 61
233562: 62
233663: 63
233764: 64
233865: 65
233966: 66
234067: 67
234168: 68
234269: 69
234370: 70
234471: 71
234572: 72
234673: 73
234774: 74
234875: 75
234976: 76
235077: 77
235178: 78
235279: 79
235380: 80
235481: 81
235582: 82
235683: 83
235784: 84
235885: 85
235986: 86
236087: 87
236188: 88
236289: 89
236390: 90
236491: 91
236592: 92
236693: 93
236794: 94
236895: 95
236996: 96
237097: 97
237198: 98
237299: 99
2373100: 100
2374101: 101
2375102: 102
2376103: 103
2377104: 104
2378105: 105
2379106: 106
2380107: 107
2381108: 108
2382109: 109
2383110: 110
2384111: 111
2385112: 112
2386113: 113
2387114: 114
2388115: 115
2389116: 116
2390117: 117
2391118: 118
2392119: 119
2393120: 120
2394121: 121
2395122: 122
2396123: 123
2397124: 124
2398125: 125
2399126: 126
2400127: 127
2401128: 128
2402129: 129
2403130: 130
2404131: 131
2405132: 132
2406133: 133
2407134: 134
2408135: 135
2409136: 136
2410137: 137
2411138: 138
2412139: 139
2413140: 140
2414141: 141
2415142: 142
2416143: 143
2417144: 144
2418145: 145
2419146: 146
2420147: 147
2421148: 148
2422149: 149
2423150: 150
2424151: 151
2425152: 152
2426153: 153
2427154: 154
2428155: 155
2429156: 156
2430157: 157
2431158: 158
2432159: 159
2433160: 160
2434161: 161
2435162: 162
2436163: 163
2437164: 164
2438165: 165
2439166: 166
2440167: 167
2441168: 168
2442169: 169
2443170: 170
2444171: 171
2445172: 172
2446173: 173
2447174: 174
2448175: 175
2449176: 176
2450177: 177
2451178: 178
2452179: 179
2453180: 180
2454181: 181
2455182: 182
2456183: 183
2457184: 184
2458185: 185
2459186: 186
2460187: 187
2461188: 188
2462189: 189
2463190: 190
2464191: 191
2465192: 192
2466193: 193
2467194: 194
2468195: 195
2469196: 196
2470197: 197
2471198: 198
2472199: 199
2473200: 200
2474201: 201
2475202: 202
2476203: 203
2477204: 204
2478205: 205
2479206: 206
2480207: 207
2481208: 208
2482209: 209
2483210: 210
2484211: 211
2485212: 212
2486213: 213
2487214: 214
2488215: 215
2489216: 216
2490217: 217
2491218: 218
2492219: 219
2493220: 220
2494221: 221
2495222: 222
2496223: 223
2497224: 224
2498225: 225
2499226: 226
2500227: 227
2501228: 228
2502229: 229
2503230: 230
2504231: 231
2505232: 232
2506233: 233
2507234: 234
2508235: 235
2509236: 236
2510237: 237
2511238: 238
2512239: 239
2513240: 240
2514241: 241
2515242: 242
2516243: 243
2517244: 244
2518245: 245
2519246: 246
2520247: 247
2521248: 248
2522249: 249
2523250: 250
2524251: 251
2525252: 252
2526253: 253
2527254: 254
2528255: 255
2529256: 256
2530257: 257
2531258: 258
2532259: 259
2533260: 260
2534261: 261
2535262: 262
2536263: 263
2537264: 264
2538265: 265
2539266: 266
2540267: 267
2541268: 268
2542269: 269
2543270: ABC
2544271: ABC
2545
2546/This one's here because Perl does this differently and PCRE can't at present/I
2547Capturing subpattern count = 0
2548No options
2549First char = 'T'
2550Need char = 't'
2551
2552/(main(O)?)+/I
2553Capturing subpattern count = 2
2554No options
2555First char = 'm'
2556Need char = 'n'
2557 mainmain
2558 0: mainmain
2559 1: main
2560 mainOmain
2561 0: mainOmain
2562 1: main
2563 2: O
2564
2565/These are all cases where Perl does it differently (nested captures)/I
2566Capturing subpattern count = 1
2567No options
2568First char = 'T'
2569Need char = 's'
2570
2571/^(a(b)?)+$/I
2572Capturing subpattern count = 2
2573Options: anchored
2574No first char
2575No need char
2576 aba
2577 0: aba
2578 1: a
2579 2: b
2580
2581/^(aa(bb)?)+$/I
2582Capturing subpattern count = 2
2583Options: anchored
2584No first char
2585No need char
2586 aabbaa
2587 0: aabbaa
2588 1: aa
2589 2: bb
2590
2591/^(aa|aa(bb))+$/I
2592Capturing subpattern count = 2
2593Options: anchored
2594No first char
2595No need char
2596 aabbaa
2597 0: aabbaa
2598 1: aa
2599 2: bb
2600
2601/^(aa(bb)??)+$/I
2602Capturing subpattern count = 2
2603Options: anchored
2604No first char
2605No need char
2606 aabbaa
2607 0: aabbaa
2608 1: aa
2609 2: bb
2610
2611/^(?:aa(bb)?)+$/I
2612Capturing subpattern count = 1
2613Options: anchored
2614No first char
2615No need char
2616 aabbaa
2617 0: aabbaa
2618 1: bb
2619
2620/^(aa(b(b))?)+$/I
2621Capturing subpattern count = 3
2622Options: anchored
2623No first char
2624No need char
2625 aabbaa
2626 0: aabbaa
2627 1: aa
2628 2: bb
2629 3: b
2630
2631/^(?:aa(b(b))?)+$/I
2632Capturing subpattern count = 2
2633Options: anchored
2634No first char
2635No need char
2636 aabbaa
2637 0: aabbaa
2638 1: bb
2639 2: b
2640
2641/^(?:aa(b(?:b))?)+$/I
2642Capturing subpattern count = 1
2643Options: anchored
2644No first char
2645No need char
2646 aabbaa
2647 0: aabbaa
2648 1: bb
2649
2650/^(?:aa(bb(?:b))?)+$/I
2651Capturing subpattern count = 1
2652Options: anchored
2653No first char
2654No need char
2655 aabbbaa
2656 0: aabbbaa
2657 1: bbb
2658
2659/^(?:aa(b(?:bb))?)+$/I
2660Capturing subpattern count = 1
2661Options: anchored
2662No first char
2663No need char
2664 aabbbaa
2665 0: aabbbaa
2666 1: bbb
2667
2668/^(?:aa(?:b(b))?)+$/I
2669Capturing subpattern count = 1
2670Options: anchored
2671No first char
2672No need char
2673 aabbaa
2674 0: aabbaa
2675 1: b
2676
2677/^(?:aa(?:b(bb))?)+$/I
2678Capturing subpattern count = 1
2679Options: anchored
2680No first char
2681No need char
2682 aabbbaa
2683 0: aabbbaa
2684 1: bb
2685
2686/^(aa(b(bb))?)+$/I
2687Capturing subpattern count = 3
2688Options: anchored
2689No first char
2690No need char
2691 aabbbaa
2692 0: aabbbaa
2693 1: aa
2694 2: bbb
2695 3: bb
2696
2697/^(aa(bb(bb))?)+$/I
2698Capturing subpattern count = 3
2699Options: anchored
2700No first char
2701No need char
2702 aabbbbaa
2703 0: aabbbbaa
2704 1: aa
2705 2: bbbb
2706 3: bb
2707
2708/--------------------------------------------------------------------/I
2709Capturing subpattern count = 0
2710No options
2711First char = '-'
2712Need char = '-'
2713
2714/#/IxDZ
2715------------------------------------------------------------------
2716 Bra
2717 Ket
2718 End
2719------------------------------------------------------------------
2720Capturing subpattern count = 0
2721Options: extended
2722No first char
2723No need char
2724
2725/a#/IxDZ
2726------------------------------------------------------------------
2727 Bra
2728 a
2729 Ket
2730 End
2731------------------------------------------------------------------
2732Capturing subpattern count = 0
2733Options: extended
2734First char = 'a'
2735No need char
2736
2737/[\s]/DZ
2738------------------------------------------------------------------
2739 Bra
2740 [\x09\x0a\x0c\x0d ]
2741 Ket
2742 End
2743------------------------------------------------------------------
2744Capturing subpattern count = 0
2745No options
2746No first char
2747No need char
2748
2749/[\S]/DZ
2750------------------------------------------------------------------
2751 Bra
2752 [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2753 Ket
2754 End
2755------------------------------------------------------------------
2756Capturing subpattern count = 0
2757No options
2758No first char
2759No need char
2760
2761/a(?i)b/DZ
2762------------------------------------------------------------------
2763 Bra
2764 a
2765 /i b
2766 Ket
2767 End
2768------------------------------------------------------------------
2769Capturing subpattern count = 0
2770No options
2771First char = 'a'
2772Need char = 'b' (caseless)
2773 ab
2774 0: ab
2775 aB
2776 0: aB
2777 *** Failers
2778No match
2779 AB
2780No match
2781
2782/(a(?i)b)/DZ
2783------------------------------------------------------------------
2784 Bra
2785 CBra 1
2786 a
2787 /i b
2788 Ket
2789 Ket
2790 End
2791------------------------------------------------------------------
2792Capturing subpattern count = 1
2793No options
2794First char = 'a'
2795Need char = 'b' (caseless)
2796 ab
2797 0: ab
2798 1: ab
2799 aB
2800 0: aB
2801 1: aB
2802 *** Failers
2803No match
2804 AB
2805No match
2806
2807/ (?i)abc/IxDZ
2808------------------------------------------------------------------
2809 Bra
2810 /i abc
2811 Ket
2812 End
2813------------------------------------------------------------------
2814Capturing subpattern count = 0
2815Options: caseless extended
2816First char = 'a' (caseless)
2817Need char = 'c' (caseless)
2818
2819/#this is a comment
2820 (?i)abc/IxDZ
2821------------------------------------------------------------------
2822 Bra
2823 /i abc
2824 Ket
2825 End
2826------------------------------------------------------------------
2827Capturing subpattern count = 0
2828Options: caseless extended
2829First char = 'a' (caseless)
2830Need char = 'c' (caseless)
2831
2832/123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2833------------------------------------------------------------------
2834 Bra
2835 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2836 Ket
2837 End
2838------------------------------------------------------------------
2839Capturing subpattern count = 0
2840No options
2841First char = '1'
2842Need char = '0'
2843
2844/\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2845------------------------------------------------------------------
2846 Bra
2847 123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2848 Ket
2849 End
2850------------------------------------------------------------------
2851Capturing subpattern count = 0
2852No options
2853First char = '1'
2854Need char = '0'
2855
2856/\Q\E/DZ
2857------------------------------------------------------------------
2858 Bra
2859 Ket
2860 End
2861------------------------------------------------------------------
2862Capturing subpattern count = 0
2863No options
2864No first char
2865No need char
2866 \
2867 0:
2868
2869/\Q\Ex/DZ
2870------------------------------------------------------------------
2871 Bra
2872 x
2873 Ket
2874 End
2875------------------------------------------------------------------
2876Capturing subpattern count = 0
2877No options
2878First char = 'x'
2879No need char
2880
2881/ \Q\E/DZ
2882------------------------------------------------------------------
2883 Bra
2884
2885 Ket
2886 End
2887------------------------------------------------------------------
2888Capturing subpattern count = 0
2889No options
2890First char = ' '
2891No need char
2892
2893/a\Q\E/DZ
2894------------------------------------------------------------------
2895 Bra
2896 a
2897 Ket
2898 End
2899------------------------------------------------------------------
2900Capturing subpattern count = 0
2901No options
2902First char = 'a'
2903No need char
2904 abc
2905 0: a
2906 bca
2907 0: a
2908 bac
2909 0: a
2910
2911/a\Q\Eb/DZ
2912------------------------------------------------------------------
2913 Bra
2914 ab
2915 Ket
2916 End
2917------------------------------------------------------------------
2918Capturing subpattern count = 0
2919No options
2920First char = 'a'
2921Need char = 'b'
2922 abc
2923 0: ab
2924
2925/\Q\Eabc/DZ
2926------------------------------------------------------------------
2927 Bra
2928 abc
2929 Ket
2930 End
2931------------------------------------------------------------------
2932Capturing subpattern count = 0
2933No options
2934First char = 'a'
2935Need char = 'c'
2936
2937/x*+\w/DZ
2938------------------------------------------------------------------
2939 Bra
2940 x*+
2941 \w
2942 Ket
2943 End
2944------------------------------------------------------------------
2945Capturing subpattern count = 0
2946No options
2947No first char
2948No need char
2949 *** Failers
2950 0: F
2951 xxxxx
2952No match
2953
2954/x?+/DZ
2955------------------------------------------------------------------
2956 Bra
2957 x?+
2958 Ket
2959 End
2960------------------------------------------------------------------
2961Capturing subpattern count = 0
2962No options
2963No first char
2964No need char
2965
2966/x++/DZ
2967------------------------------------------------------------------
2968 Bra
2969 x++
2970 Ket
2971 End
2972------------------------------------------------------------------
2973Capturing subpattern count = 0
2974No options
2975First char = 'x'
2976No need char
2977
2978/x{1,3}+/DZ
2979------------------------------------------------------------------
2980 Bra
2981 Once
2982 x
2983 x{0,2}
2984 Ket
2985 Ket
2986 End
2987------------------------------------------------------------------
2988Capturing subpattern count = 0
2989No options
2990First char = 'x'
2991No need char
2992
2993/(x)*+/DZ
2994------------------------------------------------------------------
2995 Bra
2996 Braposzero
2997 CBraPos 1
2998 x
2999 KetRpos
3000 Ket
3001 End
3002------------------------------------------------------------------
3003Capturing subpattern count = 1
3004No options
3005No first char
3006No need char
3007
3008/^(\w++|\s++)*$/I
3009Capturing subpattern count = 1
3010Options: anchored
3011No first char
3012No need char
3013 now is the time for all good men to come to the aid of the party
3014 0: now is the time for all good men to come to the aid of the party
3015 1: party
3016 *** Failers
3017No match
3018 this is not a line with only words and spaces!
3019No match
3020
3021/(\d++)(\w)/I
3022Capturing subpattern count = 2
3023No options
3024No first char
3025No need char
3026 12345a
3027 0: 12345a
3028 1: 12345
3029 2: a
3030 *** Failers
3031No match
3032 12345+
3033No match
3034
3035/a++b/I
3036Capturing subpattern count = 0
3037No options
3038First char = 'a'
3039Need char = 'b'
3040 aaab
3041 0: aaab
3042
3043/(a++b)/I
3044Capturing subpattern count = 1
3045No options
3046First char = 'a'
3047Need char = 'b'
3048 aaab
3049 0: aaab
3050 1: aaab
3051
3052/(a++)b/I
3053Capturing subpattern count = 1
3054No options
3055First char = 'a'
3056Need char = 'b'
3057 aaab
3058 0: aaab
3059 1: aaa
3060
3061/([^()]++|\([^()]*\))+/I
3062Capturing subpattern count = 1
3063No options
3064No first char
3065No need char
3066 ((abc(ade)ufh()()x
3067 0: abc(ade)ufh()()x
3068 1: x
3069
3070/\(([^()]++|\([^()]+\))+\)/I
3071Capturing subpattern count = 1
3072No options
3073First char = '('
3074Need char = ')'
3075 (abc)
3076 0: (abc)
3077 1: abc
3078 (abc(def)xyz)
3079 0: (abc(def)xyz)
3080 1: xyz
3081 *** Failers
3082No match
3083 ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3084No match
3085
3086/(abc){1,3}+/DZ
3087------------------------------------------------------------------
3088 Bra
3089 Once
3090 CBra 1
3091 abc
3092 Ket
3093 Brazero
3094 Bra
3095 CBra 1
3096 abc
3097 Ket
3098 Brazero
3099 CBra 1
3100 abc
3101 Ket
3102 Ket
3103 Ket
3104 Ket
3105 End
3106------------------------------------------------------------------
3107Capturing subpattern count = 1
3108No options
3109First char = 'a'
3110Need char = 'c'
3111
3112/a+?+/I
3113Failed: nothing to repeat at offset 3
3114
3115/a{2,3}?+b/I
3116Failed: nothing to repeat at offset 7
3117
3118/(?U)a+?+/I
3119Failed: nothing to repeat at offset 7
3120
3121/a{2,3}?+b/IU
3122Failed: nothing to repeat at offset 7
3123
3124/x(?U)a++b/DZ
3125------------------------------------------------------------------
3126 Bra
3127 x
3128 a++
3129 b
3130 Ket
3131 End
3132------------------------------------------------------------------
3133Capturing subpattern count = 0
3134No options
3135First char = 'x'
3136Need char = 'b'
3137 xaaaab
3138 0: xaaaab
3139
3140/(?U)xa++b/DZ
3141------------------------------------------------------------------
3142 Bra
3143 x
3144 a++
3145 b
3146 Ket
3147 End
3148------------------------------------------------------------------
3149Capturing subpattern count = 0
3150Options: ungreedy
3151First char = 'x'
3152Need char = 'b'
3153 xaaaab
3154 0: xaaaab
3155
3156/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3157------------------------------------------------------------------
3158 Bra
3159 ^
3160 CBra 1
3161 CBra 2
3162 a+
3163 Ket
3164 CBra 3
3165 [ab]+?
3166 Ket
3167 CBra 4
3168 [bc]+
3169 Ket
3170 CBra 5
3171 \w*
3172 Ket
3173 Ket
3174 Ket
3175 End
3176------------------------------------------------------------------
3177Capturing subpattern count = 5
3178Options: anchored
3179No first char
3180No need char
3181
3182/^x(?U)a+b/DZ
3183------------------------------------------------------------------
3184 Bra
3185 ^
3186 x
3187 a++
3188 b
3189 Ket
3190 End
3191------------------------------------------------------------------
3192Capturing subpattern count = 0
3193Options: anchored
3194No first char
3195Need char = 'b'
3196
3197/^x(?U)(a+)b/DZ
3198------------------------------------------------------------------
3199 Bra
3200 ^
3201 x
3202 CBra 1
3203 a+?
3204 Ket
3205 b
3206 Ket
3207 End
3208------------------------------------------------------------------
3209Capturing subpattern count = 1
3210Options: anchored
3211No first char
3212Need char = 'b'
3213
3214/[.x.]/I
3215Failed: POSIX collating elements are not supported at offset 0
3216
3217/[=x=]/I
3218Failed: POSIX collating elements are not supported at offset 0
3219
3220/[:x:]/I
3221Failed: POSIX named classes are supported only within a class at offset 0
3222
3223/\l/I
3224Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3225
3226/\L/I
3227Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3228
3229/\N{name}/I
3230Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3231
3232/\u/I
3233Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3234
3235/\U/I
3236Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3237
3238/[/I
3239Failed: missing terminating ] for character class at offset 1
3240
3241/[a-/I
3242Failed: missing terminating ] for character class at offset 3
3243
3244/[[:space:]/I
3245Failed: missing terminating ] for character class at offset 10
3246
3247/[\s]/IDZ
3248------------------------------------------------------------------
3249 Bra
3250 [\x09\x0a\x0c\x0d ]
3251 Ket
3252 End
3253------------------------------------------------------------------
3254Capturing subpattern count = 0
3255No options
3256No first char
3257No need char
3258
3259/[[:space:]]/IDZ
3260------------------------------------------------------------------
3261 Bra
3262 [\x09-\x0d ]
3263 Ket
3264 End
3265------------------------------------------------------------------
3266Capturing subpattern count = 0
3267No options
3268No first char
3269No need char
3270
3271/[[:space:]abcde]/IDZ
3272------------------------------------------------------------------
3273 Bra
3274 [\x09-\x0d a-e]
3275 Ket
3276 End
3277------------------------------------------------------------------
3278Capturing subpattern count = 0
3279No options
3280No first char
3281No need char
3282
3283/< (?: (?(R) \d++ | [^<>]*+) | (?R)) * >/Ix
3284Capturing subpattern count = 0
3285Options: extended
3286First char = '<'
3287Need char = '>'
3288 <>
3289 0: <>
3290 <abcd>
3291 0: <abcd>
3292 <abc <123> hij>
3293 0: <abc <123> hij>
3294 <abc <def> hij>
3295 0: <def>
3296 <abc<>def>
3297 0: <abc<>def>
3298 <abc<>
3299 0: <>
3300 *** Failers
3301No match
3302 <abc
3303No match
3304
3305|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
3306------------------------------------------------------------------
3307 Bra
3308 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
3309 \b
3310 Ket
3311 End
3312------------------------------------------------------------------
3313Capturing subpattern count = 0
3314No options
3315First char = '8'
3316Need char = 'X'
3317
3318|\$\<\.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
3319------------------------------------------------------------------
3320 Bra
3321 $<.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
3322 \b
3323 Ket
3324 End
3325------------------------------------------------------------------
3326Capturing subpattern count = 0
3327No options
3328First char = '$'
3329Need char = 'X'
3330
3331/(.*)\d+\1/I
3332Capturing subpattern count = 1
3333Max back reference = 1
3334No options
3335No first char
3336No need char
3337
3338/(.*)\d+/I
3339Capturing subpattern count = 1
3340No options
3341First char at start or follows newline
3342No need char
3343
3344/(.*)\d+\1/Is
3345Capturing subpattern count = 1
3346Max back reference = 1
3347Options: dotall
3348No first char
3349No need char
3350
3351/(.*)\d+/Is
3352Capturing subpattern count = 1
3353Options: anchored dotall
3354No first char
3355No need char
3356
3357/(.*(xyz))\d+\2/I
3358Capturing subpattern count = 2
3359Max back reference = 2
3360No options
3361First char at start or follows newline
3362Need char = 'z'
3363
3364/((.*))\d+\1/I
3365Capturing subpattern count = 2
3366Max back reference = 1
3367No options
3368No first char
3369No need char
3370 abc123bc
3371 0: bc123bc
3372 1: bc
3373 2: bc
3374
3375/a[b]/I
3376Capturing subpattern count = 0
3377No options
3378First char = 'a'
3379Need char = 'b'
3380
3381/(?=a).*/I
3382Capturing subpattern count = 0
3383No options
3384First char = 'a'
3385No need char
3386
3387/(?=abc).xyz/IiI
3388Capturing subpattern count = 0
3389Options: caseless
3390First char = 'a' (caseless)
3391Need char = 'z' (caseless)
3392
3393/(?=abc)(?i).xyz/I
3394Capturing subpattern count = 0
3395No options
3396First char = 'a'
3397Need char = 'z' (caseless)
3398
3399/(?=a)(?=b)/I
3400Capturing subpattern count = 0
3401No options
3402First char = 'a'
3403No need char
3404
3405/(?=.)a/I
3406Capturing subpattern count = 0
3407No options
3408First char = 'a'
3409No need char
3410
3411/((?=abcda)a)/I
3412Capturing subpattern count = 1
3413No options
3414First char = 'a'
3415Need char = 'a'
3416
3417/((?=abcda)ab)/I
3418Capturing subpattern count = 1
3419No options
3420First char = 'a'
3421Need char = 'b'
3422
3423/()a/I
3424Capturing subpattern count = 1
3425No options
3426No first char
3427Need char = 'a'
3428
3429/(?(1)ab|ac)(.)/I
3430Capturing subpattern count = 1
3431No options
3432First char = 'a'
3433No need char
3434
3435/(?(1)abz|acz)(.)/I
3436Capturing subpattern count = 1
3437No options
3438First char = 'a'
3439Need char = 'z'
3440
3441/(?(1)abz)(.)/I
3442Capturing subpattern count = 1
3443No options
3444No first char
3445No need char
3446
3447/(?(1)abz)(1)23/I
3448Capturing subpattern count = 1
3449No options
3450No first char
3451Need char = '3'
3452
3453/(a)+/I
3454Capturing subpattern count = 1
3455No options
3456First char = 'a'
3457No need char
3458
3459/(a){2,3}/I
3460Capturing subpattern count = 1
3461No options
3462First char = 'a'
3463Need char = 'a'
3464
3465/(a)*/I
3466Capturing subpattern count = 1
3467No options
3468No first char
3469No need char
3470
3471/[a]/I
3472Capturing subpattern count = 0
3473No options
3474First char = 'a'
3475No need char
3476
3477/[ab]/I
3478Capturing subpattern count = 0
3479No options
3480No first char
3481No need char
3482
3483/[ab]/IS
3484Capturing subpattern count = 0
3485No options
3486No first char
3487No need char
3488Subject length lower bound = 1
3489Starting byte set: a b
3490
3491/[^a]/I
3492Capturing subpattern count = 0
3493No options
3494No first char
3495No need char
3496
3497/\d456/I
3498Capturing subpattern count = 0
3499No options
3500No first char
3501Need char = '6'
3502
3503/\d456/IS
3504Capturing subpattern count = 0
3505No options
3506No first char
3507Need char = '6'
3508Subject length lower bound = 4
3509Starting byte set: 0 1 2 3 4 5 6 7 8 9
3510
3511/a^b/I
3512Capturing subpattern count = 0
3513No options
3514First char = 'a'
3515Need char = 'b'
3516
3517/^a/Im
3518Capturing subpattern count = 0
3519Options: multiline
3520First char at start or follows newline
3521Need char = 'a'
3522 abcde
3523 0: a
3524 xy\nabc
3525 0: a
3526 *** Failers
3527No match
3528 xyabc
3529No match
3530
3531/c|abc/I
3532Capturing subpattern count = 0
3533No options
3534No first char
3535Need char = 'c'
3536
3537/(?i)[ab]/IS
3538Capturing subpattern count = 0
3539Options: caseless
3540No first char
3541No need char
3542Subject length lower bound = 1
3543Starting byte set: A B a b
3544
3545/[ab](?i)cd/IS
3546Capturing subpattern count = 0
3547No options
3548No first char
3549Need char = 'd' (caseless)
3550Subject length lower bound = 3
3551Starting byte set: a b
3552
3553/abc(?C)def/I
3554Capturing subpattern count = 0
3555No options
3556First char = 'a'
3557Need char = 'f'
3558 abcdef
3559--->abcdef
3560 0 ^ ^ d
3561 0: abcdef
3562 1234abcdef
3563--->1234abcdef
3564 0 ^ ^ d
3565 0: abcdef
3566 *** Failers
3567No match
3568 abcxyz
3569No match
3570 abcxyzf
3571--->abcxyzf
3572 0 ^ ^ d
3573No match
3574
3575/abc(?C)de(?C1)f/I
3576Capturing subpattern count = 0
3577No options
3578First char = 'a'
3579Need char = 'f'
3580 123abcdef
3581--->123abcdef
3582 0 ^ ^ d
3583 1 ^ ^ f
3584 0: abcdef
3585
3586/(?C1)\dabc(?C2)def/IS
3587Capturing subpattern count = 0
3588No options
3589No first char
3590Need char = 'f'
3591Subject length lower bound = 7
3592Starting byte set: 0 1 2 3 4 5 6 7 8 9
3593 1234abcdef
3594--->1234abcdef
3595 1 ^ \d
3596 1 ^ \d
3597 1 ^ \d
3598 1 ^ \d
3599 2 ^ ^ d
3600 0: 4abcdef
3601 *** Failers
3602No match
3603 abcdef
3604No match
3605
3606/(?C1)\dabc(?C2)def/ISS
3607Capturing subpattern count = 0
3608No options
3609No first char
3610Need char = 'f'
3611 1234abcdef
3612--->1234abcdef
3613 1 ^ \d
3614 1 ^ \d
3615 1 ^ \d
3616 1 ^ \d
3617 2 ^ ^ d
3618 0: 4abcdef
3619 *** Failers
3620No match
3621 abcdef
3622--->abcdef
3623 1 ^ \d
3624 1 ^ \d
3625 1 ^ \d
3626 1 ^ \d
3627 1 ^ \d
3628 1 ^ \d
3629No match
3630
3631/(?C255)ab/I
3632Capturing subpattern count = 0
3633No options
3634First char = 'a'
3635Need char = 'b'
3636
3637/(?C256)ab/I
3638Failed: number after (?C is > 255 at offset 6
3639
3640/(?Cab)xx/I
3641Failed: closing ) for (?C expected at offset 3
3642
3643/(?C12vr)x/I
3644Failed: closing ) for (?C expected at offset 5
3645
3646/abc(?C)def/I
3647Capturing subpattern count = 0
3648No options
3649First char = 'a'
3650Need char = 'f'
3651 *** Failers
3652No match
3653 \x83\x0\x61bcdef
3654--->\x83\x00abcdef
3655 0 ^ ^ d
3656 0: abcdef
3657
3658/(abc)(?C)de(?C1)f/I
3659Capturing subpattern count = 1
3660No options
3661First char = 'a'
3662Need char = 'f'
3663 123abcdef
3664--->123abcdef
3665 0 ^ ^ d
3666 1 ^ ^ f
3667 0: abcdef
3668 1: abc
3669 123abcdef\C+
3670Callout 0: last capture = 1
3671 0: <unset>
3672 1: abc
3673--->123abcdef
3674 ^ ^ d
3675Callout 1: last capture = 1
3676 0: <unset>
3677 1: abc
3678--->123abcdef
3679 ^ ^ f
3680 0: abcdef
3681 1: abc
3682 123abcdef\C-
3683 0: abcdef
3684 1: abc
3685 *** Failers
3686No match
3687 123abcdef\C!1
3688--->123abcdef
3689 0 ^ ^ d
3690 1 ^ ^ f
3691No match
3692
3693/(?C0)(abc(?C1))*/I
3694Capturing subpattern count = 1
3695No options
3696No first char
3697No need char
3698 abcabcabc
3699--->abcabcabc
3700 0 ^ (abc(?C1))*
3701 1 ^ ^ )
3702 1 ^ ^ )
3703 1 ^ ^ )
3704 0: abcabcabc
3705 1: abc
3706 abcabc\C!1!3
3707--->abcabc
3708 0 ^ (abc(?C1))*
3709 1 ^ ^ )
3710 1 ^ ^ )
3711 0: abcabc
3712 1: abc
3713 *** Failers
3714--->*** Failers
3715 0 ^ (abc(?C1))*
3716 0:
3717 abcabcabc\C!1!3
3718--->abcabcabc
3719 0 ^ (abc(?C1))*
3720 1 ^ ^ )
3721 1 ^ ^ )
3722 1 ^ ^ )
3723 0: abcabc
3724 1: abc
3725
3726/(\d{3}(?C))*/I
3727Capturing subpattern count = 1
3728No options
3729No first char
3730No need char
3731 123\C+
3732Callout 0: last capture = -1
3733 0: <unset>
3734--->123
3735 ^ ^ )
3736 0: 123
3737 1: 123
3738 123456\C+
3739Callout 0: last capture = -1
3740 0: <unset>
3741--->123456
3742 ^ ^ )
3743Callout 0: last capture = 1
3744 0: <unset>
3745 1: 123
3746--->123456
3747 ^ ^ )
3748 0: 123456
3749 1: 456
3750 123456789\C+
3751Callout 0: last capture = -1
3752 0: <unset>
3753--->123456789
3754 ^ ^ )
3755Callout 0: last capture = 1
3756 0: <unset>
3757 1: 123
3758--->123456789
3759 ^ ^ )
3760Callout 0: last capture = 1
3761 0: <unset>
3762 1: 456
3763--->123456789
3764 ^ ^ )
3765 0: 123456789
3766 1: 789
3767
3768/((xyz)(?C)p|(?C1)xyzabc)/I
3769Capturing subpattern count = 2
3770No options
3771First char = 'x'
3772No need char
3773 xyzabc\C+
3774Callout 0: last capture = 2
3775 0: <unset>
3776 1: <unset>
3777 2: xyz
3778--->xyzabc
3779 ^ ^ p
3780Callout 1: last capture = -1
3781 0: <unset>
3782--->xyzabc
3783 ^ x
3784 0: xyzabc
3785 1: xyzabc
3786
3787/(X)((xyz)(?C)p|(?C1)xyzabc)/I
3788Capturing subpattern count = 3
3789No options
3790First char = 'X'
3791Need char = 'x'
3792 Xxyzabc\C+
3793Callout 0: last capture = 3
3794 0: <unset>
3795 1: X
3796 2: <unset>
3797 3: xyz
3798--->Xxyzabc
3799 ^ ^ p
3800Callout 1: last capture = 1
3801 0: <unset>
3802 1: X
3803--->Xxyzabc
3804 ^^ x
3805 0: Xxyzabc
3806 1: X
3807 2: xyzabc
3808
3809/(?=(abc))(?C)abcdef/I
3810Capturing subpattern count = 1
3811No options
3812First char = 'a'
3813Need char = 'f'
3814 abcdef\C+
3815Callout 0: last capture = 1
3816 0: <unset>
3817 1: abc
3818--->abcdef
3819 ^ a
3820 0: abcdef
3821 1: abc
3822
3823/(?!(abc)(?C1)d)(?C2)abcxyz/I
3824Capturing subpattern count = 1
3825No options
3826First char = 'a'
3827Need char = 'z'
3828 abcxyz\C+
3829Callout 1: last capture = 1
3830 0: <unset>
3831 1: abc
3832--->abcxyz
3833 ^ ^ d
3834Callout 2: last capture = -1
3835 0: <unset>
3836--->abcxyz
3837 ^ a
3838 0: abcxyz
3839
3840/(?<=(abc)(?C))xyz/I
3841Capturing subpattern count = 1
3842No options
3843First char = 'x'
3844Need char = 'z'
3845 abcxyz\C+
3846Callout 0: last capture = 1
3847 0: <unset>
3848 1: abc
3849--->abcxyz
3850 ^ )
3851 0: xyz
3852 1: abc
3853
3854/a(b+)(c*)(?C1)/I
3855Capturing subpattern count = 2
3856No options
3857First char = 'a'
3858Need char = 'b'
3859 abbbbbccc\C*1
3860--->abbbbbccc
3861 1 ^ ^
3862Callout data = 1
3863 1 ^ ^
3864Callout data = 1
3865 1 ^ ^
3866Callout data = 1
3867 1 ^ ^
3868Callout data = 1
3869 1 ^ ^
3870Callout data = 1
3871 1 ^ ^
3872Callout data = 1
3873 1 ^ ^
3874Callout data = 1
3875 1 ^ ^
3876Callout data = 1
3877No match
3878
3879/a(b+?)(c*?)(?C1)/I
3880Capturing subpattern count = 2
3881No options
3882First char = 'a'
3883Need char = 'b'
3884 abbbbbccc\C*1
3885--->abbbbbccc
3886 1 ^ ^
3887Callout data = 1
3888 1 ^ ^
3889Callout data = 1
3890 1 ^ ^
3891Callout data = 1
3892 1 ^ ^
3893Callout data = 1
3894 1 ^ ^
3895Callout data = 1
3896 1 ^ ^
3897Callout data = 1
3898 1 ^ ^
3899Callout data = 1
3900 1 ^ ^
3901Callout data = 1
3902No match
3903
3904/(?C)abc/I
3905Capturing subpattern count = 0
3906No options
3907First char = 'a'
3908Need char = 'c'
3909
3910/(?C)^abc/I
3911Capturing subpattern count = 0
3912Options: anchored
3913No first char
3914No need char
3915
3916/(?C)a|b/IS
3917Capturing subpattern count = 0
3918No options
3919No first char
3920No need char
3921Subject length lower bound = 1
3922Starting byte set: a b
3923
3924/(?R)/I
3925Failed: recursive call could loop indefinitely at offset 3
3926
3927/(a|(?R))/I
3928Failed: recursive call could loop indefinitely at offset 6
3929
3930/(ab|(bc|(de|(?R))))/I
3931Failed: recursive call could loop indefinitely at offset 15
3932
3933/x(ab|(bc|(de|(?R))))/I
3934Capturing subpattern count = 3
3935No options
3936First char = 'x'
3937No need char
3938 xab
3939 0: xab
3940 1: ab
3941 xbc
3942 0: xbc
3943 1: bc
3944 2: bc
3945 xde
3946 0: xde
3947 1: de
3948 2: de
3949 3: de
3950 xxab
3951 0: xxab
3952 1: xab
3953 2: xab
3954 3: xab
3955 xxxab
3956 0: xxxab
3957 1: xxab
3958 2: xxab
3959 3: xxab
3960 *** Failers
3961No match
3962 xyab
3963No match
3964
3965/(ab|(bc|(de|(?1))))/I
3966Failed: recursive call could loop indefinitely at offset 15
3967
3968/x(ab|(bc|(de|(?1)x)x)x)/I
3969Failed: recursive call could loop indefinitely at offset 16
3970
3971/^([^()]|\((?1)*\))*$/I
3972Capturing subpattern count = 1
3973Options: anchored
3974No first char
3975No need char
3976 abc
3977 0: abc
3978 1: c
3979 a(b)c
3980 0: a(b)c
3981 1: c
3982 a(b(c))d
3983 0: a(b(c))d
3984 1: d
3985 *** Failers)
3986No match
3987 a(b(c)d
3988No match
3989
3990/^>abc>([^()]|\((?1)*\))*<xyz<$/I
3991Capturing subpattern count = 1
3992Options: anchored
3993No first char
3994Need char = '<'
3995 >abc>123<xyz<
3996 0: >abc>123<xyz<
3997 1: 3
3998 >abc>1(2)3<xyz<
3999 0: >abc>1(2)3<xyz<
4000 1: 3
4001 >abc>(1(2)3)<xyz<
4002 0: >abc>(1(2)3)<xyz<
4003 1: (1(2)3)
4004
4005/(a(?1)b)/DZ
4006------------------------------------------------------------------
4007 Bra
4008 CBra 1
4009 a
4010 Recurse
4011 b
4012 Ket
4013 Ket
4014 End
4015------------------------------------------------------------------
4016Capturing subpattern count = 1
4017No options
4018First char = 'a'
4019Need char = 'b'
4020
4021/(a(?1)+b)/DZ
4022------------------------------------------------------------------
4023 Bra
4024 CBra 1
4025 a
4026 Once
4027 Recurse
4028 KetRmax
4029 b
4030 Ket
4031 Ket
4032 End
4033------------------------------------------------------------------
4034Capturing subpattern count = 1
4035No options
4036First char = 'a'
4037Need char = 'b'
4038
4039/^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4040Capturing subpattern count = 2
4041Options: anchored
4042No first char
4043No need char
4044 12
4045 0: 12
4046 1: 12
4047 (((2+2)*-3)-7)
4048 0: (((2+2)*-3)-7)
4049 1: (((2+2)*-3)-7)
4050 2: -
4051 -12
4052 0: -12
4053 1: -12
4054 *** Failers
4055No match
4056 ((2+2)*-3)-7)
4057No match
4058
4059/^(x(y|(?1){2})z)/I
4060Capturing subpattern count = 2
4061Options: anchored
4062No first char
4063No need char
4064 xyz
4065 0: xyz
4066 1: xyz
4067 2: y
4068 xxyzxyzz
4069 0: xxyzxyzz
4070 1: xxyzxyzz
4071 2: xyzxyz
4072 *** Failers
4073No match
4074 xxyzz
4075No match
4076 xxyzxyzxyzz
4077No match
4078
4079/((< (?: (?(R) \d++ | [^<>]*+) | (?2)) * >))/Ix
4080Capturing subpattern count = 2
4081Options: extended
4082First char = '<'
4083Need char = '>'
4084 <>
4085 0: <>
4086 1: <>
4087 2: <>
4088 <abcd>
4089 0: <abcd>
4090 1: <abcd>
4091 2: <abcd>
4092 <abc <123> hij>
4093 0: <abc <123> hij>
4094 1: <abc <123> hij>
4095 2: <abc <123> hij>
4096 <abc <def> hij>
4097 0: <def>
4098 1: <def>
4099 2: <def>
4100 <abc<>def>
4101 0: <abc<>def>
4102 1: <abc<>def>
4103 2: <abc<>def>
4104 <abc<>
4105 0: <>
4106 1: <>
4107 2: <>
4108 *** Failers
4109No match
4110 <abc
4111No match
4112
4113/(?1)/I
4114Failed: reference to non-existent subpattern at offset 3
4115
4116/((?2)(abc)/I
4117Failed: missing ) at offset 10
4118
4119/^(abc)def(?1)/I
4120Capturing subpattern count = 1
4121Options: anchored
4122No first char
4123No need char
4124 abcdefabc
4125 0: abcdefabc
4126 1: abc
4127
4128/^(a|b|c)=(?1)+/I
4129Capturing subpattern count = 1
4130Options: anchored
4131No first char
4132No need char
4133 a=a
4134 0: a=a
4135 1: a
4136 a=b
4137 0: a=b
4138 1: a
4139 a=bc
4140 0: a=bc
4141 1: a
4142
4143/^(a|b|c)=((?1))+/I
4144Capturing subpattern count = 2
4145Options: anchored
4146No first char
4147No need char
4148 a=a
4149 0: a=a
4150 1: a
4151 2: a
4152 a=b
4153 0: a=b
4154 1: a
4155 2: b
4156 a=bc
4157 0: a=bc
4158 1: a
4159 2: c
4160
4161/a(?P<name1>b|c)d(?P<longername2>e)/DZ
4162------------------------------------------------------------------
4163 Bra
4164 a
4165 CBra 1
4166 b
4167 Alt
4168 c
4169 Ket
4170 d
4171 CBra 2
4172 e
4173 Ket
4174 Ket
4175 End
4176------------------------------------------------------------------
4177Capturing subpattern count = 2
4178Named capturing subpatterns:
4179 longername2 2
4180 name1 1
4181No options
4182First char = 'a'
4183Need char = 'e'
4184 abde
4185 0: abde
4186 1: b
4187 2: e
4188 acde
4189 0: acde
4190 1: c
4191 2: e
4192
4193/(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4194------------------------------------------------------------------
4195 Bra
4196 Bra
4197 a
4198 CBra 1
4199 c
4200 CBra 2
4201 d
4202 Ket
4203 Ket
4204 Ket
4205 CBra 3
4206 a
4207 Ket
4208 Ket
4209 End
4210------------------------------------------------------------------
4211Capturing subpattern count = 3
4212Named capturing subpatterns:
4213 a 3
4214 c 1
4215 d 2
4216No options
4217First char = 'a'
4218Need char = 'a'
4219
4220/(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4221------------------------------------------------------------------
4222 Bra
4223 CBra 1
4224 a
4225 Ket
4226 Any
4227 Any
4228 Any
4229 \1
4230 bbb
4231 Recurse
4232 d
4233 Ket
4234 End
4235------------------------------------------------------------------
4236Capturing subpattern count = 1
4237Max back reference = 1
4238Named capturing subpatterns:
4239 a 1
4240No options
4241First char = 'a'
4242Need char = 'd'
4243
4244/^\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
4245Capturing subpattern count = 4
4246Max back reference = 4
4247Named capturing subpatterns:
4248 four 4
4249 one 1
4250 three 3
4251 two 2
4252Options: anchored caseless
4253No first char
4254No need char
4255 1221
4256 0: 1221
4257 1: 1221
4258 2: 1
4259 Satan, oscillate my metallic sonatas!
4260 0: Satan, oscillate my metallic sonatas!
4261 1: <unset>
4262 2: <unset>
4263 3: Satan, oscillate my metallic sonatas
4264 4: S
4265 A man, a plan, a canal: Panama!
4266 0: A man, a plan, a canal: Panama!
4267 1: <unset>
4268 2: <unset>
4269 3: A man, a plan, a canal: Panama
4270 4: A
4271 Able was I ere I saw Elba.
4272 0: Able was I ere I saw Elba.
4273 1: <unset>
4274 2: <unset>
4275 3: Able was I ere I saw Elba
4276 4: A
4277 *** Failers
4278No match
4279 The quick brown fox
4280No match
4281
4282/((?(R)a|b))\1(?1)?/I
4283Capturing subpattern count = 1
4284Max back reference = 1
4285No options
4286No first char
4287No need char
4288 bb
4289 0: bb
4290 1: b
4291 bbaa
4292 0: bba
4293 1: b
4294
4295/(.*)a/Is
4296Capturing subpattern count = 1
4297Options: anchored dotall
4298No first char
4299Need char = 'a'
4300
4301/(.*)a\1/Is
4302Capturing subpattern count = 1
4303Max back reference = 1
4304Options: dotall
4305No first char
4306Need char = 'a'
4307
4308/(.*)a(b)\2/Is
4309Capturing subpattern count = 2
4310Max back reference = 2
4311Options: anchored dotall
4312No first char
4313Need char = 'b'
4314
4315/((.*)a|(.*)b)z/Is
4316Capturing subpattern count = 3
4317Options: anchored dotall
4318No first char
4319Need char = 'z'
4320
4321/((.*)a|(.*)b)z\1/Is
4322Capturing subpattern count = 3
4323Max back reference = 1
4324Options: dotall
4325No first char
4326Need char = 'z'
4327
4328/((.*)a|(.*)b)z\2/Is
4329Capturing subpattern count = 3
4330Max back reference = 2
4331Options: dotall
4332No first char
4333Need char = 'z'
4334
4335/((.*)a|(.*)b)z\3/Is
4336Capturing subpattern count = 3
4337Max back reference = 3
4338Options: dotall
4339No first char
4340Need char = 'z'
4341
4342/((.*)a|^(.*)b)z\3/Is
4343Capturing subpattern count = 3
4344Max back reference = 3
4345Options: anchored dotall
4346No first char
4347Need char = 'z'
4348
4349/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4350Capturing subpattern count = 31
4351Options: anchored dotall
4352No first char
4353No need char
4354
4355/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4356Capturing subpattern count = 31
4357Max back reference = 31
4358Options: dotall
4359No first char
4360No need char
4361
4362/(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4363Capturing subpattern count = 32
4364Max back reference = 32
4365Options: dotall
4366No first char
4367No need char
4368
4369/(a)(bc)/INDZ
4370------------------------------------------------------------------
4371 Bra
4372 Bra
4373 a
4374 Ket
4375 Bra
4376 bc
4377 Ket
4378 Ket
4379 End
4380------------------------------------------------------------------
4381Capturing subpattern count = 0
4382Options: no_auto_capture
4383First char = 'a'
4384Need char = 'c'
4385 abc
4386 0: abc
4387
4388/(?P<one>a)(bc)/INDZ
4389------------------------------------------------------------------
4390 Bra
4391 CBra 1
4392 a
4393 Ket
4394 Bra
4395 bc
4396 Ket
4397 Ket
4398 End
4399------------------------------------------------------------------
4400Capturing subpattern count = 1
4401Named capturing subpatterns:
4402 one 1
4403Options: no_auto_capture
4404First char = 'a'
4405Need char = 'c'
4406 abc
4407 0: abc
4408 1: a
4409
4410/(a)(?P<named>bc)/INDZ
4411------------------------------------------------------------------
4412 Bra
4413 Bra
4414 a
4415 Ket
4416 CBra 1
4417 bc
4418 Ket
4419 Ket
4420 End
4421------------------------------------------------------------------
4422Capturing subpattern count = 1
4423Named capturing subpatterns:
4424 named 1
4425Options: no_auto_capture
4426First char = 'a'
4427Need char = 'c'
4428
4429/(a+)*zz/I
4430Capturing subpattern count = 1
4431No options
4432No first char
4433Need char = 'z'
4434 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4435Minimum match() limit = 8
4436Minimum match() recursion limit = 6
4437 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4438 1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4439 aaaaaaaaaaaaaz\M
4440Minimum match() limit = 32768
4441Minimum match() recursion limit = 42
4442No match
4443
4444/(aaa(?C1)bbb|ab)/I
4445Capturing subpattern count = 1
4446No options
4447First char = 'a'
4448Need char = 'b'
4449 aaabbb
4450--->aaabbb
4451 1 ^ ^ b
4452 0: aaabbb
4453 1: aaabbb
4454 aaabbb\C*0
4455--->aaabbb
4456 1 ^ ^ b
4457 0: aaabbb
4458 1: aaabbb
4459 aaabbb\C*1
4460--->aaabbb
4461 1 ^ ^ b
4462Callout data = 1
4463 0: ab
4464 1: ab
4465 aaabbb\C*-1
4466--->aaabbb
4467 1 ^ ^ b
4468Callout data = -1
4469No match
4470
4471/ab(?P<one>cd)ef(?P<two>gh)/I
4472Capturing subpattern count = 2
4473Named capturing subpatterns:
4474 one 1
4475 two 2
4476No options
4477First char = 'a'
4478Need char = 'h'
4479 abcdefgh
4480 0: abcdefgh
4481 1: cd
4482 2: gh
4483 abcdefgh\C1\Gtwo
4484 0: abcdefgh
4485 1: cd
4486 2: gh
4487 1C cd (2)
4488 G gh (2) two
4489 abcdefgh\Cone\Ctwo
4490 0: abcdefgh
4491 1: cd
4492 2: gh
4493 C cd (2) one
4494 C gh (2) two
4495 abcdefgh\Cthree
4496no parentheses with name "three"
4497 0: abcdefgh
4498 1: cd
4499 2: gh
4500copy substring three failed -7
4501
4502/(?P<Tes>)(?P<Test>)/DZ
4503------------------------------------------------------------------
4504 Bra
4505 CBra 1
4506 Ket
4507 CBra 2
4508 Ket
4509 Ket
4510 End
4511------------------------------------------------------------------
4512Capturing subpattern count = 2
4513Named capturing subpatterns:
4514 Tes 1
4515 Test 2
4516No options
4517No first char
4518No need char
4519
4520/(?P<Test>)(?P<Tes>)/DZ
4521------------------------------------------------------------------
4522 Bra
4523 CBra 1
4524 Ket
4525 CBra 2
4526 Ket
4527 Ket
4528 End
4529------------------------------------------------------------------
4530Capturing subpattern count = 2
4531Named capturing subpatterns:
4532 Tes 2
4533 Test 1
4534No options
4535No first char
4536No need char
4537
4538/(?P<Z>zz)(?P<A>aa)/I
4539Capturing subpattern count = 2
4540Named capturing subpatterns:
4541 A 2
4542 Z 1
4543No options
4544First char = 'z'
4545Need char = 'a'
4546 zzaa\CZ
4547 0: zzaa
4548 1: zz
4549 2: aa
4550 C zz (2) Z
4551 zzaa\CA
4552 0: zzaa
4553 1: zz
4554 2: aa
4555 C aa (2) A
4556
4557/(?P<x>eks)(?P<x>eccs)/I
4558Failed: two named subpatterns have the same name at offset 15
4559
4560/(?P<abc>abc(?P<def>def)(?P<abc>xyz))/I
4561Failed: two named subpatterns have the same name at offset 30
4562
4563"\[((?P<elem>\d+)(,(?P>elem))*)\]"I
4564Capturing subpattern count = 3
4565Named capturing subpatterns:
4566 elem 2
4567No options
4568First char = '['
4569Need char = ']'
4570 [10,20,30,5,5,4,4,2,43,23,4234]
4571 0: [10,20,30,5,5,4,4,2,43,23,4234]
4572 1: 10,20,30,5,5,4,4,2,43,23,4234
4573 2: 10
4574 3: ,4234
4575 *** Failers
4576No match
4577 []
4578No match
4579
4580"\[((?P<elem>\d+)(,(?P>elem))*)?\]"I
4581Capturing subpattern count = 3
4582Named capturing subpatterns:
4583 elem 2
4584No options
4585First char = '['
4586Need char = ']'
4587 [10,20,30,5,5,4,4,2,43,23,4234]
4588 0: [10,20,30,5,5,4,4,2,43,23,4234]
4589 1: 10,20,30,5,5,4,4,2,43,23,4234
4590 2: 10
4591 3: ,4234
4592 []
4593 0: []
4594
4595/(a(b(?2)c))?/DZ
4596------------------------------------------------------------------
4597 Bra
4598 Brazero
4599 CBra 1
4600 a
4601 CBra 2
4602 b
4603 Recurse
4604 c
4605 Ket
4606 Ket
4607 Ket
4608 End
4609------------------------------------------------------------------
4610Capturing subpattern count = 2
4611No options
4612No first char
4613No need char
4614
4615/(a(b(?2)c))*/DZ
4616------------------------------------------------------------------
4617 Bra
4618 Brazero
4619 CBra 1
4620 a
4621 CBra 2
4622 b
4623 Recurse
4624 c
4625 Ket
4626 KetRmax
4627 Ket
4628 End
4629------------------------------------------------------------------
4630Capturing subpattern count = 2
4631No options
4632No first char
4633No need char
4634
4635/(a(b(?2)c)){0,2}/DZ
4636------------------------------------------------------------------
4637 Bra
4638 Brazero
4639 Bra
4640 CBra 1
4641 a
4642 CBra 2
4643 b
4644 Recurse
4645 c
4646 Ket
4647 Ket
4648 Brazero
4649 CBra 1
4650 a
4651 CBra 2
4652 b
4653 Recurse
4654 c
4655 Ket
4656 Ket
4657 Ket
4658 Ket
4659 End
4660------------------------------------------------------------------
4661Capturing subpattern count = 2
4662No options
4663No first char
4664No need char
4665
4666/[ab]{1}+/DZ
4667------------------------------------------------------------------
4668 Bra
4669 Once
4670 [ab]{1,1}
4671 Ket
4672 Ket
4673 End
4674------------------------------------------------------------------
4675Capturing subpattern count = 0
4676No options
4677No first char
4678No need char
4679
4680/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/Ii
4681Capturing subpattern count = 3
4682Options: caseless
4683No first char
4684Need char = 'g' (caseless)
4685 Baby Bjorn Active Carrier - With free SHIPPING!!
4686 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4687 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4688
4689/((w\/|-|with)*(free|immediate)*.*?shipping\s*[!.-]*)/IiS
4690Capturing subpattern count = 3
4691Options: caseless
4692No first char
4693Need char = 'g' (caseless)
4694Subject length lower bound = 8
4695No set of starting bytes
4696 Baby Bjorn Active Carrier - With free SHIPPING!!
4697 0: Baby Bjorn Active Carrier - With free SHIPPING!!
4698 1: Baby Bjorn Active Carrier - With free SHIPPING!!
4699
4700/a*.*b/ISDZ
4701------------------------------------------------------------------
4702 Bra
4703 a*
4704 Any*
4705 b
4706 Ket
4707 End
4708------------------------------------------------------------------
4709Capturing subpattern count = 0
4710No options
4711No first char
4712Need char = 'b'
4713Subject length lower bound = 1
4714No set of starting bytes
4715
4716/(a|b)*.?c/ISDZ
4717------------------------------------------------------------------
4718 Bra
4719 Brazero
4720 CBra 1
4721 a
4722 Alt
4723 b
4724 KetRmax
4725 Any?
4726 c
4727 Ket
4728 End
4729------------------------------------------------------------------
4730Capturing subpattern count = 1
4731No options
4732No first char
4733Need char = 'c'
4734Subject length lower bound = 1
4735No set of starting bytes
4736
4737/abc(?C255)de(?C)f/DZ
4738------------------------------------------------------------------
4739 Bra
4740 abc
4741 Callout 255 10 1
4742 de
4743 Callout 0 16 1
4744 f
4745 Ket
4746 End
4747------------------------------------------------------------------
4748Capturing subpattern count = 0
4749No options
4750First char = 'a'
4751Need char = 'f'
4752
4753/abcde/ICDZ
4754------------------------------------------------------------------
4755 Bra
4756 Callout 255 0 1
4757 a
4758 Callout 255 1 1
4759 b
4760 Callout 255 2 1
4761 c
4762 Callout 255 3 1
4763 d
4764 Callout 255 4 1
4765 e
4766 Callout 255 5 0
4767 Ket
4768 End
4769------------------------------------------------------------------
4770Capturing subpattern count = 0
4771Options:
4772First char = 'a'
4773Need char = 'e'
4774 abcde
4775--->abcde
4776 +0 ^ a
4777 +1 ^^ b
4778 +2 ^ ^ c
4779 +3 ^ ^ d
4780 +4 ^ ^ e
4781 +5 ^ ^
4782 0: abcde
4783 abcdfe
4784--->abcdfe
4785 +0 ^ a
4786 +1 ^^ b
4787 +2 ^ ^ c
4788 +3 ^ ^ d
4789 +4 ^ ^ e
4790No match
4791
4792/a*b/ICDZS
4793------------------------------------------------------------------
4794 Bra
4795 Callout 255 0 2
4796 a*+
4797 Callout 255 2 1
4798 b
4799 Callout 255 3 0
4800 Ket
4801 End
4802------------------------------------------------------------------
4803Capturing subpattern count = 0
4804Options:
4805No first char
4806Need char = 'b'
4807Subject length lower bound = 1
4808Starting byte set: a 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 +3 ^^
4834 0: b
4835
4836/a*b/ICDZSS
4837------------------------------------------------------------------
4838 Bra
4839 Callout 255 0 2
4840 a*+
4841 Callout 255 2 1
4842 b
4843 Callout 255 3 0
4844 Ket
4845 End
4846------------------------------------------------------------------
4847Capturing subpattern count = 0
4848Options:
4849No first char
4850Need char = 'b'
4851 ab
4852--->ab
4853 +0 ^ a*
4854 +2 ^^ b
4855 +3 ^ ^
4856 0: ab
4857 aaaab
4858--->aaaab
4859 +0 ^ a*
4860 +2 ^ ^ b
4861 +3 ^ ^
4862 0: aaaab
4863 aaaacb
4864--->aaaacb
4865 +0 ^ a*
4866 +2 ^ ^ b
4867 +0 ^ a*
4868 +2 ^ ^ b
4869 +0 ^ a*
4870 +2 ^ ^ b
4871 +0 ^ a*
4872 +2 ^^ b
4873 +0 ^ a*
4874 +2 ^ b
4875 +0 ^ a*
4876 +2 ^ b
4877 +3 ^^
4878 0: b
4879
4880/a+b/ICDZ
4881------------------------------------------------------------------
4882 Bra
4883 Callout 255 0 2
4884 a++
4885 Callout 255 2 1
4886 b
4887 Callout 255 3 0
4888 Ket
4889 End
4890------------------------------------------------------------------
4891Capturing subpattern count = 0
4892Options:
4893First char = 'a'
4894Need char = 'b'
4895 ab
4896--->ab
4897 +0 ^ a+
4898 +2 ^^ b
4899 +3 ^ ^
4900 0: ab
4901 aaaab
4902--->aaaab
4903 +0 ^ a+
4904 +2 ^ ^ b
4905 +3 ^ ^
4906 0: aaaab
4907 aaaacb
4908--->aaaacb
4909 +0 ^ a+
4910 +2 ^ ^ b
4911 +0 ^ a+
4912 +2 ^ ^ b
4913 +0 ^ a+
4914 +2 ^ ^ b
4915 +0 ^ a+
4916 +2 ^^ b
4917No match
4918
4919/(abc|def)x/ICDZS
4920------------------------------------------------------------------
4921 Bra
4922 Callout 255 0 9
4923 CBra 1
4924 Callout 255 1 1
4925 a
4926 Callout 255 2 1
4927 b
4928 Callout 255 3 1
4929 c
4930 Callout 255 4 0
4931 Alt
4932 Callout 255 5 1
4933 d
4934 Callout 255 6 1
4935 e
4936 Callout 255 7 1
4937 f
4938 Callout 255 8 0
4939 Ket
4940 Callout 255 9 1
4941 x
4942 Callout 255 10 0
4943 Ket
4944 End
4945------------------------------------------------------------------
4946Capturing subpattern count = 1
4947Options:
4948No first char
4949Need char = 'x'
4950Subject length lower bound = 4
4951Starting byte set: a d
4952 abcx
4953--->abcx
4954 +0 ^ (abc|def)
4955 +1 ^ a
4956 +2 ^^ b
4957 +3 ^ ^ c
4958 +4 ^ ^ |
4959 +9 ^ ^ x
4960+10 ^ ^
4961 0: abcx
4962 1: abc
4963 defx
4964--->defx
4965 +0 ^ (abc|def)
4966 +1 ^ a
4967 +5 ^ d
4968 +6 ^^ e
4969 +7 ^ ^ f
4970 +8 ^ ^ )
4971 +9 ^ ^ x
4972+10 ^ ^
4973 0: defx
4974 1: def
4975 ** Failers
4976No match
4977 abcdefzx
4978--->abcdefzx
4979 +0 ^ (abc|def)
4980 +1 ^ a
4981 +2 ^^ b
4982 +3 ^ ^ c
4983 +4 ^ ^ |
4984 +9 ^ ^ x
4985 +5 ^ d
4986 +0 ^ (abc|def)
4987 +1 ^ a
4988 +5 ^ d
4989 +6 ^^ e
4990 +7 ^ ^ f
4991 +8 ^ ^ )
4992 +9 ^ ^ x
4993No match
4994
4995/(abc|def)x/ICDZSS
4996------------------------------------------------------------------
4997 Bra
4998 Callout 255 0 9
4999 CBra 1
5000 Callout 255 1 1
5001 a
5002 Callout 255 2 1
5003 b
5004 Callout 255 3 1
5005 c
5006 Callout 255 4 0
5007 Alt
5008 Callout 255 5 1
5009 d
5010 Callout 255 6 1
5011 e
5012 Callout 255 7 1
5013 f
5014 Callout 255 8 0
5015 Ket
5016 Callout 255 9 1
5017 x
5018 Callout 255 10 0
5019 Ket
5020 End
5021------------------------------------------------------------------
5022Capturing subpattern count = 1
5023Options:
5024No first char
5025Need char = 'x'
5026 abcx
5027--->abcx
5028 +0 ^ (abc|def)
5029 +1 ^ a
5030 +2 ^^ b
5031 +3 ^ ^ c
5032 +4 ^ ^ |
5033 +9 ^ ^ x
5034+10 ^ ^
5035 0: abcx
5036 1: abc
5037 defx
5038--->defx
5039 +0 ^ (abc|def)
5040 +1 ^ a
5041 +5 ^ d
5042 +6 ^^ e
5043 +7 ^ ^ f
5044 +8 ^ ^ )
5045 +9 ^ ^ x
5046+10 ^ ^
5047 0: defx
5048 1: def
5049 ** Failers
5050No match
5051 abcdefzx
5052--->abcdefzx
5053 +0 ^ (abc|def)
5054 +1 ^ a
5055 +2 ^^ b
5056 +3 ^ ^ c
5057 +4 ^ ^ |
5058 +9 ^ ^ x
5059 +5 ^ d
5060 +0 ^ (abc|def)
5061 +1 ^ a
5062 +5 ^ d
5063 +0 ^ (abc|def)
5064 +1 ^ a
5065 +5 ^ d
5066 +0 ^ (abc|def)
5067 +1 ^ a
5068 +5 ^ d
5069 +6 ^^ e
5070 +7 ^ ^ f
5071 +8 ^ ^ )
5072 +9 ^ ^ x
5073 +0 ^ (abc|def)
5074 +1 ^ a
5075 +5 ^ d
5076 +0 ^ (abc|def)
5077 +1 ^ a
5078 +5 ^ d
5079 +0 ^ (abc|def)
5080 +1 ^ a
5081 +5 ^ d
5082 +0 ^ (abc|def)
5083 +1 ^ a
5084 +5 ^ d
5085No match
5086
5087/(ab|cd){3,4}/IC
5088Capturing subpattern count = 1
5089Options:
5090No first char
5091No need char
5092 ababab
5093--->ababab
5094 +0 ^ (ab|cd){3,4}
5095 +1 ^ a
5096 +2 ^^ b
5097 +3 ^ ^ |
5098 +1 ^ ^ a
5099 +2 ^ ^ b
5100 +3 ^ ^ |
5101 +1 ^ ^ a
5102 +2 ^ ^ b
5103 +3 ^ ^ |
5104 +1 ^ ^ a
5105 +4 ^ ^ c
5106+12 ^ ^
5107 0: ababab
5108 1: ab
5109 abcdabcd
5110--->abcdabcd
5111 +0 ^ (ab|cd){3,4}
5112 +1 ^ a
5113 +2 ^^ b
5114 +3 ^ ^ |
5115 +1 ^ ^ a
5116 +4 ^ ^ c
5117 +5 ^ ^ d
5118 +6 ^ ^ )
5119 +1 ^ ^ a
5120 +2 ^ ^ b
5121 +3 ^ ^ |
5122 +1 ^ ^ a
5123 +4 ^ ^ c
5124 +5 ^ ^ d
5125 +6 ^ ^ )
5126+12 ^ ^
5127 0: abcdabcd
5128 1: cd
5129 abcdcdcdcdcd
5130--->abcdcdcdcdcd
5131 +0 ^ (ab|cd){3,4}
5132 +1 ^ a
5133 +2 ^^ b
5134 +3 ^ ^ |
5135 +1 ^ ^ a
5136 +4 ^ ^ c
5137 +5 ^ ^ d
5138 +6 ^ ^ )
5139 +1 ^ ^ a
5140 +4 ^ ^ c
5141 +5 ^ ^ d
5142 +6 ^ ^ )
5143 +1 ^ ^ a
5144 +4 ^ ^ c
5145 +5 ^ ^ d
5146 +6 ^ ^ )
5147+12 ^ ^
5148 0: abcdcdcd
5149 1: cd
5150
5151/([ab]{,4}c|xy)/ICDZS
5152------------------------------------------------------------------
5153 Bra
5154 Callout 255 0 14
5155 CBra 1
5156 Callout 255 1 4
5157 [ab]
5158 Callout 255 5 1
5159 {
5160 Callout 255 6 1
5161 ,
5162 Callout 255 7 1
5163 4
5164 Callout 255 8 1
5165 }
5166 Callout 255 9 1
5167 c
5168 Callout 255 10 0
5169 Alt
5170 Callout 255 11 1
5171 x
5172 Callout 255 12 1
5173 y
5174 Callout 255 13 0
5175 Ket
5176 Callout 255 14 0
5177 Ket
5178 End
5179------------------------------------------------------------------
5180Capturing subpattern count = 1
5181Options:
5182No first char
5183No need char
5184Subject length lower bound = 2
5185Starting byte set: a b x
5186 Note: that { does NOT introduce a quantifier
5187--->Note: that { does NOT introduce a quantifier
5188 +0 ^ ([ab]{,4}c|xy)
5189 +1 ^ [ab]
5190 +5 ^^ {
5191+11 ^ x
5192 +0 ^ ([ab]{,4}c|xy)
5193 +1 ^ [ab]
5194 +5 ^^ {
5195+11 ^ x
5196 +0 ^ ([ab]{,4}c|xy)
5197 +1 ^ [ab]
5198 +5 ^^ {
5199+11 ^ x
5200No match
5201
5202/([ab]{,4}c|xy)/ICDZSS
5203------------------------------------------------------------------
5204 Bra
5205 Callout 255 0 14
5206 CBra 1
5207 Callout 255 1 4
5208 [ab]
5209 Callout 255 5 1
5210 {
5211 Callout 255 6 1
5212 ,
5213 Callout 255 7 1
5214 4
5215 Callout 255 8 1
5216 }
5217 Callout 255 9 1
5218 c
5219 Callout 255 10 0
5220 Alt
5221 Callout 255 11 1
5222 x
5223 Callout 255 12 1
5224 y
5225 Callout 255 13 0
5226 Ket
5227 Callout 255 14 0
5228 Ket
5229 End
5230------------------------------------------------------------------
5231Capturing subpattern count = 1
5232Options:
5233No first char
5234No need char
5235 Note: that { does NOT introduce a quantifier
5236--->Note: that { does NOT introduce a quantifier
5237 +0 ^ ([ab]{,4}c|xy)
5238 +1 ^ [ab]
5239+11 ^ x
5240 +0 ^ ([ab]{,4}c|xy)
5241 +1 ^ [ab]
5242+11 ^ x
5243 +0 ^ ([ab]{,4}c|xy)
5244 +1 ^ [ab]
5245+11 ^ x
5246 +0 ^ ([ab]{,4}c|xy)
5247 +1 ^ [ab]
5248+11 ^ x
5249 +0 ^ ([ab]{,4}c|xy)
5250 +1 ^ [ab]
5251+11 ^ x
5252 +0 ^ ([ab]{,4}c|xy)
5253 +1 ^ [ab]
5254+11 ^ x
5255 +0 ^ ([ab]{,4}c|xy)
5256 +1 ^ [ab]
5257+11 ^ x
5258 +0 ^ ([ab]{,4}c|xy)
5259 +1 ^ [ab]
5260+11 ^ x
5261 +0 ^ ([ab]{,4}c|xy)
5262 +1 ^ [ab]
5263 +5 ^^ {
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+11 ^ x
5295 +0 ^ ([ab]{,4}c|xy)
5296 +1 ^ [ab]
5297+11 ^ x
5298 +0 ^ ([ab]{,4}c|xy)
5299 +1 ^ [ab]
5300+11 ^ x
5301 +0 ^ ([ab]{,4}c|xy)
5302 +1 ^ [ab]
5303+11 ^ x
5304 +0 ^ ([ab]{,4}c|xy)
5305 +1 ^ [ab]
5306+11 ^ x
5307 +0 ^ ([ab]{,4}c|xy)
5308 +1 ^ [ab]
5309+11 ^ x
5310 +0 ^ ([ab]{,4}c|xy)
5311 +1 ^ [ab]
5312+11 ^ x
5313 +0 ^ ([ab]{,4}c|xy)
5314 +1 ^ [ab]
5315+11 ^ x
5316 +0 ^ ([ab]{,4}c|xy)
5317 +1 ^ [ab]
5318+11 ^ x
5319 +0 ^ ([ab]{,4}c|xy)
5320 +1 ^ [ab]
5321+11 ^ x
5322 +0 ^ ([ab]{,4}c|xy)
5323 +1 ^ [ab]
5324+11 ^ x
5325 +0 ^ ([ab]{,4}c|xy)
5326 +1 ^ [ab]
5327+11 ^ x
5328 +0 ^ ([ab]{,4}c|xy)
5329 +1 ^ [ab]
5330+11 ^ x
5331 +0 ^ ([ab]{,4}c|xy)
5332 +1 ^ [ab]
5333+11 ^ x
5334 +0 ^ ([ab]{,4}c|xy)
5335 +1 ^ [ab]
5336 +5 ^^ {
5337+11 ^ x
5338 +0 ^ ([ab]{,4}c|xy)
5339 +1 ^ [ab]
5340+11 ^ x
5341 +0 ^ ([ab]{,4}c|xy)
5342 +1 ^ [ab]
5343+11 ^ x
5344 +0 ^ ([ab]{,4}c|xy)
5345 +1 ^ [ab]
5346+11 ^ x
5347 +0 ^ ([ab]{,4}c|xy)
5348 +1 ^ [ab]
5349 +5 ^^ {
5350+11 ^ x
5351 +0 ^ ([ab]{,4}c|xy)
5352 +1 ^ [ab]
5353+11 ^ x
5354 +0 ^ ([ab]{,4}c|xy)
5355 +1 ^ [ab]
5356+11 ^ x
5357 +0 ^ ([ab]{,4}c|xy)
5358 +1 ^ [ab]
5359+11 ^ x
5360 +0 ^ ([ab]{,4}c|xy)
5361 +1 ^ [ab]
5362+11 ^ x
5363 +0 ^ ([ab]{,4}c|xy)
5364 +1 ^ [ab]
5365+11 ^ x
5366 +0 ^ ([ab]{,4}c|xy)
5367 +1 ^ [ab]
5368+11 ^ x
5369 +0 ^ ([ab]{,4}c|xy)
5370 +1 ^ [ab]
5371+11 ^ x
5372 +0 ^ ([ab]{,4}c|xy)
5373 +1 ^ [ab]
5374+11 ^ x
5375No match
5376
5377/([ab]{1,4}c|xy){4,5}?123/ICDZ
5378------------------------------------------------------------------
5379 Bra
5380 Callout 255 0 21
5381 CBra 1
5382 Callout 255 1 9
5383 [ab]{1,4}
5384 Callout 255 10 1
5385 c
5386 Callout 255 11 0
5387 Alt
5388 Callout 255 12 1
5389 x
5390 Callout 255 13 1
5391 y
5392 Callout 255 14 0
5393 Ket
5394 CBra 1
5395 Callout 255 1 9
5396 [ab]{1,4}
5397 Callout 255 10 1
5398 c
5399 Callout 255 11 0
5400 Alt
5401 Callout 255 12 1
5402 x
5403 Callout 255 13 1
5404 y
5405 Callout 255 14 0
5406 Ket
5407 CBra 1
5408 Callout 255 1 9
5409 [ab]{1,4}
5410 Callout 255 10 1
5411 c
5412 Callout 255 11 0
5413 Alt
5414 Callout 255 12 1
5415 x
5416 Callout 255 13 1
5417 y
5418 Callout 255 14 0
5419 Ket
5420 CBra 1
5421 Callout 255 1 9
5422 [ab]{1,4}
5423 Callout 255 10 1
5424 c
5425 Callout 255 11 0
5426 Alt
5427 Callout 255 12 1
5428 x
5429 Callout 255 13 1
5430 y
5431 Callout 255 14 0
5432 Ket
5433 Braminzero
5434 CBra 1
5435 Callout 255 1 9
5436 [ab]{1,4}
5437 Callout 255 10 1
5438 c
5439 Callout 255 11 0
5440 Alt
5441 Callout 255 12 1
5442 x
5443 Callout 255 13 1
5444 y
5445 Callout 255 14 0
5446 Ket
5447 Callout 255 21 1
5448 1
5449 Callout 255 22 1
5450 2
5451 Callout 255 23 1
5452 3
5453 Callout 255 24 0
5454 Ket
5455 End
5456------------------------------------------------------------------
5457Capturing subpattern count = 1
5458Options:
5459No first char
5460Need char = '3'
5461 aacaacaacaacaac123
5462--->aacaacaacaacaac123
5463 +0 ^ ([ab]{1,4}c|xy){4,5}?
5464 +1 ^ [ab]{1,4}
5465+10 ^ ^ c
5466+11 ^ ^ |
5467 +1 ^ ^ [ab]{1,4}
5468+10 ^ ^ c
5469+11 ^ ^ |
5470 +1 ^ ^ [ab]{1,4}
5471+10 ^ ^ c
5472+11 ^ ^ |
5473 +1 ^ ^ [ab]{1,4}
5474+10 ^ ^ c
5475+11 ^ ^ |
5476+21 ^ ^ 1
5477 +1 ^ ^ [ab]{1,4}
5478+10 ^ ^ c
5479+11 ^ ^ |
5480+21 ^ ^ 1
5481+22 ^ ^ 2
5482+23 ^ ^ 3
5483+24 ^ ^
5484 0: aacaacaacaacaac123
5485 1: aac
5486
5487/\b.*/I
5488Capturing subpattern count = 0
5489No options
5490No first char
5491No need char
5492 ab cd\>1
5493 0: cd
5494
5495/\b.*/Is
5496Capturing subpattern count = 0
5497Options: dotall
5498No first char
5499No need char
5500 ab cd\>1
5501 0: cd
5502
5503/(?!.bcd).*/I
5504Capturing subpattern count = 0
5505No options
5506No first char
5507No need char
5508 Xbcd12345
5509 0: bcd12345
5510
5511/abcde/I
5512Capturing subpattern count = 0
5513No options
5514First char = 'a'
5515Need char = 'e'
5516 ab\P
5517Partial match: ab
5518 abc\P
5519Partial match: abc
5520 abcd\P
5521Partial match: abcd
5522 abcde\P
5523 0: abcde
5524 the quick brown abc\P
5525Partial match: abc
5526 ** Failers\P
5527No match
5528 the quick brown abxyz fox\P
5529No match
5530
5531"^(0?[1-9]|[12][0-9]|3[01])/(0?[1-9]|1[012])/(20)?\d\d$"I
5532Capturing subpattern count = 3
5533Options: anchored
5534No first char
5535Need char = '/'
5536 13/05/04\P
5537 0: 13/05/04
5538 1: 13
5539 2: 05
5540 13/5/2004\P
5541 0: 13/5/2004
5542 1: 13
5543 2: 5
5544 3: 20
5545 02/05/09\P
5546 0: 02/05/09
5547 1: 02
5548 2: 05
5549 1\P
5550Partial match: 1
5551 1/2\P
5552Partial match: 1/2
5553 1/2/0\P
5554Partial match: 1/2/0
5555 1/2/04\P
5556 0: 1/2/04
5557 1: 1
5558 2: 2
5559 0\P
5560Partial match: 0
5561 02/\P
5562Partial match: 02/
5563 02/0\P
5564Partial match: 02/0
5565 02/1\P
5566Partial match: 02/1
5567 ** Failers\P
5568No match
5569 \P
5570No match
5571 123\P
5572No match
5573 33/4/04\P
5574No match
5575 3/13/04\P
5576No match
5577 0/1/2003\P
5578No match
5579 0/\P
5580No match
5581 02/0/\P
5582No match
5583 02/13\P
5584No match
5585
5586/0{0,2}ABC/I
5587Capturing subpattern count = 0
5588No options
5589No first char
5590Need char = 'C'
5591
5592/\d{3,}ABC/I
5593Capturing subpattern count = 0
5594No options
5595No first char
5596Need char = 'C'
5597
5598/\d*ABC/I
5599Capturing subpattern count = 0
5600No options
5601No first char
5602Need char = 'C'
5603
5604/[abc]+DE/I
5605Capturing subpattern count = 0
5606No options
5607No first char
5608Need char = 'E'
5609
5610/[abc]?123/I
5611Capturing subpattern count = 0
5612No options
5613No first char
5614Need char = '3'
5615 123\P
5616 0: 123
5617 a\P
5618Partial match: a
5619 b\P
5620Partial match: b
5621 c\P
5622Partial match: c
5623 c12\P
5624Partial match: c12
5625 c123\P
5626 0: c123
5627
5628/^(?:\d){3,5}X/I
5629Capturing subpattern count = 0
5630Options: anchored
5631No first char
5632Need char = 'X'
5633 1\P
5634Partial match: 1
5635 123\P
5636Partial match: 123
5637 123X
5638 0: 123X
5639 1234\P
5640Partial match: 1234
5641 1234X
5642 0: 1234X
5643 12345\P
5644Partial match: 12345
5645 12345X
5646 0: 12345X
5647 *** Failers
5648No match
5649 1X
5650No match
5651 123456\P
5652No match
5653
5654/abc/IS>testsavedregex
5655Capturing subpattern count = 0
5656No options
5657First char = 'a'
5658Need char = 'c'
5659Subject length lower bound = 3
5660No set of starting bytes
5661Compiled pattern written to testsavedregex
5662Study data written to testsavedregex
5663<testsavedregex
5664Compiled pattern loaded from testsavedregex
5665Study data loaded from testsavedregex
5666 abc
5667 0: abc
5668 ** Failers
5669No match
5670 bca
5671No match
5672
5673/abc/ISS>testsavedregex
5674Capturing subpattern count = 0
5675No options
5676First char = 'a'
5677Need char = 'c'
5678Compiled pattern written to testsavedregex
5679<testsavedregex
5680Compiled pattern loaded from testsavedregex
5681No study data
5682 abc
5683 0: abc
5684 ** Failers
5685No match
5686 bca
5687No match
5688
5689/abc/IFS>testsavedregex
5690Capturing subpattern count = 0
5691No options
5692First char = 'a'
5693Need char = 'c'
5694Subject length lower bound = 3
5695No set of starting bytes
5696Compiled pattern written to testsavedregex
5697Study data written to testsavedregex
5698<testsavedregex
5699Compiled pattern (byte-inverted) loaded from testsavedregex
5700Study data loaded from testsavedregex
5701 abc
5702 0: abc
5703 ** Failers
5704No match
5705 bca
5706No match
5707
5708/abc/IFSS>testsavedregex
5709Capturing subpattern count = 0
5710No options
5711First char = 'a'
5712Need char = 'c'
5713Compiled pattern written to testsavedregex
5714<testsavedregex
5715Compiled pattern (byte-inverted) loaded from testsavedregex
5716No study data
5717 abc
5718 0: abc
5719 ** Failers
5720No match
5721 bca
5722No match
5723
5724/(a|b)/IS>testsavedregex
5725Capturing subpattern count = 1
5726No options
5727No first char
5728No need char
5729Subject length lower bound = 1
5730Starting byte set: a b
5731Compiled pattern written to testsavedregex
5732Study data written to testsavedregex
5733<testsavedregex
5734Compiled pattern loaded from testsavedregex
5735Study data loaded from testsavedregex
5736 abc
5737 0: a
5738 1: a
5739 ** Failers
5740 0: a
5741 1: a
5742 def
5743No match
5744
5745/(a|b)/ISS>testsavedregex
5746Capturing subpattern count = 1
5747No options
5748No first char
5749No need char
5750Compiled pattern written to testsavedregex
5751<testsavedregex
5752Compiled pattern loaded from testsavedregex
5753No study data
5754 abc
5755 0: a
5756 1: a
5757 ** Failers
5758 0: a
5759 1: a
5760 def
5761No match
5762
5763/(a|b)/ISF>testsavedregex
5764Capturing subpattern count = 1
5765No options
5766No first char
5767No need char
5768Subject length lower bound = 1
5769Starting byte set: a b
5770Compiled pattern written to testsavedregex
5771Study data written to testsavedregex
5772<testsavedregex
5773Compiled pattern (byte-inverted) loaded from testsavedregex
5774Study data loaded from testsavedregex
5775 abc
5776 0: a
5777 1: a
5778 ** Failers
5779 0: a
5780 1: a
5781 def
5782No match
5783
5784/(a|b)/ISSF>testsavedregex
5785Capturing subpattern count = 1
5786No options
5787No first char
5788No need char
5789Compiled pattern written to testsavedregex
5790<testsavedregex
5791Compiled pattern (byte-inverted) loaded from testsavedregex
5792No study data
5793 abc
5794 0: a
5795 1: a
5796 ** Failers
5797 0: a
5798 1: a
5799 def
5800No match
5801
5802~<(\w+)/?>(.)*</(\1)>~smgI
5803Capturing subpattern count = 3
5804Max back reference = 1
5805Options: multiline dotall
5806First char = '<'
5807Need char = '>'
5808 \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>
5809 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>
5810 1: seite
5811 2: \x0a
5812 3: seite
5813
5814/^a/IF
5815Capturing subpattern count = 0
5816Options: anchored
5817No first char
5818No need char
5819
5820/line\nbreak/I
5821Capturing subpattern count = 0
5822Contains explicit CR or LF match
5823No options
5824First char = 'l'
5825Need char = 'k'
5826 this is a line\nbreak
5827 0: line\x0abreak
5828 line one\nthis is a line\nbreak in the second line
5829 0: line\x0abreak
5830
5831/line\nbreak/If
5832Capturing subpattern count = 0
5833Contains explicit CR or LF match
5834Options: firstline
5835First char = 'l'
5836Need char = 'k'
5837 this is a line\nbreak
5838 0: line\x0abreak
5839 ** Failers
5840No match
5841 line one\nthis is a line\nbreak in the second line
5842No match
5843
5844/line\nbreak/Imf
5845Capturing subpattern count = 0
5846Contains explicit CR or LF match
5847Options: multiline firstline
5848First char = 'l'
5849Need char = 'k'
5850 this is a line\nbreak
5851 0: line\x0abreak
5852 ** Failers
5853No match
5854 line one\nthis is a line\nbreak in the second line
5855No match
5856
5857/ab.cd/P
5858 ab-cd
5859 0: ab-cd
5860 ab=cd
5861 0: ab=cd
5862 ** Failers
5863No match: POSIX code 17: match failed
5864 ab\ncd
5865No match: POSIX code 17: match failed
5866
5867/ab.cd/Ps
5868 ab-cd
5869 0: ab-cd
5870 ab=cd
5871 0: ab=cd
5872 ab\ncd
5873 0: ab\x0acd
5874
5875/(?i)(?-i)AbCd/I
5876Capturing subpattern count = 0
5877No options
5878First char = 'A'
5879Need char = 'd'
5880 AbCd
5881 0: AbCd
5882 ** Failers
5883No match
5884 abcd
5885No match
5886
5887/a{11111111111111111111}/I
5888Failed: number too big in {} quantifier at offset 22
5889
5890/(){64294967295}/I
5891Failed: number too big in {} quantifier at offset 14
5892
5893/(){2,4294967295}/I
5894Failed: number too big in {} quantifier at offset 15
5895
5896"(?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
5897Capturing subpattern count = 1
5898Max back reference = 1
5899No options
5900First char = 'a' (caseless)
5901Need char = 'B'
5902 abcdefghijklAkB
5903 0: abcdefghijklAkB
5904 1: k
5905
5906"(?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
5907Capturing subpattern count = 12
5908Max back reference = 11
5909Named capturing subpatterns:
5910 n0 1
5911 n1 2
5912 n10 11
5913 n11 12
5914 n2 3
5915 n3 4
5916 n4 5
5917 n5 6
5918 n6 7
5919 n7 8
5920 n8 9
5921 n9 10
5922No options
5923First char = 'a'
5924Need char = 'B'
5925 abcdefghijklAkB
5926 0: abcdefghijklAkB
5927 1: a
5928 2: b
5929 3: c
5930 4: d
5931 5: e
5932 6: f
5933 7: g
5934 8: h
5935 9: i
593610: j
593711: k
593812: l
5939
5940"(a)(b)(c)(d)(e)(f)(g)(h)(i)(j)(k)(l)A\11B"I
5941Capturing subpattern count = 12
5942Max back reference = 11
5943No options
5944First char = 'a'
5945Need char = 'B'
5946 abcdefghijklAkB
5947 0: abcdefghijklAkB
5948 1: a
5949 2: b
5950 3: c
5951 4: d
5952 5: e
5953 6: f
5954 7: g
5955 8: h
5956 9: i
595710: j
595811: k
595912: l
5960
5961"(?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
5962Capturing subpattern count = 101
5963Named capturing subpatterns:
5964 name0 1
5965 name1 2
5966 name10 11
5967 name100 101
5968 name11 12
5969 name12 13
5970 name13 14
5971 name14 15
5972 name15 16
5973 name16 17
5974 name17 18
5975 name18 19
5976 name19 20
5977 name2 3
5978 name20 21
5979 name21 22
5980 name22 23
5981 name23 24
5982 name24 25
5983 name25 26
5984 name26 27
5985 name27 28
5986 name28 29
5987 name29 30
5988 name3 4
5989 name30 31
5990 name31 32
5991 name32 33
5992 name33 34
5993 name34 35
5994 name35 36
5995 name36 37
5996 name37 38
5997 name38 39
5998 name39 40
5999 name4 5
6000 name40 41
6001 name41 42
6002 name42 43
6003 name43 44
6004 name44 45
6005 name45 46
6006 name46 47
6007 name47 48
6008 name48 49
6009 name49 50
6010 name5 6
6011 name50 51
6012 name51 52
6013 name52 53
6014 name53 54
6015 name54 55
6016 name55 56
6017 name56 57
6018 name57 58
6019 name58 59
6020 name59 60
6021 name6 7
6022 name60 61
6023 name61 62
6024 name62 63
6025 name63 64
6026 name64 65
6027 name65 66
6028 name66 67
6029 name67 68
6030 name68 69
6031 name69 70
6032 name7 8
6033 name70 71
6034 name71 72
6035 name72 73
6036 name73 74
6037 name74 75
6038 name75 76
6039 name76 77
6040 name77 78
6041 name78 79
6042 name79 80
6043 name8 9
6044 name80 81
6045 name81 82
6046 name82 83
6047 name83 84
6048 name84 85
6049 name85 86
6050 name86 87
6051 name87 88
6052 name88 89
6053 name89 90
6054 name9 10
6055 name90 91
6056 name91 92
6057 name92 93
6058 name93 94
6059 name94 95
6060 name95 96
6061 name96 97
6062 name97 98
6063 name98 99
6064 name99 100
6065No options
6066First char = 'a'
6067Need char = 'a'
6068 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6069Matched, but too many substrings
6070 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6071 1: a
6072 2: a
6073 3: a
6074 4: a
6075 5: a
6076 6: a
6077 7: a
6078 8: a
6079 9: a
608010: a
608111: a
608212: a
608313: a
608414: a
6085
6086"(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(a)(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
6087Capturing subpattern count = 101
6088No options
6089First char = 'a'
6090Need char = 'a'
6091 aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6092Matched, but too many substrings
6093 0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
6094 1: a
6095 2: a
6096 3: a
6097 4: a
6098 5: a
6099 6: a
6100 7: a
6101 8: a
6102 9: a
610310: a
610411: a
610512: a
610613: a
610714: a
6108
6109/[^()]*(?:\((?R)\)[^()]*)*/I
6110Capturing subpattern count = 0
6111No options
6112No first char
6113No need char
6114 (this(and)that
6115 0:
6116 (this(and)that)
6117 0: (this(and)that)
6118 (this(and)that)stuff
6119 0: (this(and)that)stuff
6120
6121/[^()]*(?:\((?>(?R))\)[^()]*)*/I
6122Capturing subpattern count = 0
6123No options
6124No first char
6125No need char
6126 (this(and)that
6127 0:
6128 (this(and)that)
6129 0: (this(and)that)
6130
6131/[^()]*(?:\((?R)\))*[^()]*/I
6132Capturing subpattern count = 0
6133No options
6134No first char
6135No need char
6136 (this(and)that
6137 0:
6138 (this(and)that)
6139 0: (this(and)that)
6140
6141/(?:\((?R)\))*[^()]*/I
6142Capturing subpattern count = 0
6143No options
6144No first char
6145No need char
6146 (this(and)that
6147 0:
6148 (this(and)that)
6149 0:
6150 ((this))
6151 0: ((this))
6152
6153/(?:\((?R)\))|[^()]*/I
6154Capturing subpattern count = 0
6155No options
6156No first char
6157No need char
6158 (this(and)that
6159 0:
6160 (this(and)that)
6161 0:
6162 (this)
6163 0: (this)
6164 ((this))
6165 0: ((this))
6166
6167/a(b)c/PN
6168 abc
6169Matched with REG_NOSUB
6170
6171/a(?P<name>b)c/PN
6172 abc
6173Matched with REG_NOSUB
6174
6175/\x{100}/I
6176Failed: character value in \x{...} sequence is too large at offset 6
6177
6178/\x{0000ff}/I
6179Capturing subpattern count = 0
6180No options
6181First char = 255
6182No need char
6183
6184/^((?P<A>a1)|(?P<A>a2)b)/I
6185Failed: two named subpatterns have the same name at offset 17
6186
6187/^((?P<A>a1)|(?P<A>a2)b)/IJ
6188Capturing subpattern count = 3
6189Named capturing subpatterns:
6190 A 2
6191 A 3
6192Options: anchored dupnames
6193No first char
6194No need char
6195 a1b\CA
6196 0: a1
6197 1: a1
6198 2: a1
6199 C a1 (2) A
6200 a2b\CA
6201 0: a2b
6202 1: a2b
6203 2: <unset>
6204 3: a2
6205 C a2 (2) A
6206 ** Failers
6207No match
6208 a1b\CZ\CA
6209no parentheses with name "Z"
6210 0: a1
6211 1: a1
6212 2: a1
6213copy substring Z failed -7
6214 C a1 (2) A
6215
6216/^(?P<A>a)(?P<A>b)/IJ
6217Capturing subpattern count = 2
6218Named capturing subpatterns:
6219 A 1
6220 A 2
6221Options: anchored dupnames
6222No first char
6223No need char
6224 ab\CA
6225 0: ab
6226 1: a
6227 2: b
6228 C a (1) A
6229
6230/^(?P<A>a)(?P<A>b)|cd/IJ
6231Capturing subpattern count = 2
6232Named capturing subpatterns:
6233 A 1
6234 A 2
6235Options: dupnames
6236No first char
6237No need char
6238 ab\CA
6239 0: ab
6240 1: a
6241 2: b
6242 C a (1) A
6243 cd\CA
6244 0: cd
6245copy substring A failed -7
6246
6247/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6248Capturing subpattern count = 4
6249Named capturing subpatterns:
6250 A 1
6251 A 2
6252 A 3
6253 A 4
6254Options: dupnames
6255No first char
6256No need char
6257 cdefgh\CA
6258 0: cdefgh
6259 1: <unset>
6260 2: <unset>
6261 3: ef
6262 4: gh
6263 C ef (2) A
6264
6265/^((?P<A>a1)|(?P<A>a2)b)/IJ
6266Capturing subpattern count = 3
6267Named capturing subpatterns:
6268 A 2
6269 A 3
6270Options: anchored dupnames
6271No first char
6272No need char
6273 a1b\GA
6274 0: a1
6275 1: a1
6276 2: a1
6277 G a1 (2) A
6278 a2b\GA
6279 0: a2b
6280 1: a2b
6281 2: <unset>
6282 3: a2
6283 G a2 (2) A
6284 ** Failers
6285No match
6286 a1b\GZ\GA
6287no parentheses with name "Z"
6288 0: a1
6289 1: a1
6290 2: a1
6291copy substring Z failed -7
6292 G a1 (2) A
6293
6294/^(?P<A>a)(?P<A>b)/IJ
6295Capturing subpattern count = 2
6296Named capturing subpatterns:
6297 A 1
6298 A 2
6299Options: anchored dupnames
6300No first char
6301No need char
6302 ab\GA
6303 0: ab
6304 1: a
6305 2: b
6306 G a (1) A
6307
6308/^(?P<A>a)(?P<A>b)|cd/IJ
6309Capturing subpattern count = 2
6310Named capturing subpatterns:
6311 A 1
6312 A 2
6313Options: dupnames
6314No first char
6315No need char
6316 ab\GA
6317 0: ab
6318 1: a
6319 2: b
6320 G a (1) A
6321 cd\GA
6322 0: cd
6323copy substring A failed -7
6324
6325/^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6326Capturing subpattern count = 4
6327Named capturing subpatterns:
6328 A 1
6329 A 2
6330 A 3
6331 A 4
6332Options: dupnames
6333No first char
6334No need char
6335 cdefgh\GA
6336 0: cdefgh
6337 1: <unset>
6338 2: <unset>
6339 3: ef
6340 4: gh
6341 G ef (2) A
6342
6343/(?J)^((?P<A>a1)|(?P<A>a2)b)/I
6344Capturing subpattern count = 3
6345Named capturing subpatterns:
6346 A 2
6347 A 3
6348Options: anchored dupnames
6349Duplicate name status changes
6350No first char
6351No need char
6352 a1b\CA
6353 0: a1
6354 1: a1
6355 2: a1
6356 C a1 (2) A
6357 a2b\CA
6358 0: a2b
6359 1: a2b
6360 2: <unset>
6361 3: a2
6362 C a2 (2) A
6363
6364/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<A>d)/I
6365Failed: two named subpatterns have the same name at offset 37
6366
6367/ In this next test, J is not set at the outer level; consequently it isn't
6368set in the pattern's options; consequently pcre_get_named_substring() produces
6369a random value. /Ix
6370Capturing subpattern count = 1
6371Options: extended
6372First char = 'I'
6373Need char = 'e'
6374
6375/^(?P<A>a) (?J:(?P<B>b)(?P<B>c)) (?P<C>d)/I
6376Capturing subpattern count = 4
6377Named capturing subpatterns:
6378 A 1
6379 B 2
6380 B 3
6381 C 4
6382Options: anchored
6383Duplicate name status changes
6384No first char
6385No need char
6386 a bc d\CA\CB\CC
6387 0: a bc d
6388 1: a
6389 2: b
6390 3: c
6391 4: d
6392 C a (1) A
6393 C b (1) B
6394 C d (1) C
6395
6396/^(?P<A>a)?(?(A)a|b)/I
6397Capturing subpattern count = 1
6398Named capturing subpatterns:
6399 A 1
6400Options: anchored
6401No first char
6402No need char
6403 aabc
6404 0: aa
6405 1: a
6406 bc
6407 0: b
6408 ** Failers
6409No match
6410 abc
6411No match
6412
6413/(?:(?(ZZ)a|b)(?P<ZZ>X))+/I
6414Capturing subpattern count = 1
6415Named capturing subpatterns:
6416 ZZ 1
6417No options
6418No first char
6419Need char = 'X'
6420 bXaX
6421 0: bXaX
6422 1: X
6423
6424/(?:(?(2y)a|b)(X))+/I
6425Failed: reference to non-existent subpattern at offset 9
6426
6427/(?:(?(ZA)a|b)(?P<ZZ>X))+/I
6428Failed: reference to non-existent subpattern at offset 9
6429
6430/(?:(?(ZZ)a|b)(?(ZZ)a|b)(?P<ZZ>X))+/I
6431Capturing subpattern count = 1
6432Named capturing subpatterns:
6433 ZZ 1
6434No options
6435No first char
6436Need char = 'X'
6437 bbXaaX
6438 0: bbXaaX
6439 1: X
6440
6441/(?:(?(ZZ)a|\(b\))\\(?P<ZZ>X))+/I
6442Capturing subpattern count = 1
6443Named capturing subpatterns:
6444 ZZ 1
6445No options
6446No first char
6447Need char = 'X'
6448 (b)\\Xa\\X
6449 0: (b)\Xa\X
6450 1: X
6451
6452/(?P<ABC/I
6453Failed: syntax error in subpattern name (missing terminator) at offset 7
6454
6455/(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6456Capturing subpattern count = 1
6457Max back reference = 1
6458Named capturing subpatterns:
6459 A 1
6460No options
6461No first char
6462No need char
6463 bXXaYYaY
6464 0: bXXaYYaY
6465 1: Y
6466 bXYaXXaX
6467 0: bX
6468 1: X
6469
6470/()()()()()()()()()(?:(?(A)(?P=A)a|b)(?P<A>X|Y))+/I
6471Capturing subpattern count = 10
6472Max back reference = 10
6473Named capturing subpatterns:
6474 A 10
6475No options
6476No first char
6477No need char
6478 bXXaYYaY
6479 0: bXXaYYaY
6480 1:
6481 2:
6482 3:
6483 4:
6484 5:
6485 6:
6486 7:
6487 8:
6488 9:
648910: Y
6490
6491/\777/I
6492Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3
6493
6494/\s*,\s*/IS
6495Capturing subpattern count = 0
6496No options
6497No first char
6498Need char = ','
6499Subject length lower bound = 1
6500Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6501 \x0b,\x0b
6502 0: ,
6503 \x0c,\x0d
6504 0: \x0c,\x0d
6505
6506/^abc/Im
6507Capturing subpattern count = 0
6508Options: multiline
6509First char at start or follows newline
6510Need char = 'c'
6511 xyz\nabc
6512 0: abc
6513 xyz\nabc\<lf>
6514 0: abc
6515 xyz\r\nabc\<lf>
6516 0: abc
6517 xyz\rabc\<cr>
6518 0: abc
6519 xyz\r\nabc\<crlf>
6520 0: abc
6521 ** Failers
6522No match
6523 xyz\nabc\<cr>
6524No match
6525 xyz\r\nabc\<cr>
6526No match
6527 xyz\nabc\<crlf>
6528No match
6529 xyz\rabc\<crlf>
6530No match
6531 xyz\rabc\<lf>
6532No match
6533
6534/abc$/Im<lf>
6535Capturing subpattern count = 0
6536Options: multiline
6537Forced newline sequence: LF
6538First char = 'a'
6539Need char = 'c'
6540 xyzabc
6541 0: abc
6542 xyzabc\n
6543 0: abc
6544 xyzabc\npqr
6545 0: abc
6546 xyzabc\r\<cr>
6547 0: abc
6548 xyzabc\rpqr\<cr>
6549 0: abc
6550 xyzabc\r\n\<crlf>
6551 0: abc
6552 xyzabc\r\npqr\<crlf>
6553 0: abc
6554 ** Failers
6555No match
6556 xyzabc\r
6557No match
6558 xyzabc\rpqr
6559No match
6560 xyzabc\r\n
6561No match
6562 xyzabc\r\npqr
6563No match
6564
6565/^abc/Im<cr>
6566Capturing subpattern count = 0
6567Options: multiline
6568Forced newline sequence: CR
6569First char at start or follows newline
6570Need char = 'c'
6571 xyz\rabcdef
6572 0: abc
6573 xyz\nabcdef\<lf>
6574 0: abc
6575 ** Failers
6576No match
6577 xyz\nabcdef
6578No match
6579
6580/^abc/Im<lf>
6581Capturing subpattern count = 0
6582Options: multiline
6583Forced newline sequence: LF
6584First char at start or follows newline
6585Need char = 'c'
6586 xyz\nabcdef
6587 0: abc
6588 xyz\rabcdef\<cr>
6589 0: abc
6590 ** Failers
6591No match
6592 xyz\rabcdef
6593No match
6594
6595/^abc/Im<crlf>
6596Capturing subpattern count = 0
6597Options: multiline
6598Forced newline sequence: CRLF
6599First char at start or follows newline
6600Need char = 'c'
6601 xyz\r\nabcdef
6602 0: abc
6603 xyz\rabcdef\<cr>
6604 0: abc
6605 ** Failers
6606No match
6607 xyz\rabcdef
6608No match
6609
6610/^abc/Im<bad>
6611Unknown newline type at: <bad>
6612
6613
6614/abc/I
6615Capturing subpattern count = 0
6616No options
6617First char = 'a'
6618Need char = 'c'
6619 xyz\rabc\<bad>
6620Unknown newline type at: <bad>
6621 abc
6622 0: abc
6623
6624/.*/I<lf>
6625Capturing subpattern count = 0
6626Options:
6627Forced newline sequence: LF
6628First char at start or follows newline
6629No need char
6630 abc\ndef
6631 0: abc
6632 abc\rdef
6633 0: abc\x0ddef
6634 abc\r\ndef
6635 0: abc\x0d
6636 \<cr>abc\ndef
6637 0: abc\x0adef
6638 \<cr>abc\rdef
6639 0: abc
6640 \<cr>abc\r\ndef
6641 0: abc
6642 \<crlf>abc\ndef
6643 0: abc\x0adef
6644 \<crlf>abc\rdef
6645 0: abc\x0ddef
6646 \<crlf>abc\r\ndef
6647 0: abc
6648
6649/\w+(.)(.)?def/Is
6650Capturing subpattern count = 2
6651Options: dotall
6652No first char
6653Need char = 'f'
6654 abc\ndef
6655 0: abc\x0adef
6656 1: \x0a
6657 abc\rdef
6658 0: abc\x0ddef
6659 1: \x0d
6660 abc\r\ndef
6661 0: abc\x0d\x0adef
6662 1: \x0d
6663 2: \x0a
6664
6665+((?:\s|//.*\\n|/[*](?:\\n|.)*?[*]/)*)+I
6666Capturing subpattern count = 1
6667No options
6668No first char
6669No need char
6670 /* this is a C style comment */\M
6671Minimum match() limit = 120
6672Minimum match() recursion limit = 6
6673 0: /* this is a C style comment */
6674 1: /* this is a C style comment */
6675
6676/(?P<B>25[0-5]|2[0-4]\d|[01]?\d?\d)(?:\.(?P>B)){3}/I
6677Capturing subpattern count = 1
6678Named capturing subpatterns:
6679 B 1
6680No options
6681No first char
6682Need char = '.'
6683
6684/()()()()()()()()()()()()()()()()()()()()
6685 ()()()()()()()()()()()()()()()()()()()()
6686 ()()()()()()()()()()()()()()()()()()()()
6687 ()()()()()()()()()()()()()()()()()()()()
6688 ()()()()()()()()()()()()()()()()()()()()
6689 (.(.))/Ix
6690Capturing subpattern count = 102
6691Options: extended
6692No first char
6693No need char
6694 XY\O400
6695 0: XY
6696 1:
6697 2:
6698 3:
6699 4:
6700 5:
6701 6:
6702 7:
6703 8:
6704 9:
670510:
670611:
670712:
670813:
670914:
671015:
671116:
671217:
671318:
671419:
671520:
671621:
671722:
671823:
671924:
672025:
672126:
672227:
672328:
672429:
672530:
672631:
672732:
672833:
672934:
673035:
673136:
673237:
673338:
673439:
673540:
673641:
673742:
673843:
673944:
674045:
674146:
674247:
674348:
674449:
674550:
674651:
674752:
674853:
674954:
675055:
675156:
675257:
675358:
675459:
675560:
675661:
675762:
675863:
675964:
676065:
676166:
676267:
676368:
676469:
676570:
676671:
676772:
676873:
676974:
677075:
677176:
677277:
677378:
677479:
677580:
677681:
677782:
677883:
677984:
678085:
678186:
678287:
678388:
678489:
678590:
678691:
678792:
678893:
678994:
679095:
679196:
679297:
679398:
679499:
6795100:
6796101: XY
6797102: Y
6798
6799/(a*b|(?i:c*(?-i)d))/IS
6800Capturing subpattern count = 1
6801No options
6802No first char
6803No need char
6804Subject length lower bound = 1
6805Starting byte set: C a b c d
6806
6807/()[ab]xyz/IS
6808Capturing subpattern count = 1
6809No options
6810No first char
6811Need char = 'z'
6812Subject length lower bound = 4
6813Starting byte set: a b
6814
6815/(|)[ab]xyz/IS
6816Capturing subpattern count = 1
6817No options
6818No first char
6819Need char = 'z'
6820Subject length lower bound = 4
6821Starting byte set: a b
6822
6823/(|c)[ab]xyz/IS
6824Capturing subpattern count = 1
6825No options
6826No first char
6827Need char = 'z'
6828Subject length lower bound = 4
6829Starting byte set: a b c
6830
6831/(|c?)[ab]xyz/IS
6832Capturing subpattern count = 1
6833No options
6834No first char
6835Need char = 'z'
6836Subject length lower bound = 4
6837Starting byte set: a b c
6838
6839/(d?|c?)[ab]xyz/IS
6840Capturing subpattern count = 1
6841No options
6842No first char
6843Need char = 'z'
6844Subject length lower bound = 4
6845Starting byte set: a b c d
6846
6847/(d?|c)[ab]xyz/IS
6848Capturing subpattern count = 1
6849No options
6850No first char
6851Need char = 'z'
6852Subject length lower bound = 4
6853Starting byte set: a b c d
6854
6855/^a*b\d/DZ
6856------------------------------------------------------------------
6857 Bra
6858 ^
6859 a*+
6860 b
6861 \d
6862 Ket
6863 End
6864------------------------------------------------------------------
6865Capturing subpattern count = 0
6866Options: anchored
6867No first char
6868Need char = 'b'
6869
6870/^a*+b\d/DZ
6871------------------------------------------------------------------
6872 Bra
6873 ^
6874 a*+
6875 b
6876 \d
6877 Ket
6878 End
6879------------------------------------------------------------------
6880Capturing subpattern count = 0
6881Options: anchored
6882No first char
6883Need char = 'b'
6884
6885/^a*?b\d/DZ
6886------------------------------------------------------------------
6887 Bra
6888 ^
6889 a*+
6890 b
6891 \d
6892 Ket
6893 End
6894------------------------------------------------------------------
6895Capturing subpattern count = 0
6896Options: anchored
6897No first char
6898Need char = 'b'
6899
6900/^a+A\d/DZ
6901------------------------------------------------------------------
6902 Bra
6903 ^
6904 a++
6905 A
6906 \d
6907 Ket
6908 End
6909------------------------------------------------------------------
6910Capturing subpattern count = 0
6911Options: anchored
6912No first char
6913Need char = 'A'
6914 aaaA5
6915 0: aaaA5
6916 ** Failers
6917No match
6918 aaaa5
6919No match
6920
6921/^a*A\d/IiDZ
6922------------------------------------------------------------------
6923 Bra
6924 ^
6925 /i a*
6926 /i A
6927 \d
6928 Ket
6929 End
6930------------------------------------------------------------------
6931Capturing subpattern count = 0
6932Options: anchored caseless
6933No first char
6934Need char = 'A' (caseless)
6935 aaaA5
6936 0: aaaA5
6937 aaaa5
6938 0: aaaa5
6939
6940/(a*|b*)[cd]/IS
6941Capturing subpattern count = 1
6942No options
6943No first char
6944No need char
6945Subject length lower bound = 1
6946Starting byte set: a b c d
6947
6948/(a+|b*)[cd]/IS
6949Capturing subpattern count = 1
6950No options
6951No first char
6952No need char
6953Subject length lower bound = 1
6954Starting byte set: a b c d
6955
6956/(a*|b+)[cd]/IS
6957Capturing subpattern count = 1
6958No options
6959No first char
6960No need char
6961Subject length lower bound = 1
6962Starting byte set: a b c d
6963
6964/(a+|b+)[cd]/IS
6965Capturing subpattern count = 1
6966No options
6967No first char
6968No need char
6969Subject length lower bound = 2
6970Starting byte set: a b
6971
6972/((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6973 ((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
6974 (((
6975 a
6976 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6977 ))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))))
6978 )))
6979/Ix
6980Capturing subpattern count = 203
6981Options: extended
6982First char = 'a'
6983No need char
6984 large nest
6985Matched, but too many substrings
6986 0: a
6987 1: a
6988 2: a
6989 3: a
6990 4: a
6991 5: a
6992 6: a
6993 7: a
6994 8: a
6995 9: a
699610: a
699711: a
699812: a
699913: a
700014: a
7001
7002/a*\d/BZ
7003------------------------------------------------------------------
7004 Bra
7005 a*+
7006 \d
7007 Ket
7008 End
7009------------------------------------------------------------------
7010
7011/a*\D/BZ
7012------------------------------------------------------------------
7013 Bra
7014 a*
7015 \D
7016 Ket
7017 End
7018------------------------------------------------------------------
7019
7020/0*\d/BZ
7021------------------------------------------------------------------
7022 Bra
7023 0*
7024 \d
7025 Ket
7026 End
7027------------------------------------------------------------------
7028
7029/0*\D/BZ
7030------------------------------------------------------------------
7031 Bra
7032 0*+
7033 \D
7034 Ket
7035 End
7036------------------------------------------------------------------
7037
7038/a*\s/BZ
7039------------------------------------------------------------------
7040 Bra
7041 a*+
7042 \s
7043 Ket
7044 End
7045------------------------------------------------------------------
7046
7047/a*\S/BZ
7048------------------------------------------------------------------
7049 Bra
7050 a*
7051 \S
7052 Ket
7053 End
7054------------------------------------------------------------------
7055
7056/ *\s/BZ
7057------------------------------------------------------------------
7058 Bra
7059 *
7060 \s
7061 Ket
7062 End
7063------------------------------------------------------------------
7064
7065/ *\S/BZ
7066------------------------------------------------------------------
7067 Bra
7068 *+
7069 \S
7070 Ket
7071 End
7072------------------------------------------------------------------
7073
7074/a*\w/BZ
7075------------------------------------------------------------------
7076 Bra
7077 a*
7078 \w
7079 Ket
7080 End
7081------------------------------------------------------------------
7082
7083/a*\W/BZ
7084------------------------------------------------------------------
7085 Bra
7086 a*+
7087 \W
7088 Ket
7089 End
7090------------------------------------------------------------------
7091
7092/=*\w/BZ
7093------------------------------------------------------------------
7094 Bra
7095 =*+
7096 \w
7097 Ket
7098 End
7099------------------------------------------------------------------
7100
7101/=*\W/BZ
7102------------------------------------------------------------------
7103 Bra
7104 =*
7105 \W
7106 Ket
7107 End
7108------------------------------------------------------------------
7109
7110/\d*a/BZ
7111------------------------------------------------------------------
7112 Bra
7113 \d*+
7114 a
7115 Ket
7116 End
7117------------------------------------------------------------------
7118
7119/\d*2/BZ
7120------------------------------------------------------------------
7121 Bra
7122 \d*
7123 2
7124 Ket
7125 End
7126------------------------------------------------------------------
7127
7128/\d*\d/BZ
7129------------------------------------------------------------------
7130 Bra
7131 \d*
7132 \d
7133 Ket
7134 End
7135------------------------------------------------------------------
7136
7137/\d*\D/BZ
7138------------------------------------------------------------------
7139 Bra
7140 \d*+
7141 \D
7142 Ket
7143 End
7144------------------------------------------------------------------
7145
7146/\d*\s/BZ
7147------------------------------------------------------------------
7148 Bra
7149 \d*+
7150 \s
7151 Ket
7152 End
7153------------------------------------------------------------------
7154
7155/\d*\S/BZ
7156------------------------------------------------------------------
7157 Bra
7158 \d*
7159 \S
7160 Ket
7161 End
7162------------------------------------------------------------------
7163
7164/\d*\w/BZ
7165------------------------------------------------------------------
7166 Bra
7167 \d*
7168 \w
7169 Ket
7170 End
7171------------------------------------------------------------------
7172
7173/\d*\W/BZ
7174------------------------------------------------------------------
7175 Bra
7176 \d*+
7177 \W
7178 Ket
7179 End
7180------------------------------------------------------------------
7181
7182/\D*a/BZ
7183------------------------------------------------------------------
7184 Bra
7185 \D*
7186 a
7187 Ket
7188 End
7189------------------------------------------------------------------
7190
7191/\D*2/BZ
7192------------------------------------------------------------------
7193 Bra
7194 \D*+
7195 2
7196 Ket
7197 End
7198------------------------------------------------------------------
7199
7200/\D*\d/BZ
7201------------------------------------------------------------------
7202 Bra
7203 \D*+
7204 \d
7205 Ket
7206 End
7207------------------------------------------------------------------
7208
7209/\D*\D/BZ
7210------------------------------------------------------------------
7211 Bra
7212 \D*
7213 \D
7214 Ket
7215 End
7216------------------------------------------------------------------
7217
7218/\D*\s/BZ
7219------------------------------------------------------------------
7220 Bra
7221 \D*
7222 \s
7223 Ket
7224 End
7225------------------------------------------------------------------
7226
7227/\D*\S/BZ
7228------------------------------------------------------------------
7229 Bra
7230 \D*
7231 \S
7232 Ket
7233 End
7234------------------------------------------------------------------
7235
7236/\D*\w/BZ
7237------------------------------------------------------------------
7238 Bra
7239 \D*
7240 \w
7241 Ket
7242 End
7243------------------------------------------------------------------
7244
7245/\D*\W/BZ
7246------------------------------------------------------------------
7247 Bra
7248 \D*
7249 \W
7250 Ket
7251 End
7252------------------------------------------------------------------
7253
7254/\s*a/BZ
7255------------------------------------------------------------------
7256 Bra
7257 \s*+
7258 a
7259 Ket
7260 End
7261------------------------------------------------------------------
7262
7263/\s*2/BZ
7264------------------------------------------------------------------
7265 Bra
7266 \s*+
7267 2
7268 Ket
7269 End
7270------------------------------------------------------------------
7271
7272/\s*\d/BZ
7273------------------------------------------------------------------
7274 Bra
7275 \s*+
7276 \d
7277 Ket
7278 End
7279------------------------------------------------------------------
7280
7281/\s*\D/BZ
7282------------------------------------------------------------------
7283 Bra
7284 \s*
7285 \D
7286 Ket
7287 End
7288------------------------------------------------------------------
7289
7290/\s*\s/BZ
7291------------------------------------------------------------------
7292 Bra
7293 \s*
7294 \s
7295 Ket
7296 End
7297------------------------------------------------------------------
7298
7299/\s*\S/BZ
7300------------------------------------------------------------------
7301 Bra
7302 \s*+
7303 \S
7304 Ket
7305 End
7306------------------------------------------------------------------
7307
7308/\s*\w/BZ
7309------------------------------------------------------------------
7310 Bra
7311 \s*+
7312 \w
7313 Ket
7314 End
7315------------------------------------------------------------------
7316
7317/\s*\W/BZ
7318------------------------------------------------------------------
7319 Bra
7320 \s*
7321 \W
7322 Ket
7323 End
7324------------------------------------------------------------------
7325
7326/\S*a/BZ
7327------------------------------------------------------------------
7328 Bra
7329 \S*
7330 a
7331 Ket
7332 End
7333------------------------------------------------------------------
7334
7335/\S*2/BZ
7336------------------------------------------------------------------
7337 Bra
7338 \S*
7339 2
7340 Ket
7341 End
7342------------------------------------------------------------------
7343
7344/\S*\d/BZ
7345------------------------------------------------------------------
7346 Bra
7347 \S*
7348 \d
7349 Ket
7350 End
7351------------------------------------------------------------------
7352
7353/\S*\D/BZ
7354------------------------------------------------------------------
7355 Bra
7356 \S*
7357 \D
7358 Ket
7359 End
7360------------------------------------------------------------------
7361
7362/\S*\s/BZ
7363------------------------------------------------------------------
7364 Bra
7365 \S*+
7366 \s
7367 Ket
7368 End
7369------------------------------------------------------------------
7370
7371/\S*\S/BZ
7372------------------------------------------------------------------
7373 Bra
7374 \S*
7375 \S
7376 Ket
7377 End
7378------------------------------------------------------------------
7379
7380/\S*\w/BZ
7381------------------------------------------------------------------
7382 Bra
7383 \S*
7384 \w
7385 Ket
7386 End
7387------------------------------------------------------------------
7388
7389/\S*\W/BZ
7390------------------------------------------------------------------
7391 Bra
7392 \S*
7393 \W
7394 Ket
7395 End
7396------------------------------------------------------------------
7397
7398/\w*a/BZ
7399------------------------------------------------------------------
7400 Bra
7401 \w*
7402 a
7403 Ket
7404 End
7405------------------------------------------------------------------
7406
7407/\w*2/BZ
7408------------------------------------------------------------------
7409 Bra
7410 \w*
7411 2
7412 Ket
7413 End
7414------------------------------------------------------------------
7415
7416/\w*\d/BZ
7417------------------------------------------------------------------
7418 Bra
7419 \w*
7420 \d
7421 Ket
7422 End
7423------------------------------------------------------------------
7424
7425/\w*\D/BZ
7426------------------------------------------------------------------
7427 Bra
7428 \w*
7429 \D
7430 Ket
7431 End
7432------------------------------------------------------------------
7433
7434/\w*\s/BZ
7435------------------------------------------------------------------
7436 Bra
7437 \w*+
7438 \s
7439 Ket
7440 End
7441------------------------------------------------------------------
7442
7443/\w*\S/BZ
7444------------------------------------------------------------------
7445 Bra
7446 \w*
7447 \S
7448 Ket
7449 End
7450------------------------------------------------------------------
7451
7452/\w*\w/BZ
7453------------------------------------------------------------------
7454 Bra
7455 \w*
7456 \w
7457 Ket
7458 End
7459------------------------------------------------------------------
7460
7461/\w*\W/BZ
7462------------------------------------------------------------------
7463 Bra
7464 \w*+
7465 \W
7466 Ket
7467 End
7468------------------------------------------------------------------
7469
7470/\W*a/BZ
7471------------------------------------------------------------------
7472 Bra
7473 \W*+
7474 a
7475 Ket
7476 End
7477------------------------------------------------------------------
7478
7479/\W*2/BZ
7480------------------------------------------------------------------
7481 Bra
7482 \W*+
7483 2
7484 Ket
7485 End
7486------------------------------------------------------------------
7487
7488/\W*\d/BZ
7489------------------------------------------------------------------
7490 Bra
7491 \W*+
7492 \d
7493 Ket
7494 End
7495------------------------------------------------------------------
7496
7497/\W*\D/BZ
7498------------------------------------------------------------------
7499 Bra
7500 \W*
7501 \D
7502 Ket
7503 End
7504------------------------------------------------------------------
7505
7506/\W*\s/BZ
7507------------------------------------------------------------------
7508 Bra
7509 \W*
7510 \s
7511 Ket
7512 End
7513------------------------------------------------------------------
7514
7515/\W*\S/BZ
7516------------------------------------------------------------------
7517 Bra
7518 \W*
7519 \S
7520 Ket
7521 End
7522------------------------------------------------------------------
7523
7524/\W*\w/BZ
7525------------------------------------------------------------------
7526 Bra
7527 \W*+
7528 \w
7529 Ket
7530 End
7531------------------------------------------------------------------
7532
7533/\W*\W/BZ
7534------------------------------------------------------------------
7535 Bra
7536 \W*
7537 \W
7538 Ket
7539 End
7540------------------------------------------------------------------
7541
7542/[^a]+a/BZ
7543------------------------------------------------------------------
7544 Bra
7545 [^a]++
7546 a
7547 Ket
7548 End
7549------------------------------------------------------------------
7550
7551/[^a]+a/BZi
7552------------------------------------------------------------------
7553 Bra
7554 /i [^A]++
7555 /i a
7556 Ket
7557 End
7558------------------------------------------------------------------
7559
7560/[^a]+A/BZi
7561------------------------------------------------------------------
7562 Bra
7563 /i [^A]++
7564 /i A
7565 Ket
7566 End
7567------------------------------------------------------------------
7568
7569/[^a]+b/BZ
7570------------------------------------------------------------------
7571 Bra
7572 [^a]+
7573 b
7574 Ket
7575 End
7576------------------------------------------------------------------
7577
7578/[^a]+\d/BZ
7579------------------------------------------------------------------
7580 Bra
7581 [^a]+
7582 \d
7583 Ket
7584 End
7585------------------------------------------------------------------
7586
7587/a*[^a]/BZ
7588------------------------------------------------------------------
7589 Bra
7590 a*
7591 [^a]
7592 Ket
7593 End
7594------------------------------------------------------------------
7595
7596/(?P<abc>x)(?P<xyz>y)/I
7597Capturing subpattern count = 2
7598Named capturing subpatterns:
7599 abc 1
7600 xyz 2
7601No options
7602First char = 'x'
7603Need char = 'y'
7604 xy\Cabc\Cxyz
7605 0: xy
7606 1: x
7607 2: y
7608 C x (1) abc
7609 C y (1) xyz
7610
7611/(?<abc>x)(?'xyz'y)/I
7612Capturing subpattern count = 2
7613Named capturing subpatterns:
7614 abc 1
7615 xyz 2
7616No options
7617First char = 'x'
7618Need char = 'y'
7619 xy\Cabc\Cxyz
7620 0: xy
7621 1: x
7622 2: y
7623 C x (1) abc
7624 C y (1) xyz
7625
7626/(?<abc'x)(?'xyz'y)/I
7627Failed: syntax error in subpattern name (missing terminator) at offset 6
7628
7629/(?<abc>x)(?'xyz>y)/I
7630Failed: syntax error in subpattern name (missing terminator) at offset 15
7631
7632/(?P'abc'x)(?P<xyz>y)/I
7633Failed: unrecognized character after (?P at offset 3
7634
7635/^(?:(?(ZZ)a|b)(?<ZZ>X))+/
7636 bXaX
7637 0: bXaX
7638 1: X
7639 bXbX
7640 0: bX
7641 1: X
7642 ** Failers
7643No match
7644 aXaX
7645No match
7646 aXbX
7647No match
7648
7649/^(?P>abc)(?<abcd>xxx)/
7650Failed: reference to non-existent subpattern at offset 8
7651
7652/^(?P>abc)(?<abc>x|y)/
7653 xx
7654 0: xx
7655 1: x
7656 xy
7657 0: xy
7658 1: y
7659 yy
7660 0: yy
7661 1: y
7662 yx
7663 0: yx
7664 1: x
7665
7666/^(?P>abc)(?P<abc>x|y)/
7667 xx
7668 0: xx
7669 1: x
7670 xy
7671 0: xy
7672 1: y
7673 yy
7674 0: yy
7675 1: y
7676 yx
7677 0: yx
7678 1: x
7679
7680/^((?(abc)a|b)(?<abc>x|y))+/
7681 bxay
7682 0: bxay
7683 1: ay
7684 2: y
7685 bxby
7686 0: bx
7687 1: bx
7688 2: x
7689 ** Failers
7690No match
7691 axby
7692No match
7693
7694/^(((?P=abc)|X)(?<abc>x|y))+/
7695 XxXxxx
7696 0: XxXxxx
7697 1: xx
7698 2: x
7699 3: x
7700 XxXyyx
7701 0: XxXyyx
7702 1: yx
7703 2: y
7704 3: x
7705 XxXyxx
7706 0: XxXy
7707 1: Xy
7708 2: X
7709 3: y
7710 ** Failers
7711No match
7712 x
7713No match
7714
7715/^(?1)(abc)/
7716 abcabc
7717 0: abcabc
7718 1: abc
7719
7720/^(?:(?:\1|X)(a|b))+/
7721 Xaaa
7722 0: Xaaa
7723 1: a
7724 Xaba
7725 0: Xa
7726 1: a
7727
7728/^[\E\Qa\E-\Qz\E]+/BZ
7729------------------------------------------------------------------
7730 Bra
7731 ^
7732 [a-z]+
7733 Ket
7734 End
7735------------------------------------------------------------------
7736
7737/^[a\Q]bc\E]/BZ
7738------------------------------------------------------------------
7739 Bra
7740 ^
7741 [\]a-c]
7742 Ket
7743 End
7744------------------------------------------------------------------
7745
7746/^[a-\Q\E]/BZ
7747------------------------------------------------------------------
7748 Bra
7749 ^
7750 [\-a]
7751 Ket
7752 End
7753------------------------------------------------------------------
7754
7755/^(?P>abc)[()](?<abc>)/BZ
7756------------------------------------------------------------------
7757 Bra
7758 ^
7759 Recurse
7760 [()]
7761 CBra 1
7762 Ket
7763 Ket
7764 End
7765------------------------------------------------------------------
7766
7767/^((?(abc)y)[()](?P<abc>x))+/BZ
7768------------------------------------------------------------------
7769 Bra
7770 ^
7771 CBra 1
7772 Cond
7773 2 Cond nref
7774 y
7775 Ket
7776 [()]
7777 CBra 2
7778 x
7779 Ket
7780 KetRmax
7781 Ket
7782 End
7783------------------------------------------------------------------
7784 (xy)x
7785 0: (xy)x
7786 1: y)x
7787 2: x
7788
7789/^(?P>abc)\Q()\E(?<abc>)/BZ
7790------------------------------------------------------------------
7791 Bra
7792 ^
7793 Recurse
7794 ()
7795 CBra 1
7796 Ket
7797 Ket
7798 End
7799------------------------------------------------------------------
7800
7801/^(?P>abc)[a\Q(]\E(](?<abc>)/BZ
7802------------------------------------------------------------------
7803 Bra
7804 ^
7805 Recurse
7806 [(\]a]
7807 CBra 1
7808 Ket
7809 Ket
7810 End
7811------------------------------------------------------------------
7812
7813/^(?P>abc) # this is (a comment)
7814 (?<abc>)/BZx
7815------------------------------------------------------------------
7816 Bra
7817 ^
7818 Recurse
7819 CBra 1
7820 Ket
7821 Ket
7822 End
7823------------------------------------------------------------------
7824
7825/^\W*(?:(?<one>(?<two>.)\W*(?&one)\W*\k<two>|)|(?<three>(?<four>.)\W*(?&three)\W*\k'four'|\W*.\W*))\W*$/Ii
7826Capturing subpattern count = 4
7827Max back reference = 4
7828Named capturing subpatterns:
7829 four 4
7830 one 1
7831 three 3
7832 two 2
7833Options: anchored caseless
7834No first char
7835No need char
7836 1221
7837 0: 1221
7838 1: 1221
7839 2: 1
7840 Satan, oscillate my metallic sonatas!
7841 0: Satan, oscillate my metallic sonatas!
7842 1: <unset>
7843 2: <unset>
7844 3: Satan, oscillate my metallic sonatas
7845 4: S
7846 A man, a plan, a canal: Panama!
7847 0: A man, a plan, a canal: Panama!
7848 1: <unset>
7849 2: <unset>
7850 3: A man, a plan, a canal: Panama
7851 4: A
7852 Able was I ere I saw Elba.
7853 0: Able was I ere I saw Elba.
7854 1: <unset>
7855 2: <unset>
7856 3: Able was I ere I saw Elba
7857 4: A
7858 *** Failers
7859No match
7860 The quick brown fox
7861No match
7862
7863/(?=(\w+))\1:/I
7864Capturing subpattern count = 1
7865Max back reference = 1
7866No options
7867No first char
7868Need char = ':'
7869 abcd:
7870 0: abcd:
7871 1: abcd
7872
7873/(?=(?'abc'\w+))\k<abc>:/I
7874Capturing subpattern count = 1
7875Max back reference = 1
7876Named capturing subpatterns:
7877 abc 1
7878No options
7879No first char
7880Need char = ':'
7881 abcd:
7882 0: abcd:
7883 1: abcd
7884
7885/(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7886 adaa
7887 0: adaa
7888 1: a
7889 2: d
7890 ** Failers
7891No match
7892 addd
7893No match
7894 adbb
7895No match
7896
7897/(?'abc'a|b)(?<abc>d|e)(?&abc){2}/J
7898 bdaa
7899 0: bdaa
7900 1: b
7901 2: d
7902 bdab
7903 0: bdab
7904 1: b
7905 2: d
7906 ** Failers
7907No match
7908 bddd
7909No match
7910
7911/(?(<bc))/
7912Failed: malformed number or name after (?( at offset 6
7913
7914/(?(''))/
7915Failed: assertion expected after (?( at offset 4
7916
7917/(?('R')stuff)/
7918Failed: reference to non-existent subpattern at offset 7
7919
7920/((abc (?(R) (?(R1)1) (?(R2)2) X | (?1) (?2) (?R) ))) /x
7921 abcabc1Xabc2XabcXabcabc
7922 0: abcabc1Xabc2XabcX
7923 1: abcabc1Xabc2XabcX
7924 2: abcabc1Xabc2XabcX
7925
7926/(?<A> (?'B' abc (?(R) (?(R&A)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7927 abcabc1Xabc2XabcXabcabc
7928 0: abcabc1Xabc2XabcX
7929 1: abcabc1Xabc2XabcX
7930 2: abcabc1Xabc2XabcX
7931
7932/(?<A> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7933Failed: reference to non-existent subpattern at offset 29
7934
7935/(?<1> (?'B' abc (?(R) (?(R&1)1) (?(R&B)2) X | (?1) (?2) (?R) ))) /x
7936 abcabc1Xabc2XabcXabcabc
7937 0: abcabc1Xabc2XabcX
7938 1: abcabc1Xabc2XabcX
7939 2: abcabc1Xabc2XabcX
7940
7941/^(?(DEFINE) abc | xyz ) /x
7942Failed: DEFINE group contains more than one branch at offset 22
7943
7944/(?(DEFINE) abc) xyz/xI
7945Capturing subpattern count = 0
7946Options: extended
7947First char = 'x'
7948Need char = 'z'
7949
7950/(a|)*\d/
7951 \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7952No match
7953 \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa4
7954Matched, but too many substrings
7955
7956/^a.b/<lf>
7957 a\rb
7958 0: a\x0db
7959 a\nb\<cr>
7960 0: a\x0ab
7961 a\x85b\<anycrlf>
7962 0: a\x85b
7963 ** Failers
7964No match
7965 a\nb
7966No match
7967 a\nb\<any>
7968No match
7969 a\rb\<cr>
7970No match
7971 a\rb\<any>
7972No match
7973 a\x85b\<any>
7974No match
7975 a\rb\<anycrlf>
7976No match
7977
7978/^abc./mgx<any>
7979 abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x85abc7 JUNK
7980 0: abc1
7981 0: abc2
7982 0: abc3
7983 0: abc4
7984 0: abc5
7985 0: abc6
7986 0: abc7
7987
7988/abc.$/mgx<any>
7989 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc7 abc9
7990 0: abc1
7991 0: abc2
7992 0: abc3
7993 0: abc4
7994 0: abc5
7995 0: abc6
7996 0: abc9
7997
7998/a/<cr><any>
7999
8000/a/<any><crlf>
8001Failed: inconsistent NEWLINE options at offset 0
8002
8003/^a\Rb/<bsr_unicode>
8004 a\nb
8005 0: a\x0ab
8006 a\rb
8007 0: a\x0db
8008 a\r\nb
8009 0: a\x0d\x0ab
8010 a\x0bb
8011 0: a\x0bb
8012 a\x0cb
8013 0: a\x0cb
8014 a\x85b
8015 0: a\x85b
8016 ** Failers
8017No match
8018 a\n\rb
8019No match
8020
8021/^a\R*b/<bsr_unicode>
8022 ab
8023 0: ab
8024 a\nb
8025 0: a\x0ab
8026 a\rb
8027 0: a\x0db
8028 a\r\nb
8029 0: a\x0d\x0ab
8030 a\x0bb
8031 0: a\x0bb
8032 a\x0cb
8033 0: a\x0cb
8034 a\x85b
8035 0: a\x85b
8036 a\n\rb
8037 0: a\x0a\x0db
8038 a\n\r\x85\x0cb
8039 0: a\x0a\x0d\x85\x0cb
8040
8041/^a\R+b/<bsr_unicode>
8042 a\nb
8043 0: a\x0ab
8044 a\rb
8045 0: a\x0db
8046 a\r\nb
8047 0: a\x0d\x0ab
8048 a\x0bb
8049 0: a\x0bb
8050 a\x0cb
8051 0: a\x0cb
8052 a\x85b
8053 0: a\x85b
8054 a\n\rb
8055 0: a\x0a\x0db
8056 a\n\r\x85\x0cb
8057 0: a\x0a\x0d\x85\x0cb
8058 ** Failers
8059No match
8060 ab
8061No match
8062
8063/^a\R{1,3}b/<bsr_unicode>
8064 a\nb
8065 0: a\x0ab
8066 a\n\rb
8067 0: a\x0a\x0db
8068 a\n\r\x85b
8069 0: a\x0a\x0d\x85b
8070 a\r\n\r\nb
8071 0: a\x0d\x0a\x0d\x0ab
8072 a\r\n\r\n\r\nb
8073 0: a\x0d\x0a\x0d\x0a\x0d\x0ab
8074 a\n\r\n\rb
8075 0: a\x0a\x0d\x0a\x0db
8076 a\n\n\r\nb
8077 0: a\x0a\x0a\x0d\x0ab
8078 ** Failers
8079No match
8080 a\n\n\n\rb
8081No match
8082 a\r
8083No match
8084
8085/^a[\R]b/<bsr_unicode>
8086 aRb
8087 0: aRb
8088 ** Failers
8089No match
8090 a\nb
8091No match
8092
8093/(?&abc)X(?<abc>P)/I
8094Capturing subpattern count = 1
8095Named capturing subpatterns:
8096 abc 1
8097No options
8098No first char
8099Need char = 'P'
8100 abcPXP123
8101 0: PXP
8102 1: P
8103
8104/(?1)X(?<abc>P)/I
8105Capturing subpattern count = 1
8106Named capturing subpatterns:
8107 abc 1
8108No options
8109No first char
8110Need char = 'P'
8111 abcPXP123
8112 0: PXP
8113 1: P
8114
8115/(?:a(?&abc)b)*(?<abc>x)/
8116 123axbaxbaxbx456
8117 0: axbaxbaxbx
8118 1: x
8119 123axbaxbaxb456
8120 0: x
8121 1: x
8122
8123/(?:a(?&abc)b){1,5}(?<abc>x)/
8124 123axbaxbaxbx456
8125 0: axbaxbaxbx
8126 1: x
8127
8128/(?:a(?&abc)b){2,5}(?<abc>x)/
8129 123axbaxbaxbx456
8130 0: axbaxbaxbx
8131 1: x
8132
8133/(?:a(?&abc)b){2,}(?<abc>x)/
8134 123axbaxbaxbx456
8135 0: axbaxbaxbx
8136 1: x
8137
8138/(abc)(?i:(?1))/
8139 defabcabcxyz
8140 0: abcabc
8141 1: abc
8142 DEFabcABCXYZ
8143No match
8144
8145/(abc)(?:(?i)(?1))/
8146 defabcabcxyz
8147 0: abcabc
8148 1: abc
8149 DEFabcABCXYZ
8150No match
8151
8152/^(a)\g-2/
8153Failed: reference to non-existent subpattern at offset 7
8154
8155/^(a)\g/
8156Failed: a numbered reference must not be zero at offset 5
8157
8158/^(a)\g{0}/
8159Failed: a numbered reference must not be zero at offset 8
8160
8161/^(a)\g{3/
8162Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 8
8163
8164/^(a)\g{4a}/
8165Failed: reference to non-existent subpattern at offset 9
8166
8167/^a.b/<lf>
8168 a\rb
8169 0: a\x0db
8170 *** Failers
8171No match
8172 a\nb
8173No match
8174
8175/.+foo/
8176 afoo
8177 0: afoo
8178 ** Failers
8179No match
8180 \r\nfoo
8181No match
8182 \nfoo
8183No match
8184
8185/.+foo/<crlf>
8186 afoo
8187 0: afoo
8188 \nfoo
8189 0: \x0afoo
8190 ** Failers
8191No match
8192 \r\nfoo
8193No match
8194
8195/.+foo/<any>
8196 afoo
8197 0: afoo
8198 ** Failers
8199No match
8200 \nfoo
8201No match
8202 \r\nfoo
8203No match
8204
8205/.+foo/s
8206 afoo
8207 0: afoo
8208 \r\nfoo
8209 0: \x0d\x0afoo
8210 \nfoo
8211 0: \x0afoo
8212
8213/^$/mg<any>
8214 abc\r\rxyz
8215 0:
8216 abc\n\rxyz
8217 0:
8218 ** Failers
8219No match
8220 abc\r\nxyz
8221No match
8222
8223/(?m)^$/<any>g+
8224 abc\r\n\r\n
8225 0:
8226 0+ \x0d\x0a
8227
8228/(?m)^$|^\r\n/<any>g+
8229 abc\r\n\r\n
8230 0:
8231 0+ \x0d\x0a
8232 0: \x0d\x0a
8233 0+
8234
8235/(?m)$/<any>g+
8236 abc\r\n\r\n
8237 0:
8238 0+ \x0d\x0a\x0d\x0a
8239 0:
8240 0+ \x0d\x0a
8241 0:
8242 0+
8243
8244/abc.$/mgx<anycrlf>
8245 abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x85 abc9
8246 0: abc1
8247 0: abc4
8248 0: abc5
8249 0: abc9
8250
8251/^X/m
8252 XABC
8253 0: X
8254 ** Failers
8255No match
8256 XABC\B
8257No match
8258
8259/(ab|c)(?-1)/BZ
8260------------------------------------------------------------------
8261 Bra
8262 CBra 1
8263 ab
8264 Alt
8265 c
8266 Ket
8267 Recurse
8268 Ket
8269 End
8270------------------------------------------------------------------
8271 abc
8272 0: abc
8273 1: ab
8274
8275/xy(?+1)(abc)/BZ
8276------------------------------------------------------------------
8277 Bra
8278 xy
8279 Recurse
8280 CBra 1
8281 abc
8282 Ket
8283 Ket
8284 End
8285------------------------------------------------------------------
8286 xyabcabc
8287 0: xyabcabc
8288 1: abc
8289 ** Failers
8290No match
8291 xyabc
8292No match
8293
8294/x(?-0)y/
8295Failed: a numbered reference must not be zero at offset 5
8296
8297/x(?-1)y/
8298Failed: reference to non-existent subpattern at offset 5
8299
8300/x(?+0)y/
8301Failed: a numbered reference must not be zero at offset 5
8302
8303/x(?+1)y/
8304Failed: reference to non-existent subpattern at offset 5
8305
8306/^(abc)?(?(-1)X|Y)/BZ
8307------------------------------------------------------------------
8308 Bra
8309 ^
8310 Brazero
8311 CBra 1
8312 abc
8313 Ket
8314 Cond
8315 1 Cond ref
8316 X
8317 Alt
8318 Y
8319 Ket
8320 Ket
8321 End
8322------------------------------------------------------------------
8323 abcX
8324 0: abcX
8325 1: abc
8326 Y
8327 0: Y
8328 ** Failers
8329No match
8330 abcY
8331No match
8332
8333/^((?(+1)X|Y)(abc))+/BZ
8334------------------------------------------------------------------
8335 Bra
8336 ^
8337 CBra 1
8338 Cond
8339 2 Cond ref
8340 X
8341 Alt
8342 Y
8343 Ket
8344 CBra 2
8345 abc
8346 Ket
8347 KetRmax
8348 Ket
8349 End
8350------------------------------------------------------------------
8351 YabcXabc
8352 0: YabcXabc
8353 1: Xabc
8354 2: abc
8355 YabcXabcXabc
8356 0: YabcXabcXabc
8357 1: Xabc
8358 2: abc
8359 ** Failers
8360No match
8361 XabcXabc
8362No match
8363
8364/(?(-1)a)/BZ
8365Failed: reference to non-existent subpattern at offset 6
8366
8367/((?(-1)a))/BZ
8368------------------------------------------------------------------
8369 Bra
8370 CBra 1
8371 Cond
8372 1 Cond ref
8373 a
8374 Ket
8375 Ket
8376 Ket
8377 End
8378------------------------------------------------------------------
8379
8380/((?(-2)a))/BZ
8381Failed: reference to non-existent subpattern at offset 7
8382
8383/^(?(+1)X|Y)(.)/BZ
8384------------------------------------------------------------------
8385 Bra
8386 ^
8387 Cond
8388 1 Cond ref
8389 X
8390 Alt
8391 Y
8392 Ket
8393 CBra 1
8394 Any
8395 Ket
8396 Ket
8397 End
8398------------------------------------------------------------------
8399 Y!
8400 0: Y!
8401 1: !
8402
8403/(?<A>tom|bon)-\k{A}/
8404 tom-tom
8405 0: tom-tom
8406 1: tom
8407 bon-bon
8408 0: bon-bon
8409 1: bon
8410 ** Failers
8411No match
8412 tom-bon
8413No match
8414
8415/\g{A/
8416Failed: syntax error in subpattern name (missing terminator) at offset 4
8417
8418/(?|(abc)|(xyz))/BZ
8419------------------------------------------------------------------
8420 Bra
8421 Bra
8422 CBra 1
8423 abc
8424 Ket
8425 Alt
8426 CBra 1
8427 xyz
8428 Ket
8429 Ket
8430 Ket
8431 End
8432------------------------------------------------------------------
8433 >abc<
8434 0: abc
8435 1: abc
8436 >xyz<
8437 0: xyz
8438 1: xyz
8439
8440/(x)(?|(abc)|(xyz))(x)/BZ
8441------------------------------------------------------------------
8442 Bra
8443 CBra 1
8444 x
8445 Ket
8446 Bra
8447 CBra 2
8448 abc
8449 Ket
8450 Alt
8451 CBra 2
8452 xyz
8453 Ket
8454 Ket
8455 CBra 3
8456 x
8457 Ket
8458 Ket
8459 End
8460------------------------------------------------------------------
8461 xabcx
8462 0: xabcx
8463 1: x
8464 2: abc
8465 3: x
8466 xxyzx
8467 0: xxyzx
8468 1: x
8469 2: xyz
8470 3: x
8471
8472/(x)(?|(abc)(pqr)|(xyz))(x)/BZ
8473------------------------------------------------------------------
8474 Bra
8475 CBra 1
8476 x
8477 Ket
8478 Bra
8479 CBra 2
8480 abc
8481 Ket
8482 CBra 3
8483 pqr
8484 Ket
8485 Alt
8486 CBra 2
8487 xyz
8488 Ket
8489 Ket
8490 CBra 4
8491 x
8492 Ket
8493 Ket
8494 End
8495------------------------------------------------------------------
8496 xabcpqrx
8497 0: xabcpqrx
8498 1: x
8499 2: abc
8500 3: pqr
8501 4: x
8502 xxyzx
8503 0: xxyzx
8504 1: x
8505 2: xyz
8506 3: <unset>
8507 4: x
8508
8509/[\h]/BZ
8510------------------------------------------------------------------
8511 Bra
8512 [\x09 \xa0]
8513 Ket
8514 End
8515------------------------------------------------------------------
8516 >\x09<
8517 0: \x09
8518
8519/[\h]+/BZ
8520------------------------------------------------------------------
8521 Bra
8522 [\x09 \xa0]+
8523 Ket
8524 End
8525------------------------------------------------------------------
8526 >\x09\x20\xa0<
8527 0: \x09 \xa0
8528
8529/[\v]/BZ
8530------------------------------------------------------------------
8531 Bra
8532 [\x0a-\x0d\x85]
8533 Ket
8534 End
8535------------------------------------------------------------------
8536
8537/[\H]/BZ
8538------------------------------------------------------------------
8539 Bra
8540 [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]
8541 Ket
8542 End
8543------------------------------------------------------------------
8544
8545/[^\h]/BZ
8546------------------------------------------------------------------
8547 Bra
8548 [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)
8549 Ket
8550 End
8551------------------------------------------------------------------
8552
8553/[\V]/BZ
8554------------------------------------------------------------------
8555 Bra
8556 [\x00-\x09\x0e-\x84\x86-\xff]
8557 Ket
8558 End
8559------------------------------------------------------------------
8560
8561/[\x0a\V]/BZ
8562------------------------------------------------------------------
8563 Bra
8564 [\x00-\x0a\x0e-\x84\x86-\xff]
8565 Ket
8566 End
8567------------------------------------------------------------------
8568
8569/\H++X/BZ
8570------------------------------------------------------------------
8571 Bra
8572 \H++
8573 X
8574 Ket
8575 End
8576------------------------------------------------------------------
8577 ** Failers
8578No match
8579 XXXX
8580No match
8581
8582/\H+\hY/BZ
8583------------------------------------------------------------------
8584 Bra
8585 \H++
8586 \h
8587 Y
8588 Ket
8589 End
8590------------------------------------------------------------------
8591 XXXX Y
8592 0: XXXX Y
8593
8594/\H+ Y/BZ
8595------------------------------------------------------------------
8596 Bra
8597 \H++
8598 Y
8599 Ket
8600 End
8601------------------------------------------------------------------
8602
8603/\h+A/BZ
8604------------------------------------------------------------------
8605 Bra
8606 \h++
8607 A
8608 Ket
8609 End
8610------------------------------------------------------------------
8611
8612/\v*B/BZ
8613------------------------------------------------------------------
8614 Bra
8615 \v*+
8616 B
8617 Ket
8618 End
8619------------------------------------------------------------------
8620
8621/\V+\x0a/BZ
8622------------------------------------------------------------------
8623 Bra
8624 \V++
8625 \x0a
8626 Ket
8627 End
8628------------------------------------------------------------------
8629
8630/A+\h/BZ
8631------------------------------------------------------------------
8632 Bra
8633 A++
8634 \h
8635 Ket
8636 End
8637------------------------------------------------------------------
8638
8639/ *\H/BZ
8640------------------------------------------------------------------
8641 Bra
8642 *+
8643 \H
8644 Ket
8645 End
8646------------------------------------------------------------------
8647
8648/A*\v/BZ
8649------------------------------------------------------------------
8650 Bra
8651 A*+
8652 \v
8653 Ket
8654 End
8655------------------------------------------------------------------
8656
8657/\x0b*\V/BZ
8658------------------------------------------------------------------
8659 Bra
8660 \x0b*+
8661 \V
8662 Ket
8663 End
8664------------------------------------------------------------------
8665
8666/\d+\h/BZ
8667------------------------------------------------------------------
8668 Bra
8669 \d++
8670 \h
8671 Ket
8672 End
8673------------------------------------------------------------------
8674
8675/\d*\v/BZ
8676------------------------------------------------------------------
8677 Bra
8678 \d*+
8679 \v
8680 Ket
8681 End
8682------------------------------------------------------------------
8683
8684/S+\h\S+\v/BZ
8685------------------------------------------------------------------
8686 Bra
8687 S++
8688 \h
8689 \S++
8690 \v
8691 Ket
8692 End
8693------------------------------------------------------------------
8694
8695/\w{3,}\h\w+\v/BZ
8696------------------------------------------------------------------
8697 Bra
8698 \w{3}
8699 \w*+
8700 \h
8701 \w++
8702 \v
8703 Ket
8704 End
8705------------------------------------------------------------------
8706
8707/\h+\d\h+\w\h+\S\h+\H/BZ
8708------------------------------------------------------------------
8709 Bra
8710 \h++
8711 \d
8712 \h++
8713 \w
8714 \h++
8715 \S
8716 \h++
8717 \H
8718 Ket
8719 End
8720------------------------------------------------------------------
8721
8722/\v+\d\v+\w\v+\S\v+\V/BZ
8723------------------------------------------------------------------
8724 Bra
8725 \v++
8726 \d
8727 \v++
8728 \w
8729 \v+
8730 \S
8731 \v++
8732 \V
8733 Ket
8734 End
8735------------------------------------------------------------------
8736
8737/\H+\h\H+\d/BZ
8738------------------------------------------------------------------
8739 Bra
8740 \H++
8741 \h
8742 \H+
8743 \d
8744 Ket
8745 End
8746------------------------------------------------------------------
8747
8748/\V+\v\V+\w/BZ
8749------------------------------------------------------------------
8750 Bra
8751 \V++
8752 \v
8753 \V+
8754 \w
8755 Ket
8756 End
8757------------------------------------------------------------------
8758
8759/\( (?: [^()]* | (?R) )* \)/x
8760\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)
8761 0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8762
8763/[\E]AAA/
8764Failed: missing terminating ] for character class at offset 7
8765
8766/[\Q\E]AAA/
8767Failed: missing terminating ] for character class at offset 9
8768
8769/[^\E]AAA/
8770Failed: missing terminating ] for character class at offset 8
8771
8772/[^\Q\E]AAA/
8773Failed: missing terminating ] for character class at offset 10
8774
8775/[\E^]AAA/
8776Failed: missing terminating ] for character class at offset 8
8777
8778/[\Q\E^]AAA/
8779Failed: missing terminating ] for character class at offset 10
8780
8781/A(*PRUNE)B(*SKIP)C(*THEN)D(*COMMIT)E(*F)F(*FAIL)G(?!)H(*ACCEPT)I/BZ
8782------------------------------------------------------------------
8783 Bra
8784 A
8785 *PRUNE
8786 B
8787 *SKIP
8788 C
8789 *THEN
8790 D
8791 *COMMIT
8792 E
8793 *FAIL
8794 F
8795 *FAIL
8796 G
8797 *FAIL
8798 H
8799 *ACCEPT
8800 I
8801 Ket
8802 End
8803------------------------------------------------------------------
8804
8805/^a+(*FAIL)/C
8806 aaaaaa
8807--->aaaaaa
8808 +0 ^ ^
8809 +1 ^ a+
8810 +3 ^ ^ (*FAIL)
8811 +3 ^ ^ (*FAIL)
8812 +3 ^ ^ (*FAIL)
8813 +3 ^ ^ (*FAIL)
8814 +3 ^ ^ (*FAIL)
8815 +3 ^^ (*FAIL)
8816No match
8817
8818/a+b?c+(*FAIL)/C
8819 aaabccc
8820--->aaabccc
8821 +0 ^ a+
8822 +2 ^ ^ b?
8823 +4 ^ ^ c+
8824 +6 ^ ^ (*FAIL)
8825 +6 ^ ^ (*FAIL)
8826 +6 ^ ^ (*FAIL)
8827 +4 ^ ^ c+
8828 +2 ^ ^ b?
8829 +4 ^ ^ c+
8830 +2 ^^ b?
8831 +4 ^^ c+
8832 +0 ^ a+
8833 +2 ^ ^ b?
8834 +4 ^ ^ c+
8835 +6 ^ ^ (*FAIL)
8836 +6 ^ ^ (*FAIL)
8837 +6 ^ ^ (*FAIL)
8838 +4 ^ ^ c+
8839 +2 ^^ b?
8840 +4 ^^ c+
8841 +0 ^ a+
8842 +2 ^^ b?
8843 +4 ^ ^ c+
8844 +6 ^ ^ (*FAIL)
8845 +6 ^ ^ (*FAIL)
8846 +6 ^ ^ (*FAIL)
8847 +4 ^^ c+
8848No match
8849
8850/a+b?(*PRUNE)c+(*FAIL)/C
8851 aaabccc
8852--->aaabccc
8853 +0 ^ a+
8854 +2 ^ ^ b?
8855 +4 ^ ^ (*PRUNE)
8856+12 ^ ^ c+
8857+14 ^ ^ (*FAIL)
8858+14 ^ ^ (*FAIL)
8859+14 ^ ^ (*FAIL)
8860 +0 ^ a+
8861 +2 ^ ^ b?
8862 +4 ^ ^ (*PRUNE)
8863+12 ^ ^ c+
8864+14 ^ ^ (*FAIL)
8865+14 ^ ^ (*FAIL)
8866+14 ^ ^ (*FAIL)
8867 +0 ^ a+
8868 +2 ^^ b?
8869 +4 ^ ^ (*PRUNE)
8870+12 ^ ^ c+
8871+14 ^ ^ (*FAIL)
8872+14 ^ ^ (*FAIL)
8873+14 ^ ^ (*FAIL)
8874No match
8875
8876/a+b?(*COMMIT)c+(*FAIL)/C
8877 aaabccc
8878--->aaabccc
8879 +0 ^ a+
8880 +2 ^ ^ b?
8881 +4 ^ ^ (*COMMIT)
8882+13 ^ ^ c+
8883+15 ^ ^ (*FAIL)
8884+15 ^ ^ (*FAIL)
8885+15 ^ ^ (*FAIL)
8886No match
8887
8888/a+b?(*SKIP)c+(*FAIL)/C
8889 aaabcccaaabccc
8890--->aaabcccaaabccc
8891 +0 ^ a+
8892 +2 ^ ^ b?
8893 +4 ^ ^ (*SKIP)
8894+11 ^ ^ c+
8895+13 ^ ^ (*FAIL)
8896+13 ^ ^ (*FAIL)
8897+13 ^ ^ (*FAIL)
8898 +0 ^ a+
8899 +2 ^ ^ b?
8900 +4 ^ ^ (*SKIP)
8901+11 ^ ^ c+
8902+13 ^ ^ (*FAIL)
8903+13 ^ ^ (*FAIL)
8904+13 ^ ^ (*FAIL)
8905No match
8906
8907/a+b?(*THEN)c+(*FAIL)/C
8908 aaabccc
8909--->aaabccc
8910 +0 ^ a+
8911 +2 ^ ^ b?
8912 +4 ^ ^ (*THEN)
8913+11 ^ ^ c+
8914+13 ^ ^ (*FAIL)
8915+13 ^ ^ (*FAIL)
8916+13 ^ ^ (*FAIL)
8917 +0 ^ a+
8918 +2 ^ ^ b?
8919 +4 ^ ^ (*THEN)
8920+11 ^ ^ c+
8921+13 ^ ^ (*FAIL)
8922+13 ^ ^ (*FAIL)
8923+13 ^ ^ (*FAIL)
8924 +0 ^ a+
8925 +2 ^^ b?
8926 +4 ^ ^ (*THEN)
8927+11 ^ ^ c+
8928+13 ^ ^ (*FAIL)
8929+13 ^ ^ (*FAIL)
8930+13 ^ ^ (*FAIL)
8931No match
8932
8933/a(*MARK)b/
8934Failed: (*MARK) must have an argument at offset 7
8935
8936/(?i:A{1,}\6666666666)/
8937Failed: number is too big at offset 19
8938
8939/\g6666666666/
8940Failed: number is too big at offset 11
8941
8942/[\g6666666666]/BZ
8943------------------------------------------------------------------
8944 Bra
8945 [6g]
8946 Ket
8947 End
8948------------------------------------------------------------------
8949
8950/(?1)\c[/
8951Failed: reference to non-existent subpattern at offset 3
8952
8953/.+A/<crlf>
8954 \r\nA
8955No match
8956
8957/\nA/<crlf>
8958 \r\nA
8959 0: \x0aA
8960
8961/[\r\n]A/<crlf>
8962 \r\nA
8963 0: \x0aA
8964
8965/(\r|\n)A/<crlf>
8966 \r\nA
8967 0: \x0aA
8968 1: \x0a
8969
8970/a(*CR)b/
8971Failed: (*VERB) not recognized at offset 5
8972
8973/(*CR)a.b/
8974 a\nb
8975 0: a\x0ab
8976 ** Failers
8977No match
8978 a\rb
8979No match
8980
8981/(*CR)a.b/<lf>
8982 a\nb
8983 0: a\x0ab
8984 ** Failers
8985No match
8986 a\rb
8987No match
8988
8989/(*LF)a.b/<CRLF>
8990 a\rb
8991 0: a\x0db
8992 ** Failers
8993No match
8994 a\nb
8995No match
8996
8997/(*CRLF)a.b/
8998 a\rb
8999 0: a\x0db
9000 a\nb
9001 0: a\x0ab
9002 ** Failers
9003No match
9004 a\r\nb
9005No match
9006
9007/(*ANYCRLF)a.b/<CR>
9008 ** Failers
9009No match
9010 a\rb
9011No match
9012 a\nb
9013No match
9014 a\r\nb
9015No match
9016
9017/(*ANY)a.b/<cr>
9018 ** Failers
9019No match
9020 a\rb
9021No match
9022 a\nb
9023No match
9024 a\r\nb
9025No match
9026 a\x85b
9027No match
9028
9029/(*ANY).*/g
9030 abc\r\ndef
9031 0: abc
9032 0:
9033 0: def
9034 0:
9035
9036/(*ANYCRLF).*/g
9037 abc\r\ndef
9038 0: abc
9039 0:
9040 0: def
9041 0:
9042
9043/(*CRLF).*/g
9044 abc\r\ndef
9045 0: abc
9046 0:
9047 0: def
9048 0:
9049
9050/a\Rb/I<bsr_anycrlf>
9051Capturing subpattern count = 0
9052Options: bsr_anycrlf
9053First char = 'a'
9054Need char = 'b'
9055 a\rb
9056 0: a\x0db
9057 a\nb
9058 0: a\x0ab
9059 a\r\nb
9060 0: a\x0d\x0ab
9061 ** Failers
9062No match
9063 a\x85b
9064No match
9065 a\x0bb
9066No match
9067
9068/a\Rb/I<bsr_unicode>
9069Capturing subpattern count = 0
9070Options: bsr_unicode
9071First char = 'a'
9072Need char = 'b'
9073 a\rb
9074 0: a\x0db
9075 a\nb
9076 0: a\x0ab
9077 a\r\nb
9078 0: a\x0d\x0ab
9079 a\x85b
9080 0: a\x85b
9081 a\x0bb
9082 0: a\x0bb
9083 ** Failers
9084No match
9085 a\x85b\<bsr_anycrlf>
9086No match
9087 a\x0bb\<bsr_anycrlf>
9088No match
9089
9090/a\R?b/I<bsr_anycrlf>
9091Capturing subpattern count = 0
9092Options: bsr_anycrlf
9093First char = 'a'
9094Need char = 'b'
9095 a\rb
9096 0: a\x0db
9097 a\nb
9098 0: a\x0ab
9099 a\r\nb
9100 0: a\x0d\x0ab
9101 ** Failers
9102No match
9103 a\x85b
9104No match
9105 a\x0bb
9106No match
9107
9108/a\R?b/I<bsr_unicode>
9109Capturing subpattern count = 0
9110Options: bsr_unicode
9111First char = 'a'
9112Need char = 'b'
9113 a\rb
9114 0: a\x0db
9115 a\nb
9116 0: a\x0ab
9117 a\r\nb
9118 0: a\x0d\x0ab
9119 a\x85b
9120 0: a\x85b
9121 a\x0bb
9122 0: a\x0bb
9123 ** Failers
9124No match
9125 a\x85b\<bsr_anycrlf>
9126No match
9127 a\x0bb\<bsr_anycrlf>
9128No match
9129
9130/a\R{2,4}b/I<bsr_anycrlf>
9131Capturing subpattern count = 0
9132Options: bsr_anycrlf
9133First char = 'a'
9134Need char = 'b'
9135 a\r\n\nb
9136 0: a\x0d\x0a\x0ab
9137 a\n\r\rb
9138 0: a\x0a\x0d\x0db
9139 a\r\n\r\n\r\n\r\nb
9140 0: a\x0d\x0a\x0d\x0a\x0d\x0a\x0d\x0ab
9141 ** Failers
9142No match
9143 a\x85\85b
9144No match
9145 a\x0b\0bb
9146No match
9147
9148/a\R{2,4}b/I<bsr_unicode>
9149Capturing subpattern count = 0
9150Options: bsr_unicode
9151First char = 'a'
9152Need char = 'b'
9153 a\r\rb
9154 0: a\x0d\x0db
9155 a\n\n\nb
9156 0: a\x0a\x0a\x0ab
9157 a\r\n\n\r\rb
9158 0: a\x0d\x0a\x0a\x0d\x0db
9159 a\x85\85b
9160No match
9161 a\x0b\0bb
9162No match
9163 ** Failers
9164No match
9165 a\r\r\r\r\rb
9166No match
9167 a\x85\85b\<bsr_anycrlf>
9168No match
9169 a\x0b\0bb\<bsr_anycrlf>
9170No match
9171
9172/(*BSR_ANYCRLF)a\Rb/I
9173Capturing subpattern count = 0
9174Options: bsr_anycrlf
9175First char = 'a'
9176Need char = 'b'
9177 a\nb
9178 0: a\x0ab
9179 a\rb
9180 0: a\x0db
9181
9182/(*BSR_UNICODE)a\Rb/I
9183Capturing subpattern count = 0
9184Options: bsr_unicode
9185First char = 'a'
9186Need char = 'b'
9187 a\x85b
9188 0: a\x85b
9189
9190/(*BSR_ANYCRLF)(*CRLF)a\Rb/I
9191Capturing subpattern count = 0
9192Options: bsr_anycrlf
9193Forced newline sequence: CRLF
9194First char = 'a'
9195Need char = 'b'
9196 a\nb
9197 0: a\x0ab
9198 a\rb
9199 0: a\x0db
9200
9201/(*CRLF)(*BSR_UNICODE)a\Rb/I
9202Capturing subpattern count = 0
9203Options: bsr_unicode
9204Forced newline sequence: CRLF
9205First char = 'a'
9206Need char = 'b'
9207 a\x85b
9208 0: a\x85b
9209
9210/(*CRLF)(*BSR_ANYCRLF)(*CR)ab/I
9211Capturing subpattern count = 0
9212Options: bsr_anycrlf
9213Forced newline sequence: CR
9214First char = 'a'
9215Need char = 'b'
9216
9217/(?<a>)(?&)/
9218Failed: subpattern name expected at offset 9
9219
9220/(?<abc>)(?&a)/
9221Failed: reference to non-existent subpattern at offset 12
9222
9223/(?<a>)(?&aaaaaaaaaaaaaaaaaaaaaaa)/
9224Failed: reference to non-existent subpattern at offset 32
9225
9226/(?+-a)/
9227Failed: digit expected after (?+ at offset 3
9228
9229/(?-+a)/
9230Failed: unrecognized character after (? or (?- at offset 3
9231
9232/(?(-1))/
9233Failed: reference to non-existent subpattern at offset 6
9234
9235/(?(+10))/
9236Failed: reference to non-existent subpattern at offset 7
9237
9238/(?(10))/
9239Failed: reference to non-existent subpattern at offset 6
9240
9241/(?(+2))()()/
9242
9243/(?(2))()()/
9244
9245/\k''/
9246Failed: subpattern name expected at offset 3
9247
9248/\k<>/
9249Failed: subpattern name expected at offset 3
9250
9251/\k{}/
9252Failed: subpattern name expected at offset 3
9253
9254/\k/
9255Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9256
9257/\kabc/
9258Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9259
9260/(?P=)/
9261Failed: subpattern name expected at offset 4
9262
9263/(?P>)/
9264Failed: subpattern name expected at offset 4
9265
9266/(?!\w)(?R)/
9267Failed: recursive call could loop indefinitely at offset 9
9268
9269/(?=\w)(?R)/
9270Failed: recursive call could loop indefinitely at offset 9
9271
9272/(?<!\w)(?R)/
9273Failed: recursive call could loop indefinitely at offset 10
9274
9275/(?<=\w)(?R)/
9276Failed: recursive call could loop indefinitely at offset 10
9277
9278/[[:foo:]]/
9279Failed: unknown POSIX class name at offset 3
9280
9281/[[:1234:]]/
9282Failed: unknown POSIX class name at offset 3
9283
9284/[[:f\oo:]]/
9285Failed: unknown POSIX class name at offset 3
9286
9287/[[: :]]/
9288Failed: unknown POSIX class name at offset 3
9289
9290/[[:...:]]/
9291Failed: unknown POSIX class name at offset 3
9292
9293/[[:l\ower:]]/
9294Failed: unknown POSIX class name at offset 3
9295
9296/[[:abc\:]]/
9297Failed: unknown POSIX class name at offset 3
9298
9299/[abc[:x\]pqr:]]/
9300Failed: unknown POSIX class name at offset 6
9301
9302/[[:a\dz:]]/
9303Failed: unknown POSIX class name at offset 3
9304
9305/(^(a|b\g<-1'c))/
9306Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9307
9308/^(?+1)(?<a>x|y){0}z/
9309 xzxx
9310 0: xz
9311 yzyy
9312 0: yz
9313 ** Failers
9314No match
9315 xxz
9316No match
9317
9318/(\3)(\1)(a)/
9319 cat
9320No match
9321
9322/(\3)(\1)(a)/<JS>
9323 cat
9324 0: a
9325 1:
9326 2:
9327 3: a
9328
9329/TA]/
9330 The ACTA] comes
9331 0: TA]
9332
9333/TA]/<JS>
9334Failed: ] is an invalid data character in JavaScript compatibility mode at offset 2
9335
9336/(?2)[]a()b](abc)/
9337Failed: reference to non-existent subpattern at offset 3
9338
9339/(?2)[^]a()b](abc)/
9340Failed: reference to non-existent subpattern at offset 3
9341
9342/(?1)[]a()b](abc)/
9343 abcbabc
9344 0: abcbabc
9345 1: abc
9346 ** Failers
9347No match
9348 abcXabc
9349No match
9350
9351/(?1)[^]a()b](abc)/
9352 abcXabc
9353 0: abcXabc
9354 1: abc
9355 ** Failers
9356No match
9357 abcbabc
9358No match
9359
9360/(?2)[]a()b](abc)(xyz)/
9361 xyzbabcxyz
9362 0: xyzbabcxyz
9363 1: abc
9364 2: xyz
9365
9366/(?&N)[]a(?<N>)](?<M>abc)/
9367Failed: reference to non-existent subpattern at offset 4
9368
9369/(?&N)[]a(?<N>)](abc)/
9370Failed: reference to non-existent subpattern at offset 4
9371
9372/a[]b/
9373Failed: missing terminating ] for character class at offset 4
9374
9375/a[^]b/
9376Failed: missing terminating ] for character class at offset 5
9377
9378/a[]b/<JS>
9379 ** Failers
9380No match
9381 ab
9382No match
9383
9384/a[]+b/<JS>
9385 ** Failers
9386No match
9387 ab
9388No match
9389
9390/a[]*+b/<JS>
9391 ** Failers
9392No match
9393 ab
9394No match
9395
9396/a[^]b/<JS>
9397 aXb
9398 0: aXb
9399 a\nb
9400 0: a\x0ab
9401 ** Failers
9402No match
9403 ab
9404No match
9405
9406/a[^]+b/<JS>
9407 aXb
9408 0: aXb
9409 a\nX\nXb
9410 0: a\x0aX\x0aXb
9411 ** Failers
9412No match
9413 ab
9414No match
9415
9416/a(?!)+b/
9417Failed: nothing to repeat at offset 5
9418
9419/a(*FAIL)+b/
9420Failed: nothing to repeat at offset 8
9421
9422/(abc|pqr|123){0}[xyz]/SI
9423Capturing subpattern count = 1
9424No options
9425No first char
9426No need char
9427Subject length lower bound = 1
9428Starting byte set: x y z
9429
9430/(?(?=.*b)b|^)/CI
9431Capturing subpattern count = 0
9432Options:
9433No first char
9434No need char
9435 adc
9436--->adc
9437 +0 ^ (?(?=.*b)b|^)
9438 +2 ^ (?=.*b)
9439 +5 ^ .*
9440 +7 ^ ^ b
9441 +7 ^ ^ b
9442 +7 ^^ b
9443 +7 ^ b
9444+12 ^ )
9445+13 ^
9446 0:
9447 abc
9448--->abc
9449 +0 ^ (?(?=.*b)b|^)
9450 +2 ^ (?=.*b)
9451 +5 ^ .*
9452 +7 ^ ^ b
9453 +7 ^ ^ b
9454 +7 ^^ b
9455 +8 ^ ^ )
9456 +9 ^ b
9457 +0 ^ (?(?=.*b)b|^)
9458 +2 ^ (?=.*b)
9459 +5 ^ .*
9460 +7 ^ ^ b
9461 +7 ^^ b
9462 +7 ^ b
9463 +8 ^^ )
9464 +9 ^ b
9465+10 ^^ |
9466+13 ^^
9467 0: b
9468
9469/(?(?=b).*b|^d)/I
9470Capturing subpattern count = 0
9471No options
9472No first char
9473No need char
9474
9475/(?(?=.*b).*b|^d)/I
9476Capturing subpattern count = 0
9477No options
9478First char at start or follows newline
9479No need char
9480
9481/a?|b?/P
9482 abc
9483 0: a
9484 ** Failers
9485 0:
9486 ddd\N
9487No match: POSIX code 17: match failed
9488
9489/xyz/C
9490 xyz
9491--->xyz
9492 +0 ^ x
9493 +1 ^^ y
9494 +2 ^ ^ z
9495 +3 ^ ^
9496 0: xyz
9497 abcxyz
9498--->abcxyz
9499 +0 ^ x
9500 +1 ^^ y
9501 +2 ^ ^ z
9502 +3 ^ ^
9503 0: xyz
9504 abcxyz\Y
9505--->abcxyz
9506 +0 ^ x
9507 +0 ^ x
9508 +0 ^ x
9509 +0 ^ x
9510 +1 ^^ y
9511 +2 ^ ^ z
9512 +3 ^ ^
9513 0: xyz
9514 ** Failers
9515No match
9516 abc
9517No match
9518 abc\Y
9519--->abc
9520 +0 ^ x
9521 +0 ^ x
9522 +0 ^ x
9523 +0 ^ x
9524No match
9525 abcxypqr
9526No match
9527 abcxypqr\Y
9528--->abcxypqr
9529 +0 ^ x
9530 +0 ^ x
9531 +0 ^ x
9532 +0 ^ x
9533 +1 ^^ y
9534 +2 ^ ^ z
9535 +0 ^ x
9536 +0 ^ x
9537 +0 ^ x
9538 +0 ^ x
9539 +0 ^ x
9540No match
9541
9542/(*NO_START_OPT)xyz/C
9543 abcxyz
9544--->abcxyz
9545+15 ^ x
9546+15 ^ x
9547+15 ^ x
9548+15 ^ x
9549+16 ^^ y
9550+17 ^ ^ z
9551+18 ^ ^
9552 0: xyz
9553
9554/xyz/CY
9555 abcxyz
9556--->abcxyz
9557 +0 ^ x
9558 +0 ^ x
9559 +0 ^ x
9560 +0 ^ x
9561 +1 ^^ y
9562 +2 ^ ^ z
9563 +3 ^ ^
9564 0: xyz
9565
9566/^"((?(?=[a])[^"])|b)*"$/C
9567 "ab"
9568--->"ab"
9569 +0 ^ ^
9570 +1 ^ "
9571 +2 ^^ ((?(?=[a])[^"])|b)*
9572 +3 ^^ (?(?=[a])[^"])
9573 +5 ^^ (?=[a])
9574 +8 ^^ [a]
9575+11 ^ ^ )
9576+12 ^^ [^"]
9577+16 ^ ^ )
9578+17 ^ ^ |
9579 +3 ^ ^ (?(?=[a])[^"])
9580 +5 ^ ^ (?=[a])
9581 +8 ^ ^ [a]
9582+21 ^ ^ "
9583+18 ^ ^ b
9584+19 ^ ^ )
9585 +3 ^ ^ (?(?=[a])[^"])
9586 +5 ^ ^ (?=[a])
9587 +8 ^ ^ [a]
9588+21 ^ ^ "
9589+22 ^ ^ $
9590+23 ^ ^
9591 0: "ab"
9592 1:
9593
9594/^"((?(?=[a])[^"])|b)*"$/
9595 "ab"
9596 0: "ab"
9597 1:
9598
9599/^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9600Failed: reference to non-existent subpattern at offset 5
9601
9602/^X(?&N)(a)(?|(b)|(q))(c)(d)(?<N>Y)/
9603 XYabcdY
9604 0: XYabcdY
9605 1: a
9606 2: b
9607 3: c
9608 4: d
9609 5: Y
9610
9611/Xa{2,4}b/
9612 X\P
9613Partial match: X
9614 Xa\P
9615Partial match: Xa
9616 Xaa\P
9617Partial match: Xaa
9618 Xaaa\P
9619Partial match: Xaaa
9620 Xaaaa\P
9621Partial match: Xaaaa
9622
9623/Xa{2,4}?b/
9624 X\P
9625Partial match: X
9626 Xa\P
9627Partial match: Xa
9628 Xaa\P
9629Partial match: Xaa
9630 Xaaa\P
9631Partial match: Xaaa
9632 Xaaaa\P
9633Partial match: Xaaaa
9634
9635/Xa{2,4}+b/
9636 X\P
9637Partial match: X
9638 Xa\P
9639Partial match: Xa
9640 Xaa\P
9641Partial match: Xaa
9642 Xaaa\P
9643Partial match: Xaaa
9644 Xaaaa\P
9645Partial match: Xaaaa
9646
9647/X\d{2,4}b/
9648 X\P
9649Partial match: X
9650 X3\P
9651Partial match: X3
9652 X33\P
9653Partial match: X33
9654 X333\P
9655Partial match: X333
9656 X3333\P
9657Partial match: X3333
9658
9659/X\d{2,4}?b/
9660 X\P
9661Partial match: X
9662 X3\P
9663Partial match: X3
9664 X33\P
9665Partial match: X33
9666 X333\P
9667Partial match: X333
9668 X3333\P
9669Partial match: X3333
9670
9671/X\d{2,4}+b/
9672 X\P
9673Partial match: X
9674 X3\P
9675Partial match: X3
9676 X33\P
9677Partial match: X33
9678 X333\P
9679Partial match: X333
9680 X3333\P
9681Partial match: X3333
9682
9683/X\D{2,4}b/
9684 X\P
9685Partial match: X
9686 Xa\P
9687Partial match: Xa
9688 Xaa\P
9689Partial match: Xaa
9690 Xaaa\P
9691Partial match: Xaaa
9692 Xaaaa\P
9693Partial match: Xaaaa
9694
9695/X\D{2,4}?b/
9696 X\P
9697Partial match: X
9698 Xa\P
9699Partial match: Xa
9700 Xaa\P
9701Partial match: Xaa
9702 Xaaa\P
9703Partial match: Xaaa
9704 Xaaaa\P
9705Partial match: Xaaaa
9706
9707/X\D{2,4}+b/
9708 X\P
9709Partial match: X
9710 Xa\P
9711Partial match: Xa
9712 Xaa\P
9713Partial match: Xaa
9714 Xaaa\P
9715Partial match: Xaaa
9716 Xaaaa\P
9717Partial match: Xaaaa
9718
9719/X[abc]{2,4}b/
9720 X\P
9721Partial match: X
9722 Xa\P
9723Partial match: Xa
9724 Xaa\P
9725Partial match: Xaa
9726 Xaaa\P
9727Partial match: Xaaa
9728 Xaaaa\P
9729Partial match: Xaaaa
9730
9731/X[abc]{2,4}?b/
9732 X\P
9733Partial match: X
9734 Xa\P
9735Partial match: Xa
9736 Xaa\P
9737Partial match: Xaa
9738 Xaaa\P
9739Partial match: Xaaa
9740 Xaaaa\P
9741Partial match: Xaaaa
9742
9743/X[abc]{2,4}+b/
9744 X\P
9745Partial match: X
9746 Xa\P
9747Partial match: Xa
9748 Xaa\P
9749Partial match: Xaa
9750 Xaaa\P
9751Partial match: Xaaa
9752 Xaaaa\P
9753Partial match: Xaaaa
9754
9755/X[^a]{2,4}b/
9756 X\P
9757Partial match: X
9758 Xz\P
9759Partial match: Xz
9760 Xzz\P
9761Partial match: Xzz
9762 Xzzz\P
9763Partial match: Xzzz
9764 Xzzzz\P
9765Partial match: Xzzzz
9766
9767/X[^a]{2,4}?b/
9768 X\P
9769Partial match: X
9770 Xz\P
9771Partial match: Xz
9772 Xzz\P
9773Partial match: Xzz
9774 Xzzz\P
9775Partial match: Xzzz
9776 Xzzzz\P
9777Partial match: Xzzzz
9778
9779/X[^a]{2,4}+b/
9780 X\P
9781Partial match: X
9782 Xz\P
9783Partial match: Xz
9784 Xzz\P
9785Partial match: Xzz
9786 Xzzz\P
9787Partial match: Xzzz
9788 Xzzzz\P
9789Partial match: Xzzzz
9790
9791/(Y)X\1{2,4}b/
9792 YX\P
9793Partial match: YX
9794 YXY\P
9795Partial match: YXY
9796 YXYY\P
9797Partial match: YXYY
9798 YXYYY\P
9799Partial match: YXYYY
9800 YXYYYY\P
9801Partial match: YXYYYY
9802
9803/(Y)X\1{2,4}?b/
9804 YX\P
9805Partial match: YX
9806 YXY\P
9807Partial match: YXY
9808 YXYY\P
9809Partial match: YXYY
9810 YXYYY\P
9811Partial match: YXYYY
9812 YXYYYY\P
9813Partial match: YXYYYY
9814
9815/(Y)X\1{2,4}+b/
9816 YX\P
9817Partial match: YX
9818 YXY\P
9819Partial match: YXY
9820 YXYY\P
9821Partial match: YXYY
9822 YXYYY\P
9823Partial match: YXYYY
9824 YXYYYY\P
9825Partial match: YXYYYY
9826
9827/\++\KZ|\d+X|9+Y/
9828 ++++123999\P
9829Partial match: 123999
9830 ++++123999Y\P
9831 0: 999Y
9832 ++++Z1234\P
9833 0: Z
9834
9835/Z(*F)/
9836 Z\P
9837No match
9838 ZA\P
9839No match
9840
9841/Z(?!)/
9842 Z\P
9843No match
9844 ZA\P
9845No match
9846
9847/dog(sbody)?/
9848 dogs\P
9849 0: dog
9850 dogs\P\P
9851Partial match: dogs
9852
9853/dog(sbody)??/
9854 dogs\P
9855 0: dog
9856 dogs\P\P
9857 0: dog
9858
9859/dog|dogsbody/
9860 dogs\P
9861 0: dog
9862 dogs\P\P
9863 0: dog
9864
9865/dogsbody|dog/
9866 dogs\P
9867 0: dog
9868 dogs\P\P
9869Partial match: dogs
9870
9871/\bthe cat\b/
9872 the cat\P
9873 0: the cat
9874 the cat\P\P
9875Partial match: the cat
9876
9877/abc/
9878 abc\P
9879 0: abc
9880 abc\P\P
9881 0: abc
9882
9883/\w+A/P
9884 CDAAAAB
9885 0: CDAAAA
9886
9887/\w+A/PU
9888 CDAAAAB
9889 0: CDA
9890
9891/abc\K123/
9892 xyzabc123pqr
9893 0: 123
9894 xyzabc12\P
9895Partial match: abc12
9896 xyzabc12\P\P
9897Partial match: abc12
9898
9899/(?<=abc)123/
9900 xyzabc123pqr
9901 0: 123
9902 xyzabc12\P
9903Partial match: abc12
9904 xyzabc12\P\P
9905Partial match: abc12
9906
9907/\babc\b/
9908 +++abc+++
9909 0: abc
9910 +++ab\P
9911Partial match: +ab
9912 +++ab\P\P
9913Partial match: +ab
9914
9915/(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9916------------------------------------------------------------------
9917 Bra
9918 Recurse
9919 Recurse
9920 Cond
9921 Cond def
9922 CBra 1
9923 <
9924 [^m]
9925 [^>]
9926 >
9927 [^<]
9928 Ket
9929 CBra 2
9930 \w*+
9931 Ket
9932 Ket
9933 Ket
9934 End
9935------------------------------------------------------------------
9936
9937/(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9938------------------------------------------------------------------
9939 Bra
9940 Recurse
9941 Recurse
9942 Cond
9943 Cond def
9944 CBra 1
9945 <
9946 [\x00-/:-\xff] (neg)
9947 [^>]
9948 >
9949 [^<]
9950 Ket
9951 CBra 2
9952 \w*+
9953 Ket
9954 Ket
9955 Ket
9956 End
9957------------------------------------------------------------------
9958
9959/(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9960------------------------------------------------------------------
9961 Bra
9962 CBra 1
9963 ab
9964 Ket
9965 CBra 2
9966 x
9967 CBra 3
9968 y
9969 Ket
9970 z
9971 CBra 4
9972 cd
9973 Close 4
9974 Close 2
9975 *ACCEPT
9976 Ket
9977 Ket
9978 pq
9979 Ket
9980 End
9981------------------------------------------------------------------
9982
9983/abc\K/+
9984 abcdef
9985 0:
9986 0+ def
9987 abcdef\N\N
9988 0:
9989 0+ def
9990 xyzabcdef\N\N
9991 0:
9992 0+ def
9993 ** Failers
9994No match
9995 abcdef\N
9996No match
9997 xyzabcdef\N
9998No match
9999
10000/^(?:(?=abc)|abc\K)/+
10001 abcdef
10002 0:
10003 0+ abcdef
10004 abcdef\N\N
10005 0:
10006 0+ def
10007 ** Failers
10008No match
10009 abcdef\N
10010No match
10011
10012/a?b?/+
10013 xyz
10014 0:
10015 0+ xyz
10016 xyzabc
10017 0:
10018 0+ xyzabc
10019 xyzabc\N
10020 0: ab
10021 0+ c
10022 xyzabc\N\N
10023 0:
10024 0+ yzabc
10025 xyz\N\N
10026 0:
10027 0+ yz
10028 ** Failers
10029 0:
10030 0+ ** Failers
10031 xyz\N
10032No match
10033
10034/^a?b?/+
10035 xyz
10036 0:
10037 0+ xyz
10038 xyzabc
10039 0:
10040 0+ xyzabc
10041 ** Failers
10042 0:
10043 0+ ** Failers
10044 xyzabc\N
10045No match
10046 xyzabc\N\N
10047No match
10048 xyz\N\N
10049No match
10050 xyz\N
10051No match
10052
10053/^(?<name>a|b\g<name>c)/
10054 aaaa
10055 0: a
10056 1: a
10057 bacxxx
10058 0: bac
10059 1: bac
10060 bbaccxxx
10061 0: bbacc
10062 1: bbacc
10063 bbbacccxx
10064 0: bbbaccc
10065 1: bbbaccc
10066
10067/^(?<name>a|b\g'name'c)/
10068 aaaa
10069 0: a
10070 1: a
10071 bacxxx
10072 0: bac
10073 1: bac
10074 bbaccxxx
10075 0: bbacc
10076 1: bbacc
10077 bbbacccxx
10078 0: bbbaccc
10079 1: bbbaccc
10080
10081/^(a|b\g<1>c)/
10082 aaaa
10083 0: a
10084 1: a
10085 bacxxx
10086 0: bac
10087 1: bac
10088 bbaccxxx
10089 0: bbacc
10090 1: bbacc
10091 bbbacccxx
10092 0: bbbaccc
10093 1: bbbaccc
10094
10095/^(a|b\g'1'c)/
10096 aaaa
10097 0: a
10098 1: a
10099 bacxxx
10100 0: bac
10101 1: bac
10102 bbaccxxx
10103 0: bbacc
10104 1: bbacc
10105 bbbacccxx
10106 0: bbbaccc
10107 1: bbbaccc
10108
10109/^(a|b\g'-1'c)/
10110 aaaa
10111 0: a
10112 1: a
10113 bacxxx
10114 0: bac
10115 1: bac
10116 bbaccxxx
10117 0: bbacc
10118 1: bbacc
10119 bbbacccxx
10120 0: bbbaccc
10121 1: bbbaccc
10122
10123/(^(a|b\g<-1>c))/
10124 aaaa
10125 0: a
10126 1: a
10127 2: a
10128 bacxxx
10129 0: bac
10130 1: bac
10131 2: bac
10132 bbaccxxx
10133 0: bbacc
10134 1: bbacc
10135 2: bbacc
10136 bbbacccxx
10137 0: bbbaccc
10138 1: bbbaccc
10139 2: bbbaccc
10140
10141/(?-i:\g<name>)(?i:(?<name>a))/
10142 XaaX
10143 0: aa
10144 1: a
10145 XAAX
10146 0: AA
10147 1: A
10148
10149/(?i:\g<name>)(?-i:(?<name>a))/
10150 XaaX
10151 0: aa
10152 1: a
10153 ** Failers
10154No match
10155 XAAX
10156No match
10157
10158/(?-i:\g<+1>)(?i:(a))/
10159 XaaX
10160 0: aa
10161 1: a
10162 XAAX
10163 0: AA
10164 1: A
10165
10166/(?=(?<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>\})\}))\{/
10167
10168/(?<n>a|b|c)\g<n>*/
10169 abc
10170 0: abc
10171 1: a
10172 accccbbb
10173 0: accccbbb
10174 1: a
10175
10176/^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
10177 XYabcdY
10178 0: XYabcdY
10179 1: a
10180 2: b
10181 3: <unset>
10182 4: <unset>
10183 5: c
10184 6: d
10185 7: Y
10186
10187/(?<=b(?1)|zzz)(a)/
10188 xbaax
10189 0: a
10190 1: a
10191 xzzzax
10192 0: a
10193 1: a
10194
10195/(a)(?<=b\1)/
10196Failed: lookbehind assertion is not fixed length at offset 10
10197
10198/(a)(?<=b+(?1))/
10199Failed: lookbehind assertion is not fixed length at offset 13
10200
10201/(a+)(?<=b(?1))/
10202Failed: lookbehind assertion is not fixed length at offset 14
10203
10204/(a(?<=b(?1)))/
10205Failed: lookbehind assertion is not fixed length at offset 13
10206
10207/(?<=b(?1))xyz/
10208Failed: reference to non-existent subpattern at offset 8
10209
10210/(?<=b(?1))xyz(b+)pqrstuvew/
10211Failed: lookbehind assertion is not fixed length at offset 26
10212
10213/(a|bc)\1/SI
10214Capturing subpattern count = 1
10215Max back reference = 1
10216No options
10217No first char
10218No need char
10219Subject length lower bound = 2
10220Starting byte set: a b
10221
10222/(a|bc)\1{2,3}/SI
10223Capturing subpattern count = 1
10224Max back reference = 1
10225No options
10226No first char
10227No need char
10228Subject length lower bound = 3
10229Starting byte set: a b
10230
10231/(a|bc)(?1)/SI
10232Capturing subpattern count = 1
10233No options
10234No first char
10235No need char
10236Subject length lower bound = 2
10237Starting byte set: a b
10238
10239/(a|b\1)(a|b\1)/SI
10240Capturing subpattern count = 2
10241Max back reference = 1
10242No options
10243No first char
10244No need char
10245Subject length lower bound = 2
10246Starting byte set: a b
10247
10248/(a|b\1){2}/SI
10249Capturing subpattern count = 1
10250Max back reference = 1
10251No options
10252No first char
10253No need char
10254Subject length lower bound = 2
10255Starting byte set: a b
10256
10257/(a|bbbb\1)(a|bbbb\1)/SI
10258Capturing subpattern count = 2
10259Max back reference = 1
10260No options
10261No first char
10262No need char
10263Subject length lower bound = 2
10264Starting byte set: a b
10265
10266/(a|bbbb\1){2}/SI
10267Capturing subpattern count = 1
10268Max back reference = 1
10269No options
10270No first char
10271No need char
10272Subject length lower bound = 2
10273Starting byte set: a b
10274
10275/^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
10276Capturing subpattern count = 1
10277Options: anchored
10278No first char
10279Need char = ':'
10280Subject length lower bound = 22
10281No set of starting bytes
10282
10283/ (?: [\040\t] | \(
10284(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10285\) )* # optional leading comment
10286(?: (?:
10287[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10288(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10289|
10290" (?: # opening quote...
10291[^\\\x80-\xff\n\015"] # Anything except backslash and quote
10292| # or
10293\\ [^\x80-\xff] # Escaped something (something != CR)
10294)* " # closing quote
10295) # initial word
10296(?: (?: [\040\t] | \(
10297(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10298\) )* \. (?: [\040\t] | \(
10299(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10300\) )* (?:
10301[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10302(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10303|
10304" (?: # opening quote...
10305[^\\\x80-\xff\n\015"] # Anything except backslash and quote
10306| # or
10307\\ [^\x80-\xff] # Escaped something (something != CR)
10308)* " # closing quote
10309) )* # further okay, if led by a period
10310(?: [\040\t] | \(
10311(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10312\) )* @ (?: [\040\t] | \(
10313(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10314\) )* (?:
10315[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10316(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10317| \[ # [
10318(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10319\] # ]
10320) # initial subdomain
10321(?: #
10322(?: [\040\t] | \(
10323(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10324\) )* \. # if led by a period...
10325(?: [\040\t] | \(
10326(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10327\) )* (?:
10328[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10329(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10330| \[ # [
10331(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10332\] # ]
10333) # ...further okay
10334)*
10335# address
10336| # or
10337(?:
10338[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10339(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10340|
10341" (?: # opening quote...
10342[^\\\x80-\xff\n\015"] # Anything except backslash and quote
10343| # or
10344\\ [^\x80-\xff] # Escaped something (something != CR)
10345)* " # closing quote
10346) # one word, optionally followed by....
10347(?:
10348[^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037] | # atom and space parts, or...
10349\(
10350(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10351\) | # comments, or...
10352
10353" (?: # opening quote...
10354[^\\\x80-\xff\n\015"] # Anything except backslash and quote
10355| # or
10356\\ [^\x80-\xff] # Escaped something (something != CR)
10357)* " # closing quote
10358# quoted strings
10359)*
10360< (?: [\040\t] | \(
10361(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10362\) )* # leading <
10363(?: @ (?: [\040\t] | \(
10364(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10365\) )* (?:
10366[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10367(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10368| \[ # [
10369(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10370\] # ]
10371) # initial subdomain
10372(?: #
10373(?: [\040\t] | \(
10374(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10375\) )* \. # if led by a period...
10376(?: [\040\t] | \(
10377(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10378\) )* (?:
10379[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10380(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10381| \[ # [
10382(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10383\] # ]
10384) # ...further okay
10385)*
10386
10387(?: (?: [\040\t] | \(
10388(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10389\) )* , (?: [\040\t] | \(
10390(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10391\) )* @ (?: [\040\t] | \(
10392(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10393\) )* (?:
10394[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10395(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10396| \[ # [
10397(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10398\] # ]
10399) # initial subdomain
10400(?: #
10401(?: [\040\t] | \(
10402(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10403\) )* \. # if led by a period...
10404(?: [\040\t] | \(
10405(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10406\) )* (?:
10407[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10408(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10409| \[ # [
10410(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10411\] # ]
10412) # ...further okay
10413)*
10414)* # further okay, if led by comma
10415: # closing colon
10416(?: [\040\t] | \(
10417(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10418\) )* )? # optional route
10419(?:
10420[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10421(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10422|
10423" (?: # opening quote...
10424[^\\\x80-\xff\n\015"] # Anything except backslash and quote
10425| # or
10426\\ [^\x80-\xff] # Escaped something (something != CR)
10427)* " # closing quote
10428) # initial word
10429(?: (?: [\040\t] | \(
10430(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10431\) )* \. (?: [\040\t] | \(
10432(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10433\) )* (?:
10434[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10435(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10436|
10437" (?: # opening quote...
10438[^\\\x80-\xff\n\015"] # Anything except backslash and quote
10439| # or
10440\\ [^\x80-\xff] # Escaped something (something != CR)
10441)* " # closing quote
10442) )* # further okay, if led by a period
10443(?: [\040\t] | \(
10444(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10445\) )* @ (?: [\040\t] | \(
10446(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10447\) )* (?:
10448[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10449(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10450| \[ # [
10451(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10452\] # ]
10453) # initial subdomain
10454(?: #
10455(?: [\040\t] | \(
10456(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10457\) )* \. # if led by a period...
10458(?: [\040\t] | \(
10459(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10460\) )* (?:
10461[^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+ # some number of atom characters...
10462(?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10463| \[ # [
10464(?: [^\\\x80-\xff\n\015\[\]] | \\ [^\x80-\xff] )* # stuff
10465\] # ]
10466) # ...further okay
10467)*
10468# address spec
10469(?: [\040\t] | \(
10470(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10471\) )* > # trailing >
10472# name and address
10473) (?: [\040\t] | \(
10474(?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] | \( (?: [^\\\x80-\xff\n\015()] | \\ [^\x80-\xff] )* \) )*
10475\) )* # optional trailing comment
10476/xSI
10477Capturing subpattern count = 0
10478Contains explicit CR or LF match
10479Options: extended
10480No first char
10481No need char
10482Subject length lower bound = 3
10483Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
10484 9 = ? 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 ^ _ ` a b c d e
10485 f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
10486
10487/<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
10488Capturing subpattern count = 11
10489Options: caseless dotall
10490First char = '<'
10491Need char = '>'
10492Subject length lower bound = 47
10493No set of starting bytes
10494
10495"(?>.*/)foo"SI
10496Capturing subpattern count = 0
10497No options
10498First char at start or follows newline
10499Need char = 'o'
10500Subject length lower bound = 4
10501No set of starting bytes
10502
10503/(?(?=[^a-z]+[a-z]) \d{2}-[a-z]{3}-\d{2} | \d{2}-\d{2}-\d{2} ) /xSI
10504Capturing subpattern count = 0
10505Options: extended
10506No first char
10507Need char = '-'
10508Subject length lower bound = 8
10509No set of starting bytes
10510
10511/(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10512Capturing subpattern count = 1
10513Options: caseless
10514No first char
10515No need char
10516Subject length lower bound = 1
10517Starting byte set: A B C a b c
10518
10519/(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10520Capturing subpattern count = 0
10521No options
10522No first char
10523Need char = 'b'
10524Subject length lower bound = 41
10525Starting byte set: c d
10526
10527/<a[\s]+href[\s]*=[\s]* # find <a href=
10528 ([\"\'])? # find single or double quote
10529 (?(1) (.*?)\1 | ([^\s]+)) # if quote found, match up to next matching
10530 # quote, otherwise match up to next space
10531/isxSI
10532Capturing subpattern count = 3
10533Max back reference = 1
10534Options: caseless extended dotall
10535First char = '<'
10536Need char = '='
10537Subject length lower bound = 9
10538No set of starting bytes
10539
10540/^(?!:) # colon disallowed at start
10541 (?: # start of item
10542 (?: [0-9a-f]{1,4} | # 1-4 hex digits or
10543 (?(1)0 | () ) ) # if null previously matched, fail; else null
10544 : # followed by colon
10545 ){1,7} # end item; 1-7 of them required
10546 [0-9a-f]{1,4} $ # final hex number at end of string
10547 (?(1)|.) # check that there was an empty component
10548 /xiIS
10549Capturing subpattern count = 1
10550Options: anchored caseless extended
10551No first char
10552Need char = ':'
10553Subject length lower bound = 2
10554No set of starting bytes
10555
10556/(?|(?<a>A)|(?<a>B))/I
10557Capturing subpattern count = 1
10558Named capturing subpatterns:
10559 a 1
10560 a 1
10561No options
10562No first char
10563No need char
10564 AB\Ca
10565 0: A
10566 1: A
10567 C A (1) a
10568 BA\Ca
10569 0: B
10570 1: B
10571 C B (1) a
10572
10573/(?|(?<a>A)|(?<b>B))/
10574Failed: different names for subpatterns of the same number are not allowed at offset 15
10575
10576/(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10577 b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10578 (?('quote')[a-z]+|[0-9]+)/JIx
10579Capturing subpattern count = 6
10580Named capturing subpatterns:
10581 apostrophe 2
10582 apostrophe 5
10583 quote 1
10584 quote 4
10585 realquote 3
10586 realquote 6
10587Options: extended dupnames
10588No first char
10589No need char
10590 a"aaaaa
10591 0: a"aaaaa
10592 1: "
10593 2: <unset>
10594 3: "
10595 b"aaaaa
10596 0: b"aaaaa
10597 1: <unset>
10598 2: <unset>
10599 3: <unset>
10600 4: "
10601 5: <unset>
10602 6: "
10603 ** Failers
10604No match
10605 b"11111
10606No match
10607 a"11111
10608No match
10609
10610/^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10611------------------------------------------------------------------
10612 Bra
10613 ^
10614 Bra
10615 CBra 1
10616 a
10617 Ket
10618 CBra 2
10619 b
10620 Ket
10621 CBra 3
10622 c
10623 Ket
10624 CBra 4
10625 d
10626 Ket
10627 Alt
10628 CBra 1
10629 e
10630 Ket
10631 Ket
10632 Cond
10633 4 Cond nref
10634 X
10635 Alt
10636 Y
10637 Ket
10638 Ket
10639 End
10640------------------------------------------------------------------
10641Capturing subpattern count = 4
10642Named capturing subpatterns:
10643 D 4
10644 D 1
10645Options: anchored extended dupnames
10646No first char
10647No need char
10648 abcdX
10649 0: abcdX
10650 1: a
10651 2: b
10652 3: c
10653 4: d
10654 eX
10655 0: eX
10656 1: e
10657 ** Failers
10658No match
10659 abcdY
10660No match
10661 ey
10662No match
10663
10664/(?<A>a) (b)(c) (?<A>d (?(R&A)$ | (?4)) )/JDZx
10665------------------------------------------------------------------
10666 Bra
10667 CBra 1
10668 a
10669 Ket
10670 CBra 2
10671 b
10672 Ket
10673 CBra 3
10674 c
10675 Ket
10676 CBra 4
10677 d
10678 Cond
10679 Cond nrecurse 1
10680 $
10681 Alt
10682 Recurse
10683 Ket
10684 Ket
10685 Ket
10686 End
10687------------------------------------------------------------------
10688Capturing subpattern count = 4
10689Named capturing subpatterns:
10690 A 1
10691 A 4
10692Options: extended dupnames
10693First char = 'a'
10694Need char = 'd'
10695 abcdd
10696 0: abcdd
10697 1: a
10698 2: b
10699 3: c
10700 4: dd
10701 ** Failers
10702No match
10703 abcdde
10704No match
10705
10706/abcd*/
10707 xxxxabcd\P
10708 0: abcd
10709 xxxxabcd\P\P
10710Partial match: abcd
10711
10712/abcd*/i
10713 xxxxabcd\P
10714 0: abcd
10715 xxxxabcd\P\P
10716Partial match: abcd
10717 XXXXABCD\P
10718 0: ABCD
10719 XXXXABCD\P\P
10720Partial match: ABCD
10721
10722/abc\d*/
10723 xxxxabc1\P
10724 0: abc1
10725 xxxxabc1\P\P
10726Partial match: abc1
10727
10728/(a)bc\1*/
10729 xxxxabca\P
10730 0: abca
10731 1: a
10732 xxxxabca\P\P
10733Partial match: abca
10734
10735/abc[de]*/
10736 xxxxabcde\P
10737 0: abcde
10738 xxxxabcde\P\P
10739Partial match: abcde
10740
10741/-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10742 broken and not behaving as specified in that it *does* bumpalong after
10743 hitting (*COMMIT). --/
10744
10745/(?1)(A(*COMMIT)|B)D/
10746 ABD
10747 0: ABD
10748 1: B
10749 XABD
10750 0: ABD
10751 1: B
10752 BAD
10753 0: BAD
10754 1: A
10755 ABXABD
10756 0: ABD
10757 1: B
10758 ** Failers
10759No match
10760 ABX
10761No match
10762 BAXBAD
10763No match
10764
10765/(\3)(\1)(a)/<JS>
10766 cat
10767 0: a
10768 1:
10769 2:
10770 3: a
10771
10772/(\3)(\1)(a)/SI<JS>
10773Capturing subpattern count = 3
10774Max back reference = 3
10775Options:
10776No first char
10777Need char = 'a'
10778Subject length lower bound = 1
10779No set of starting bytes
10780 cat
10781 0: a
10782 1:
10783 2:
10784 3: a
10785
10786/(\3)(\1)(a)/SI
10787Capturing subpattern count = 3
10788Max back reference = 3
10789No options
10790No first char
10791Need char = 'a'
10792Subject length lower bound = 3
10793No set of starting bytes
10794 cat
10795No match
10796
10797/i(?(DEFINE)(?<s>a))/SI
10798Capturing subpattern count = 1
10799Named capturing subpatterns:
10800 s 1
10801No options
10802First char = 'i'
10803No need char
10804Subject length lower bound = 1
10805No set of starting bytes
10806 i
10807 0: i
10808
10809/()i(?(1)a)/SI
10810Capturing subpattern count = 1
10811No options
10812No first char
10813Need char = 'i'
10814Subject length lower bound = 1
10815Starting byte set: i
10816 ia
10817 0: ia
10818 1:
10819
10820/(?i)a(?-i)b|c/BZ
10821------------------------------------------------------------------
10822 Bra
10823 /i a
10824 b
10825 Alt
10826 c
10827 Ket
10828 End
10829------------------------------------------------------------------
10830 XabX
10831 0: ab
10832 XAbX
10833 0: Ab
10834 CcC
10835 0: c
10836 ** Failers
10837No match
10838 XABX
10839No match
10840
10841/(?i)a(?s)b|c/BZ
10842------------------------------------------------------------------
10843 Bra
10844 /i ab
10845 Alt
10846 /i c
10847 Ket
10848 End
10849------------------------------------------------------------------
10850
10851/(?i)a(?s-i)b|c/BZ
10852------------------------------------------------------------------
10853 Bra
10854 /i a
10855 b
10856 Alt
10857 c
10858 Ket
10859 End
10860------------------------------------------------------------------
10861
10862/^(ab(c\1)d|x){2}$/BZ
10863------------------------------------------------------------------
10864 Bra
10865 ^
10866 Once
10867 CBra 1
10868 ab
10869 CBra 2
10870 c
10871 \1
10872 Ket
10873 d
10874 Alt
10875 x
10876 Ket
10877 Ket
10878 Once
10879 CBra 1
10880 ab
10881 CBra 2
10882 c
10883 \1
10884 Ket
10885 d
10886 Alt
10887 x
10888 Ket
10889 Ket
10890 $
10891 Ket
10892 End
10893------------------------------------------------------------------
10894 xabcxd
10895 0: xabcxd
10896 1: abcxd
10897 2: cx
10898
10899/^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10900------------------------------------------------------------------
10901 Bra
10902 ^
10903 Braposzero
10904 SBraPos
10905 Recurse
10906 KetRpos
10907 Cond
10908 Cond def
10909 CBra 1
10910 Any
10911 Ket
10912 Ket
10913 $
10914 Ket
10915 End
10916------------------------------------------------------------------
10917
10918/^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10919------------------------------------------------------------------
10920 Bra
10921 ^
10922 Brazero
10923 Once
10924 Recurse
10925 KetRmax
10926 Cond
10927 Cond def
10928 CBra 1
10929 Any
10930 Ket
10931 Ket
10932 $
10933 Ket
10934 End
10935------------------------------------------------------------------
10936
10937/ -- The first four of these are not in the Perl >= 5.10 test because Perl
10938 documents that the use of \K in assertions is "not well defined". The
10939 last is here because Perl gives the match as "b" rather than "ab". I
10940 believe this to be a Perl bug. --/
10941
10942/(?=a\Kb)ab/
10943 ab
10944 0: b
10945
10946/(?!a\Kb)ac/
10947 ac
10948 0: ac
10949
10950/^abc(?<=b\Kc)d/
10951 abcd
10952 0: cd
10953
10954/^abc(?<!b\Kq)d/
10955 abcd
10956 0: abcd
10957
10958/(?>a\Kb)z|(ab)/
10959 ab
10960 0: ab
10961 1: ab
10962
10963/----------------------/
10964
10965/(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10966Failed: recursive call could loop indefinitely at offset 31
10967
10968/abc(*MARK:)pqr/
10969Failed: (*MARK) must have an argument at offset 10
10970
10971/abc(*:)pqr/
10972Failed: (*MARK) must have an argument at offset 6
10973
10974/abc(*FAIL:123)xyz/
10975Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10976
10977/--- This should, and does, fail. In Perl, it does not, which I think is a
10978 bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10979
10980/A(*COMMIT)B/+K
10981 ACABX
10982No match
10983
10984/--- These should be different, but in Perl 5.11 are not, which I think
10985 is a bug in Perl. ---/
10986
10987/A(*THEN)B|A(*THEN)C/K
10988 AC
10989 0: AC
10990
10991/A(*PRUNE)B|A(*PRUNE)C/K
10992 AC
10993No match
10994
10995/--- This should fail; the SKIP advances by one, but when we get to AC, the
10996 PRUNE kills it. Perl behaves differently. ---/
10997
10998/A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10999 AAAC
11000No match, mark = A
11001
11002/--- Mark names can be duplicated. Perl doesn't give a mark for this one,
11003though PCRE does. ---/
11004
11005/^A(*:A)B|^X(*:A)Y/K
11006 ** Failers
11007No match
11008 XAQQ
11009No match, mark = A
11010
11011/--- COMMIT at the start of a pattern should be the same as an anchor. Perl
11012optimizations defeat this. So does the PCRE optimization unless we disable it
11013with \Y. ---/
11014
11015/(*COMMIT)ABC/
11016 ABCDEFG
11017 0: ABC
11018 ** Failers
11019No match
11020 DEFGABC\Y
11021No match
11022
11023/^(ab (c+(*THEN)cd) | xyz)/x
11024 abcccd
11025No match
11026
11027/^(ab (c+(*PRUNE)cd) | xyz)/x
11028 abcccd
11029No match
11030
11031/^(ab (c+(*FAIL)cd) | xyz)/x
11032 abcccd
11033No match
11034
11035/--- Perl 5.11 gets some of these wrong ---/
11036
11037/(?>.(*ACCEPT))*?5/
11038 abcde
11039 0: a
11040
11041/(.(*ACCEPT))*?5/
11042 abcde
11043 0: a
11044 1: a
11045
11046/(.(*ACCEPT))5/
11047 abcde
11048 0: a
11049 1: a
11050
11051/(.(*ACCEPT))*5/
11052 abcde
11053 0: a
11054 1: a
11055
11056/A\NB./BZ
11057------------------------------------------------------------------
11058 Bra
11059 A
11060 Any
11061 B
11062 Any
11063 Ket
11064 End
11065------------------------------------------------------------------
11066 ACBD
11067 0: ACBD
11068 *** Failers
11069No match
11070 A\nB
11071No match
11072 ACB\n
11073No match
11074
11075/A\NB./sBZ
11076------------------------------------------------------------------
11077 Bra
11078 A
11079 Any
11080 B
11081 AllAny
11082 Ket
11083 End
11084------------------------------------------------------------------
11085 ACBD
11086 0: ACBD
11087 ACB\n
11088 0: ACB\x0a
11089 *** Failers
11090No match
11091 A\nB
11092No match
11093
11094/A\NB/<crlf>
11095 A\nB
11096 0: A\x0aB
11097 A\rB
11098 0: A\x0dB
11099 ** Failers
11100No match
11101 A\r\nB
11102No match
11103
11104/\R+b/BZ
11105------------------------------------------------------------------
11106 Bra
11107 \R++
11108 b
11109 Ket
11110 End
11111------------------------------------------------------------------
11112
11113/\R+\n/BZ
11114------------------------------------------------------------------
11115 Bra
11116 \R+
11117 \x0a
11118 Ket
11119 End
11120------------------------------------------------------------------
11121
11122/\R+\d/BZ
11123------------------------------------------------------------------
11124 Bra
11125 \R++
11126 \d
11127 Ket
11128 End
11129------------------------------------------------------------------
11130
11131/\d*\R/BZ
11132------------------------------------------------------------------
11133 Bra
11134 \d*+
11135 \R
11136 Ket
11137 End
11138------------------------------------------------------------------
11139
11140/\s*\R/BZ
11141------------------------------------------------------------------
11142 Bra
11143 \s*+
11144 \R
11145 Ket
11146 End
11147------------------------------------------------------------------
11148
11149/-- Perl treats this one differently, not failing the second string. I believe
11150 that is a bug in Perl. --/
11151
11152/^((abc|abcx)(*THEN)y|abcd)/
11153 abcd
11154 0: abcd
11155 1: abcd
11156 *** Failers
11157No match
11158 abcxy
11159No match
11160
11161/(?<=abc)def/
11162 abc\P\P
11163Partial match: abc
11164
11165/abc$/
11166 abc
11167 0: abc
11168 abc\P
11169 0: abc
11170 abc\P\P
11171Partial match: abc
11172
11173/abc$/m
11174 abc
11175 0: abc
11176 abc\n
11177 0: abc
11178 abc\P\P
11179Partial match: abc
11180 abc\n\P\P
11181 0: abc
11182 abc\P
11183 0: abc
11184 abc\n\P
11185 0: abc
11186
11187/abc\z/
11188 abc
11189 0: abc
11190 abc\P
11191 0: abc
11192 abc\P\P
11193Partial match: abc
11194
11195/abc\Z/
11196 abc
11197 0: abc
11198 abc\P
11199 0: abc
11200 abc\P\P
11201Partial match: abc
11202
11203/abc\b/
11204 abc
11205 0: abc
11206 abc\P
11207 0: abc
11208 abc\P\P
11209Partial match: abc
11210
11211/abc\B/
11212 abc
11213No match
11214 abc\P
11215Partial match: abc
11216 abc\P\P
11217Partial match: abc
11218
11219/.+/
11220 abc\>0
11221 0: abc
11222 abc\>1
11223 0: bc
11224 abc\>2
11225 0: c
11226 abc\>3
11227No match
11228 abc\>4
11229Error -24 (bad offset value)
11230 abc\>-4
11231Error -24 (bad offset value)
11232
11233/^\cģ/
11234Failed: \c must be followed by an ASCII character at offset 3
11235
11236/(?P<abn>(?P=abn)xxx)/BZ
11237------------------------------------------------------------------
11238 Bra
11239 Once
11240 CBra 1
11241 \1
11242 xxx
11243 Ket
11244 Ket
11245 Ket
11246 End
11247------------------------------------------------------------------
11248
11249/(a\1z)/BZ
11250------------------------------------------------------------------
11251 Bra
11252 Once
11253 CBra 1
11254 a
11255 \1
11256 z
11257 Ket
11258 Ket
11259 Ket
11260 End
11261------------------------------------------------------------------
11262
11263/(?P<abn>(?P=abn)(?<badstufxxx)/BZ
11264Failed: syntax error in subpattern name (missing terminator) at offset 29
11265
11266/(?P<abn>(?P=axn)xxx)/BZ
11267Failed: reference to non-existent subpattern at offset 15
11268
11269/(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
11270------------------------------------------------------------------
11271 Bra
11272 CBra 1
11273 \2
11274 xxx
11275 Ket
11276 CBra 2
11277 yy
11278 Ket
11279 Ket
11280 End
11281------------------------------------------------------------------
11282
11283/-- These tests are here because Perl gets the first one wrong. --/
11284
11285/(\R*)(.)/s
11286 \r\n
11287 0: \x0d
11288 1:
11289 2: \x0d
11290 \r\r\n\n\r
11291 0: \x0d\x0d\x0a\x0a\x0d
11292 1: \x0d\x0d\x0a\x0a
11293 2: \x0d
11294 \r\r\n\n\r\n
11295 0: \x0d\x0d\x0a\x0a\x0d
11296 1: \x0d\x0d\x0a\x0a
11297 2: \x0d
11298
11299/(\R)*(.)/s
11300 \r\n
11301 0: \x0d
11302 1: <unset>
11303 2: \x0d
11304 \r\r\n\n\r
11305 0: \x0d\x0d\x0a\x0a\x0d
11306 1: \x0a
11307 2: \x0d
11308 \r\r\n\n\r\n
11309 0: \x0d\x0d\x0a\x0a\x0d
11310 1: \x0a
11311 2: \x0d
11312
11313/((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11314 \r\n
11315 0: \x0d
11316 1:
11317 2: \x0d
11318 \r\r\n\n\r
11319 0: \x0d\x0d\x0a\x0a\x0d
11320 1: \x0d\x0d\x0a\x0a
11321 2: \x0d
11322 \r\r\n\n\r\n
11323 0: \x0d\x0d\x0a\x0a\x0d
11324 1: \x0d\x0d\x0a\x0a
11325 2: \x0d
11326
11327/-- --/
11328
11329/^abc$/BZ
11330------------------------------------------------------------------
11331 Bra
11332 ^
11333 abc
11334 $
11335 Ket
11336 End
11337------------------------------------------------------------------
11338
11339/^abc$/BZm
11340------------------------------------------------------------------
11341 Bra
11342 /m ^
11343 abc
11344 /m $
11345 Ket
11346 End
11347------------------------------------------------------------------
11348
11349/^(a)*+(\w)/S
11350 aaaaX
11351 0: aaaaX
11352 1: a
11353 2: X
11354 ** Failers
11355No match
11356 aaaa
11357No match
11358
11359/^(?:a)*+(\w)/S
11360 aaaaX
11361 0: aaaaX
11362 1: X
11363 ** Failers
11364No match
11365 aaaa
11366No match
11367
11368/(a)++1234/SDZ
11369------------------------------------------------------------------
11370 Bra
11371 CBraPos 1
11372 a
11373 KetRpos
11374 1234
11375 Ket
11376 End
11377------------------------------------------------------------------
11378Capturing subpattern count = 1
11379No options
11380First char = 'a'
11381Need char = '4'
11382Subject length lower bound = 5
11383No set of starting bytes
11384
11385/([abc])++1234/SI
11386Capturing subpattern count = 1
11387No options
11388No first char
11389Need char = '4'
11390Subject length lower bound = 5
11391Starting byte set: a b c
11392
11393/(?<=(abc)+)X/
11394Failed: lookbehind assertion is not fixed length at offset 10
11395
11396/(^ab)/I
11397Capturing subpattern count = 1
11398Options: anchored
11399No first char
11400No need char
11401
11402/(^ab)++/I
11403Capturing subpattern count = 1
11404Options: anchored
11405No first char
11406No need char
11407
11408/(^ab|^)+/I
11409Capturing subpattern count = 1
11410Options: anchored
11411No first char
11412No need char
11413
11414/(^ab|^)++/I
11415Capturing subpattern count = 1
11416Options: anchored
11417No first char
11418No need char
11419
11420/(?:^ab)/I
11421Capturing subpattern count = 0
11422Options: anchored
11423No first char
11424No need char
11425
11426/(?:^ab)++/I
11427Capturing subpattern count = 0
11428Options: anchored
11429No first char
11430No need char
11431
11432/(?:^ab|^)+/I
11433Capturing subpattern count = 0
11434Options: anchored
11435No first char
11436No need char
11437
11438/(?:^ab|^)++/I
11439Capturing subpattern count = 0
11440Options: anchored
11441No first char
11442No need char
11443
11444/(.*ab)/I
11445Capturing subpattern count = 1
11446No options
11447First char at start or follows newline
11448Need char = 'b'
11449
11450/(.*ab)++/I
11451Capturing subpattern count = 1
11452No options
11453First char at start or follows newline
11454Need char = 'b'
11455
11456/(.*ab|.*)+/I
11457Capturing subpattern count = 1
11458No options
11459First char at start or follows newline
11460No need char
11461
11462/(.*ab|.*)++/I
11463Capturing subpattern count = 1
11464No options
11465First char at start or follows newline
11466No need char
11467
11468/(?:.*ab)/I
11469Capturing subpattern count = 0
11470No options
11471First char at start or follows newline
11472Need char = 'b'
11473
11474/(?:.*ab)++/I
11475Capturing subpattern count = 0
11476No options
11477First char at start or follows newline
11478Need char = 'b'
11479
11480/(?:.*ab|.*)+/I
11481Capturing subpattern count = 0
11482No options
11483First char at start or follows newline
11484No need char
11485
11486/(?:.*ab|.*)++/I
11487Capturing subpattern count = 0
11488No options
11489First char at start or follows newline
11490No need char
11491
11492/(?=a)[bcd]/I
11493Capturing subpattern count = 0
11494No options
11495First char = 'a'
11496No need char
11497
11498/((?=a))[bcd]/I
11499Capturing subpattern count = 1
11500No options
11501First char = 'a'
11502No need char
11503
11504/((?=a))+[bcd]/I
11505Capturing subpattern count = 1
11506No options
11507First char = 'a'
11508No need char
11509
11510/((?=a))++[bcd]/I
11511Capturing subpattern count = 1
11512No options
11513First char = 'a'
11514No need char
11515
11516/(?=a+)[bcd]/iI
11517Capturing subpattern count = 0
11518Options: caseless
11519First char = 'a' (caseless)
11520No need char
11521
11522/(?=a+?)[bcd]/iI
11523Capturing subpattern count = 0
11524Options: caseless
11525First char = 'a' (caseless)
11526No need char
11527
11528/(?=a++)[bcd]/iI
11529Capturing subpattern count = 0
11530Options: caseless
11531First char = 'a' (caseless)
11532No need char
11533
11534/(?=a{3})[bcd]/iI
11535Capturing subpattern count = 0
11536Options: caseless
11537First char = 'a' (caseless)
11538Need char = 'a' (caseless)
11539
11540/(abc)\1+/S
11541
11542/-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11543
11544/(?1)(?:(b(*ACCEPT))){0}/
11545 b
11546 0: b
11547
11548/(?1)(?:(b(*ACCEPT))){0}c/
11549 bc
11550 0: bc
11551 ** Failers
11552No match
11553 b
11554No match
11555
11556/(?1)(?:((*ACCEPT))){0}c/
11557 c
11558 0: c
11559 c\N
11560 0: c
11561
11562/^.*?(?(?=a)a|b(*THEN)c)/
11563 ba
11564No match
11565
11566/^.*?(?(?=a)a|bc)/
11567 ba
11568 0: ba
11569
11570/^.*?(?(?=a)a(*THEN)b|c)/
11571 ac
11572No match
11573
11574/^.*?(?(?=a)a(*THEN)b)c/
11575 ac
11576No match
11577
11578/^.*?(a(*THEN)b)c/
11579 aabc
11580No match
11581
11582/^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11583 aabc
11584 0: aabc
11585
11586/^.*?(a(*THEN)b|z)c/
11587 aabc
11588 0: aabc
11589 1: ab
11590
11591/^.*?(z|a(*THEN)b)c/
11592 aabc
11593 0: aabc
11594 1: ab
11595
11596/-- --/
11597
11598/-- These studied versions are here because they are not Perl-compatible; the
11599 studying means the mark is not seen. --/
11600
11601/(*MARK:A)(*SKIP:B)(C|X)/KS
11602 C
11603 0: C
11604 1: C
11605MK: A
11606 D
11607No match, mark = A
11608
11609/(*:A)A+(*SKIP:A)(B|Z)/KS
11610 AAAC
11611No match, mark = A
11612
11613/-- --/
11614
11615"(?=a*(*ACCEPT)b)c"
11616 c
11617 0: c
11618 c\N
11619 0: c
11620
11621/(?1)c(?(DEFINE)((*ACCEPT)b))/
11622 c
11623 0: c
11624 c\N
11625 0: c
11626
11627/(?>(*ACCEPT)b)c/
11628 c
11629 0:
11630 c\N
11631No match
11632
11633/(?:(?>(a)))+a%/++
11634 %aa%
11635 0: aa%
11636 0+
11637 1: a
11638 1+ a%
11639
11640/(a)b|ac/++SS
11641 ac\O3
11642Matched, but too many substrings
11643 0: ac
11644 0+
11645
11646/(a)(b)x|abc/++
11647 abc\O6
11648 0: abc
11649 0+
11650
11651/(a)bc|(a)(b)\2/
11652 \O3abc
11653Matched, but too many substrings
11654 0: abc
11655 \O4abc
11656Matched, but too many substrings
11657 0: abc
11658
11659/(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11660Capturing subpattern count = 2
11661No options
11662No first char
11663No need char
11664Subject length lower bound = 1
11665No set of starting bytes
11666
11667/(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11668Capturing subpattern count = 2
11669No options
11670No first char
11671No need char
11672Subject length lower bound = 3
11673Starting byte set: a b
11674
11675/(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11676Capturing subpattern count = 2
11677No options
11678No first char
11679No need char
11680Subject length lower bound = 4
11681Starting byte set: a b
11682
11683/(abc)(?1)/SI
11684Capturing subpattern count = 1
11685No options
11686First char = 'a'
11687Need char = 'c'
11688Subject length lower bound = 6
11689No set of starting bytes
11690
11691/^(?>a)++/
11692 aa\M
11693Minimum match() limit = 5
11694Minimum match() recursion limit = 2
11695 0: aa
11696 aaaaaaaaa\M
11697Minimum match() limit = 12
11698Minimum match() recursion limit = 2
11699 0: aaaaaaaaa
11700
11701/(a)(?1)++/
11702 aa\M
11703Minimum match() limit = 7
11704Minimum match() recursion limit = 4
11705 0: aa
11706 1: a
11707 aaaaaaaaa\M
11708Minimum match() limit = 21
11709Minimum match() recursion limit = 4
11710 0: aaaaaaaaa
11711 1: a
11712
11713/(?:(foo)|(bar)|(baz))X/SS=
11714 bazfooX
11715 0: fooX
11716 1: foo
11717 2: <unset>
11718 3: <unset>
11719 foobazbarX
11720 0: barX
11721 1: <unset>
11722 2: bar
11723 3: <unset>
11724 barfooX
11725 0: fooX
11726 1: foo
11727 2: <unset>
11728 3: <unset>
11729 bazX
11730 0: bazX
11731 1: <unset>
11732 2: <unset>
11733 3: baz
11734 foobarbazX
11735 0: bazX
11736 1: <unset>
11737 2: <unset>
11738 3: baz
11739 bazfooX\O0
11740Matched, but too many substrings
11741 bazfooX\O2
11742Matched, but too many substrings
11743 0: fooX
11744 bazfooX\O4
11745Matched, but too many substrings
11746 0: fooX
11747 1: <unset>
11748 bazfooX\O6
11749Matched, but too many substrings
11750 0: fooX
11751 1: foo
11752 2: <unset>
11753 bazfooX\O8
11754Matched, but too many substrings
11755 0: fooX
11756 1: foo
11757 2: <unset>
11758 3: <unset>
11759 bazfooX\O10
11760 0: fooX
11761 1: foo
11762 2: <unset>
11763 3: <unset>
11764
11765/(?=abc){3}abc/BZ
11766------------------------------------------------------------------
11767 Bra
11768 Assert
11769 abc
11770 Ket
11771 abc
11772 Ket
11773 End
11774------------------------------------------------------------------
11775
11776/(?=abc)+abc/BZ
11777------------------------------------------------------------------
11778 Bra
11779 Assert
11780 abc
11781 Ket
11782 abc
11783 Ket
11784 End
11785------------------------------------------------------------------
11786
11787/(?=abc)++abc/BZ
11788------------------------------------------------------------------
11789 Bra
11790 Assert
11791 abc
11792 Ket
11793 abc
11794 Ket
11795 End
11796------------------------------------------------------------------
11797
11798/(?=abc){0}xyz/BZ
11799------------------------------------------------------------------
11800 Bra
11801 Skip zero
11802 Assert
11803 abc
11804 Ket
11805 xyz
11806 Ket
11807 End
11808------------------------------------------------------------------
11809
11810/(?=(a))?./BZ
11811------------------------------------------------------------------
11812 Bra
11813 Brazero
11814 Assert
11815 CBra 1
11816 a
11817 Ket
11818 Ket
11819 Any
11820 Ket
11821 End
11822------------------------------------------------------------------
11823
11824/(?=(a))??./BZ
11825------------------------------------------------------------------
11826 Bra
11827 Braminzero
11828 Assert
11829 CBra 1
11830 a
11831 Ket
11832 Ket
11833 Any
11834 Ket
11835 End
11836------------------------------------------------------------------
11837
11838/^(?=(a)){0}b(?1)/BZ
11839------------------------------------------------------------------
11840 Bra
11841 ^
11842 Skip zero
11843 Assert
11844 CBra 1
11845 a
11846 Ket
11847 Ket
11848 b
11849 Recurse
11850 Ket
11851 End
11852------------------------------------------------------------------
11853
11854/(?(DEFINE)(a))?b(?1)/BZ
11855------------------------------------------------------------------
11856 Bra
11857 Cond
11858 Cond def
11859 CBra 1
11860 a
11861 Ket
11862 Ket
11863 b
11864 Recurse
11865 Ket
11866 End
11867------------------------------------------------------------------
11868
11869/^(?=(?1))?[az]([abc])d/BZ
11870------------------------------------------------------------------
11871 Bra
11872 ^
11873 Brazero
11874 Assert
11875 Recurse
11876 Ket
11877 [az]
11878 CBra 1
11879 [a-c]
11880 Ket
11881 d
11882 Ket
11883 End
11884------------------------------------------------------------------
11885
11886/^(?!a){0}\w+/BZ
11887------------------------------------------------------------------
11888 Bra
11889 ^
11890 Skip zero
11891 Assert not
11892 a
11893 Ket
11894 \w+
11895 Ket
11896 End
11897------------------------------------------------------------------
11898
11899/(?<=(abc))?xyz/BZ
11900------------------------------------------------------------------
11901 Bra
11902 Brazero
11903 AssertB
11904 Reverse
11905 CBra 1
11906 abc
11907 Ket
11908 Ket
11909 xyz
11910 Ket
11911 End
11912------------------------------------------------------------------
11913
11914/[:a[:abc]b:]/BZ
11915------------------------------------------------------------------
11916 Bra
11917 [:[a-c]
11918 b:]
11919 Ket
11920 End
11921------------------------------------------------------------------
11922
11923/((?2))((?1))/SS
11924 abc
11925Error -26 (nested recursion at the same subject position)
11926
11927/((?(R2)a+|(?1)b))/SS
11928 aaaabcde
11929Error -26 (nested recursion at the same subject position)
11930
11931/(?(R)a*(?1)|((?R))b)/SS
11932 aaaabcde
11933Error -26 (nested recursion at the same subject position)
11934
11935/(a+|(?R)b)/
11936Failed: recursive call could loop indefinitely at offset 7
11937
11938/^(a(*:A)(d|e(*:B))z|aeq)/C
11939 adz
11940--->adz
11941 +0 ^ ^
11942 +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11943 +2 ^ a
11944 +3 ^^ (*:A)
11945 +8 ^^ (d|e(*:B))
11946Latest Mark: A
11947 +9 ^^ d
11948+10 ^ ^ |
11949+18 ^ ^ z
11950+19 ^ ^ |
11951+24 ^ ^
11952 0: adz
11953 1: adz
11954 2: d
11955 aez
11956--->aez
11957 +0 ^ ^
11958 +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11959 +2 ^ a
11960 +3 ^^ (*:A)
11961 +8 ^^ (d|e(*:B))
11962Latest Mark: A
11963 +9 ^^ d
11964+11 ^^ e
11965+12 ^ ^ (*:B)
11966+17 ^ ^ )
11967Latest Mark: B
11968+18 ^ ^ z
11969+19 ^ ^ |
11970+24 ^ ^
11971 0: aez
11972 1: aez
11973 2: e
11974 aeqwerty
11975--->aeqwerty
11976 +0 ^ ^
11977 +1 ^ (a(*:A)(d|e(*:B))z|aeq)
11978 +2 ^ a
11979 +3 ^^ (*:A)
11980 +8 ^^ (d|e(*:B))
11981Latest Mark: A
11982 +9 ^^ d
11983+11 ^^ e
11984+12 ^ ^ (*:B)
11985+17 ^ ^ )
11986Latest Mark: B
11987+18 ^ ^ z
11988+20 ^ a
11989+21 ^^ e
11990+22 ^ ^ q
11991+23 ^ ^ )
11992+24 ^ ^
11993 0: aeq
11994 1: aeq
11995
11996/.(*F)/
11997 \P\Pabc
11998No match
11999
12000/\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
12001Capturing subpattern count = 0
12002No options
12003First char = 't'
12004Need char = 't'
12005Subject length lower bound = 18
12006No set of starting bytes
12007
12008/\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
12009Capturing subpattern count = 0
12010No options
12011No first char
12012No need char
12013Subject length lower bound = 8
12014Starting byte set: < o t u
12015
12016/a(*SKIP)c|b(*ACCEPT)|/+SI
12017Capturing subpattern count = 0
12018No options
12019No first char
12020No need char
12021Study returned NULL
12022 a
12023 0:
12024 0+
12025
12026/a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
12027Capturing subpattern count = 0
12028No options
12029No first char
12030No need char
12031Subject length lower bound = -1
12032Starting byte set: a b x
12033 ax
12034 0: x
12035
12036'a*(*ACCEPT)b'+
12037 \N\N
12038No match
12039 abc\N\N
12040 0: a
12041 0+ bc
12042 bbb\N\N
12043 0:
12044 0+ bb
12045
12046/(*ACCEPT)a/+I
12047Capturing subpattern count = 0
12048No options
12049No first char
12050No need char
12051 bax
12052 0:
12053 0+ bax
12054
12055/z(*ACCEPT)a/+I
12056Capturing subpattern count = 0
12057No options
12058First char = 'z'
12059No need char
12060 baxzbx
12061 0: z
12062 0+ bx
12063
12064/a(?:.)*?a/ims
12065 \Mabbbbbbbbbbbbbbbbbbbbba
12066Minimum match() limit = 65
12067Minimum match() recursion limit = 2
12068 0: abbbbbbbbbbbbbbbbbbbbba
12069
12070/a(?:.(*THEN))*?a/ims
12071 \Mabbbbbbbbbbbbbbbbbbbbba
12072Minimum match() limit = 86
12073Minimum match() recursion limit = 45
12074 0: abbbbbbbbbbbbbbbbbbbbba
12075
12076/a(?:.(*THEN:ABC))*?a/ims
12077 \Mabbbbbbbbbbbbbbbbbbbbba
12078Minimum match() limit = 86
12079Minimum match() recursion limit = 45
12080 0: abbbbbbbbbbbbbbbbbbbbba
12081
12082/-- These tests are in agreement with development Perl 5.015, which has fixed
12083 some things, but they don't all work with 5.012, so they aren't in the
12084 Perl-compatible tests. Those after the first come from Perl's own test
12085 files. --/
12086
12087/^((yes|no)(*THEN)(*F))?/
12088 yes
12089No match
12090
12091/(A (.*) C? (*THEN) | A D) (*FAIL)/x
12092AbcdCBefgBhiBqz
12093No match
12094
12095/(A (.*) C? (*THEN) | A D) z/x
12096AbcdCBefgBhiBqz
12097No match
12098
12099/(A (.*) C? (*THEN) | A D) \s* (*FAIL)/x
12100AbcdCBefgBhiBqz
12101No match
12102
12103/(A (.*) C? (*THEN) | A D) \s* z/x
12104AbcdCBefgBhiBqz
12105No match
12106
12107/(A (.*) (?:C|) (*THEN) | A D) (*FAIL)/x
12108AbcdCBefgBhiBqz
12109No match
12110
12111/(A (.*) (?:C|) (*THEN) | A D) z/x
12112AbcdCBefgBhiBqz
12113No match
12114
12115/(A (.*) C{0,6} (*THEN) | A D) (*FAIL)/x
12116AbcdCBefgBhiBqz
12117No match
12118
12119/(A (.*) C{0,6} (*THEN) | A D) z/x
12120AbcdCBefgBhiBqz
12121No match
12122
12123/(A (.*) (CE){0,6} (*THEN) | A D) (*FAIL)/x
12124AbcdCEBefgBhiBqz
12125No match
12126
12127/(A (.*) (CE){0,6} (*THEN) | A D) z/x
12128AbcdCEBefgBhiBqz
12129No match
12130
12131/(A (.*) (CE*){0,6} (*THEN) | A D) (*FAIL)/x
12132AbcdCBefgBhiBqz
12133No match
12134
12135/(A (.*) (CE*){0,6} (*THEN) | A D) z/x
12136AbcdCBefgBhiBqz
12137No match
12138
12139/-----------------------------------------------/
12140
12141/^(?>a+)(?>(z+))\w/BZ
12142------------------------------------------------------------------
12143 Bra
12144 ^
12145 Once_NC
12146 a+
12147 Ket
12148 Once
12149 CBra 1
12150 z+
12151 Ket
12152 Ket
12153 \w
12154 Ket
12155 End
12156------------------------------------------------------------------
12157 aaaazzzzb
12158 0: aaaazzzzb
12159 1: zzzz
12160 ** Failers
12161No match
12162 aazz
12163No match
12164
12165/(.)(\1|a(?2))/
12166 bab
12167 0: bab
12168 1: b
12169 2: ab
12170
12171/\1|(.)(?R)\1/
12172 cbbbc
12173 0: cbbbc
12174 1: c
12175
12176/(.)((?(1)c|a)|a(?2))/
12177 baa
12178No match
12179
12180/(?P<abn>(?P=abn)xxx)/BZ
12181------------------------------------------------------------------
12182 Bra
12183 Once
12184 CBra 1
12185 \1
12186 xxx
12187 Ket
12188 Ket
12189 Ket
12190 End
12191------------------------------------------------------------------
12192
12193/(a\1z)/BZ
12194------------------------------------------------------------------
12195 Bra
12196 Once
12197 CBra 1
12198 a
12199 \1
12200 z
12201 Ket
12202 Ket
12203 Ket
12204 End
12205------------------------------------------------------------------
12206
12207/^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
12208 \Maabbccddee
12209Minimum match() limit = 12
12210Minimum match() recursion limit = 3
12211 0: aabbccddee
12212
12213/^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
12214 \Maabbccddee
12215Minimum match() limit = 22
12216Minimum match() recursion limit = 21
12217 0: aabbccddee
12218 1: aa
12219 2: bb
12220 3: cc
12221 4: dd
12222 5: ee
12223
12224/^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
12225 \Maabbccddee
12226Minimum match() limit = 18
12227Minimum match() recursion limit = 13
12228 0: aabbccddee
12229 1: aa
12230 2: cc
12231 3: ee
12232
12233/^a\x41z/<JS>
12234 aAz
12235 0: aAz
12236 *** Failers
12237No match
12238 ax41z
12239No match
12240
12241/^a[m\x41]z/<JS>
12242 aAz
12243 0: aAz
12244
12245/^a\x1z/<JS>
12246 ax1z
12247 0: ax1z
12248
12249/^a\u0041z/<JS>
12250 aAz
12251 0: aAz
12252 *** Failers
12253No match
12254 au0041z
12255No match
12256
12257/^a[m\u0041]z/<JS>
12258 aAz
12259 0: aAz
12260
12261/^a\u041z/<JS>
12262 au041z
12263 0: au041z
12264 *** Failers
12265No match
12266 aAz
12267No match
12268
12269/^a\U0041z/<JS>
12270 aU0041z
12271 0: aU0041z
12272 *** Failers
12273No match
12274 aAz
12275No match
12276
12277/(?(?=c)c|d)++Y/BZ
12278------------------------------------------------------------------
12279 Bra
12280 BraPos
12281 Cond
12282 Assert
12283 c
12284 Ket
12285 c
12286 Alt
12287 d
12288 Ket
12289 KetRpos
12290 Y
12291 Ket
12292 End
12293------------------------------------------------------------------
12294
12295/(?(?=c)c|d)*+Y/BZ
12296------------------------------------------------------------------
12297 Bra
12298 Braposzero
12299 BraPos
12300 Cond
12301 Assert
12302 c
12303 Ket
12304 c
12305 Alt
12306 d
12307 Ket
12308 KetRpos
12309 Y
12310 Ket
12311 End
12312------------------------------------------------------------------
12313
12314/a[\NB]c/
12315Failed: \N is not supported in a class at offset 3
12316
12317/a[B-\Nc]/
12318Failed: \N is not supported in a class at offset 5
12319
12320/(a)(?2){0,1999}?(b)/
12321
12322/(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
12323
12324/--- This test, with something more complicated than individual letters, causes
12325different behaviour in Perl. Perhaps it disables some optimization; no tag is
12326passed back for the failures, whereas in PCRE there is a tag. ---/
12327
12328/(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
12329 AABC
12330 0: AB
12331 1: A
12332 2: B
12333MK: A
12334 XXYZ
12335 0: XXY
12336 1: <unset>
12337 2: <unset>
12338 3: X
12339 4: X
12340 5: Y
12341MK: B
12342 ** Failers
12343No match
12344 XAQQ
12345No match, mark = A
12346 XAQQXZZ
12347No match, mark = A
12348 AXQQQ
12349No match, mark = A
12350 AXXQQQ
12351No match, mark = B
12352
12353/-- Perl doesn't give marks for these, though it does if the alternatives are
12354replaced by single letters. --/
12355
12356/(b|q)(*:m)f|a(*:n)w/K
12357 aw
12358 0: aw
12359MK: n
12360 ** Failers
12361No match, mark = n
12362 abc
12363No match, mark = m
12364
12365/(q|b)(*:m)f|a(*:n)w/K
12366 aw
12367 0: aw
12368MK: n
12369 ** Failers
12370No match, mark = n
12371 abc
12372No match, mark = m
12373
12374/-- After a partial match, the behaviour is as for a failure. --/
12375
12376/^a(*:X)bcde/K
12377 abc\P
12378Partial match, mark=X: abc
12379
12380/-- End of testinput2 --/