chiark / gitweb /
Commit upstream pcre-8.39.tar.bz2
[pcre3.git] / testdata / testoutput2
1 /-- This set of tests is not Perl-compatible. It checks on special features
2     of PCRE's API, error diagnostics, and the compiled code of some patterns.
3     It also checks the non-Perl syntax the PCRE supports (Python, .NET, 
4     Oniguruma). Finally, there are some tests where PCRE and Perl differ, 
5     either because PCRE can't be compatible, or there is a possible Perl 
6     bug.
7     
8     NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9     test 5, and if Unicode Property Support is needed, use test 7. --/
10     
11 < forbid 8W 
12   
13 /(a)b|/I
14 Capturing subpattern count = 1
15 May match empty string
16 No options
17 No first char
18 No need char
19
20 /abc/I
21 Capturing subpattern count = 0
22 No options
23 First char = 'a'
24 Need char = 'c'
25     abc
26  0: abc
27     defabc
28  0: abc
29     \Aabc
30  0: abc
31     *** Failers
32 No match
33     \Adefabc
34 No match
35     ABC
36 No match
37
38 /^abc/I
39 Capturing subpattern count = 0
40 Options: anchored
41 No first char
42 No need char
43     abc
44  0: abc
45     \Aabc
46  0: abc
47     *** Failers
48 No match
49     defabc
50 No match
51     \Adefabc
52 No match
53
54 /a+bc/I
55 Capturing subpattern count = 0
56 No options
57 First char = 'a'
58 Need char = 'c'
59
60 /a*bc/I
61 Capturing subpattern count = 0
62 No options
63 No first char
64 Need char = 'c'
65
66 /a{3}bc/I
67 Capturing subpattern count = 0
68 No options
69 First char = 'a'
70 Need char = 'c'
71
72 /(abc|a+z)/I
73 Capturing subpattern count = 1
74 No options
75 First char = 'a'
76 No need char
77
78 /^abc$/I
79 Capturing subpattern count = 0
80 Options: anchored
81 No first char
82 No need char
83     abc
84  0: abc
85     *** Failers
86 No match
87     def\nabc
88 No match
89
90 /ab\idef/X
91 Failed: unrecognized character follows \ at offset 3
92
93 /(?X)ab\idef/X
94 Failed: unrecognized character follows \ at offset 7
95
96 /x{5,4}/
97 Failed: numbers out of order in {} quantifier at offset 5
98
99 /z{65536}/
100 Failed: number too big in {} quantifier at offset 7
101
102 /[abcd/
103 Failed: missing terminating ] for character class at offset 5
104
105 /(?X)[\B]/
106 Failed: invalid escape sequence in character class at offset 6
107
108 /(?X)[\R]/
109 Failed: invalid escape sequence in character class at offset 6
110
111 /(?X)[\X]/
112 Failed: invalid escape sequence in character class at offset 6
113
114 /[\B]/BZ
115 ------------------------------------------------------------------
116         Bra
117         B
118         Ket
119         End
120 ------------------------------------------------------------------
121
122 /[\R]/BZ
123 ------------------------------------------------------------------
124         Bra
125         R
126         Ket
127         End
128 ------------------------------------------------------------------
129
130 /[\X]/BZ
131 ------------------------------------------------------------------
132         Bra
133         X
134         Ket
135         End
136 ------------------------------------------------------------------
137
138 /[z-a]/
139 Failed: range out of order in character class at offset 3
140
141 /^*/
142 Failed: nothing to repeat at offset 1
143
144 /(abc/
145 Failed: missing ) at offset 4
146
147 /(?# abc/
148 Failed: missing ) after comment at offset 7
149
150 /(?z)abc/
151 Failed: unrecognized character after (? or (?- at offset 2
152
153 /.*b/I
154 Capturing subpattern count = 0
155 No options
156 First char at start or follows newline
157 Need char = 'b'
158
159 /.*?b/I
160 Capturing subpattern count = 0
161 No options
162 First char at start or follows newline
163 Need char = 'b'
164
165 /cat|dog|elephant/I
166 Capturing subpattern count = 0
167 No options
168 No first char
169 No need char
170     this sentence eventually mentions a cat
171  0: cat
172     this sentences rambles on and on for a while and then reaches elephant
173  0: elephant
174
175 /cat|dog|elephant/IS
176 Capturing subpattern count = 0
177 No options
178 No first char
179 No need char
180 Subject length lower bound = 3
181 Starting chars: c d e 
182     this sentence eventually mentions a cat
183  0: cat
184     this sentences rambles on and on for a while and then reaches elephant
185  0: elephant
186
187 /cat|dog|elephant/IiS
188 Capturing subpattern count = 0
189 Options: caseless
190 No first char
191 No need char
192 Subject length lower bound = 3
193 Starting chars: C D E c d e 
194     this sentence eventually mentions a CAT cat
195  0: CAT
196     this sentences rambles on and on for a while to elephant ElePhant
197  0: elephant
198
199 /a|[bcd]/IS
200 Capturing subpattern count = 0
201 No options
202 No first char
203 No need char
204 Subject length lower bound = 1
205 Starting chars: a b c d 
206
207 /(a|[^\dZ])/IS
208 Capturing subpattern count = 1
209 No options
210 No first char
211 No need char
212 Subject length lower bound = 1
213 Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a 
214   \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19 
215   \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = > 
216   ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d 
217   e f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f \x80 \x81 \x82 \x83 
218   \x84 \x85 \x86 \x87 \x88 \x89 \x8a \x8b \x8c \x8d \x8e \x8f \x90 \x91 \x92 
219   \x93 \x94 \x95 \x96 \x97 \x98 \x99 \x9a \x9b \x9c \x9d \x9e \x9f \xa0 \xa1 
220   \xa2 \xa3 \xa4 \xa5 \xa6 \xa7 \xa8 \xa9 \xaa \xab \xac \xad \xae \xaf \xb0 
221   \xb1 \xb2 \xb3 \xb4 \xb5 \xb6 \xb7 \xb8 \xb9 \xba \xbb \xbc \xbd \xbe \xbf 
222   \xc0 \xc1 \xc2 \xc3 \xc4 \xc5 \xc6 \xc7 \xc8 \xc9 \xca \xcb \xcc \xcd \xce 
223   \xcf \xd0 \xd1 \xd2 \xd3 \xd4 \xd5 \xd6 \xd7 \xd8 \xd9 \xda \xdb \xdc \xdd 
224   \xde \xdf \xe0 \xe1 \xe2 \xe3 \xe4 \xe5 \xe6 \xe7 \xe8 \xe9 \xea \xeb \xec 
225   \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb 
226   \xfc \xfd \xfe \xff 
227
228 /(a|b)*[\s]/IS
229 Capturing subpattern count = 1
230 No options
231 No first char
232 No need char
233 Subject length lower bound = 1
234 Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 a b 
235
236 /(ab\2)/
237 Failed: reference to non-existent subpattern at offset 6
238
239 /{4,5}abc/
240 Failed: nothing to repeat at offset 4
241
242 /(a)(b)(c)\2/I
243 Capturing subpattern count = 3
244 Max back reference = 2
245 No options
246 First char = 'a'
247 Need char = 'c'
248     abcb
249  0: abcb
250  1: a
251  2: b
252  3: c
253     \O0abcb
254 Matched, but too many substrings
255     \O3abcb
256 Matched, but too many substrings
257  0: abcb
258     \O6abcb
259 Matched, but too many substrings
260  0: abcb
261  1: a
262     \O9abcb
263 Matched, but too many substrings
264  0: abcb
265  1: a
266  2: b
267     \O12abcb
268  0: abcb
269  1: a
270  2: b
271  3: c
272
273 /(a)bc|(a)(b)\2/I
274 Capturing subpattern count = 3
275 Max back reference = 2
276 No options
277 First char = 'a'
278 No need char
279     abc
280  0: abc
281  1: a
282     \O0abc
283 Matched, but too many substrings
284     \O3abc
285 Matched, but too many substrings
286  0: abc
287     \O6abc
288  0: abc
289  1: a
290     aba
291  0: aba
292  1: <unset>
293  2: a
294  3: b
295     \O0aba
296 Matched, but too many substrings
297     \O3aba
298 Matched, but too many substrings
299  0: aba
300     \O6aba
301 Matched, but too many substrings
302  0: aba
303  1: <unset>
304     \O9aba
305 Matched, but too many substrings
306  0: aba
307  1: <unset>
308  2: a
309     \O12aba
310  0: aba
311  1: <unset>
312  2: a
313  3: b
314
315 /abc$/IE
316 Capturing subpattern count = 0
317 Options: dollar_endonly
318 First char = 'a'
319 Need char = 'c'
320     abc
321  0: abc
322     *** Failers
323 No match
324     abc\n
325 No match
326     abc\ndef
327 No match
328
329 /(a)(b)(c)(d)(e)\6/
330 Failed: reference to non-existent subpattern at offset 17
331
332 /the quick brown fox/I
333 Capturing subpattern count = 0
334 No options
335 First char = 't'
336 Need char = 'x'
337     the quick brown fox
338  0: the quick brown fox
339     this is a line with the quick brown fox
340  0: the quick brown fox
341
342 /the quick brown fox/IA
343 Capturing subpattern count = 0
344 Options: anchored
345 No first char
346 No need char
347     the quick brown fox
348  0: the quick brown fox
349     *** Failers
350 No match
351     this is a line with the quick brown fox
352 No match
353
354 /ab(?z)cd/
355 Failed: unrecognized character after (? or (?- at offset 4
356
357 /^abc|def/I
358 Capturing subpattern count = 0
359 No options
360 No first char
361 No need char
362     abcdef
363  0: abc
364     abcdef\B
365  0: def
366
367 /.*((abc)$|(def))/I
368 Capturing subpattern count = 3
369 No options
370 First char at start or follows newline
371 No need char
372     defabc
373  0: defabc
374  1: abc
375  2: abc
376     \Zdefabc
377  0: def
378  1: def
379  2: <unset>
380  3: def
381
382 /)/
383 Failed: unmatched parentheses at offset 0
384
385 /a[]b/
386 Failed: missing terminating ] for character class at offset 4
387
388 /[^aeiou ]{3,}/I
389 Capturing subpattern count = 0
390 No options
391 No first char
392 No need char
393     co-processors, and for
394  0: -pr
395
396 /<.*>/I
397 Capturing subpattern count = 0
398 No options
399 First char = '<'
400 Need char = '>'
401     abc<def>ghi<klm>nop
402  0: <def>ghi<klm>
403
404 /<.*?>/I
405 Capturing subpattern count = 0
406 No options
407 First char = '<'
408 Need char = '>'
409     abc<def>ghi<klm>nop
410  0: <def>
411
412 /<.*>/IU
413 Capturing subpattern count = 0
414 Options: ungreedy
415 First char = '<'
416 Need char = '>'
417     abc<def>ghi<klm>nop
418  0: <def>
419
420 /(?U)<.*>/I
421 Capturing subpattern count = 0
422 No options
423 First char = '<'
424 Need char = '>'
425     abc<def>ghi<klm>nop
426  0: <def>
427
428 /<.*?>/IU
429 Capturing subpattern count = 0
430 Options: ungreedy
431 First char = '<'
432 Need char = '>'
433     abc<def>ghi<klm>nop
434  0: <def>ghi<klm>
435
436 /={3,}/IU
437 Capturing subpattern count = 0
438 Options: ungreedy
439 First char = '='
440 Need char = '='
441     abc========def
442  0: ===
443
444 /(?U)={3,}?/I
445 Capturing subpattern count = 0
446 No options
447 First char = '='
448 Need char = '='
449     abc========def
450  0: ========
451
452 /(?<!bar|cattle)foo/I
453 Capturing subpattern count = 0
454 Max lookbehind = 6
455 No options
456 First char = 'f'
457 Need char = 'o'
458     foo
459  0: foo
460     catfoo
461  0: foo
462     *** Failers
463 No match
464     the barfoo
465 No match
466     and cattlefoo
467 No match
468
469 /(?<=a+)b/
470 Failed: lookbehind assertion is not fixed length at offset 6
471
472 /(?<=aaa|b{0,3})b/
473 Failed: lookbehind assertion is not fixed length at offset 14
474
475 /(?<!(foo)a\1)bar/
476 Failed: lookbehind assertion is not fixed length at offset 12
477
478 /(?i)abc/I
479 Capturing subpattern count = 0
480 No options
481 First char = 'a' (caseless)
482 Need char = 'c' (caseless)
483
484 /(a|(?m)a)/I
485 Capturing subpattern count = 1
486 No options
487 First char = 'a'
488 No need char
489
490 /(?i)^1234/I
491 Capturing subpattern count = 0
492 Options: anchored
493 No first char
494 No need char
495
496 /(^b|(?i)^d)/I
497 Capturing subpattern count = 1
498 Options: anchored
499 No first char
500 No need char
501
502 /(?s).*/I
503 Capturing subpattern count = 0
504 May match empty string
505 Options: anchored
506 No first char
507 No need char
508
509 /[abcd]/IS
510 Capturing subpattern count = 0
511 No options
512 No first char
513 No need char
514 Subject length lower bound = 1
515 Starting chars: a b c d 
516
517 /(?i)[abcd]/IS
518 Capturing subpattern count = 0
519 No options
520 No first char
521 No need char
522 Subject length lower bound = 1
523 Starting chars: A B C D a b c d 
524
525 /(?m)[xy]|(b|c)/IS
526 Capturing subpattern count = 1
527 No options
528 No first char
529 No need char
530 Subject length lower bound = 1
531 Starting chars: b c x y 
532
533 /(^a|^b)/Im
534 Capturing subpattern count = 1
535 Options: multiline
536 First char at start or follows newline
537 No need char
538
539 /(?i)(^a|^b)/Im
540 Capturing subpattern count = 1
541 Options: multiline
542 First char at start or follows newline
543 No need char
544
545 /(a)(?(1)a|b|c)/
546 Failed: conditional group contains more than two branches at offset 13
547
548 /(?(?=a)a|b|c)/
549 Failed: conditional group contains more than two branches at offset 12
550
551 /(?(1a)/
552 Failed: malformed number or name after (?( at offset 4
553
554 /(?(1a))/
555 Failed: malformed number or name after (?( at offset 4
556
557 /(?(?i))/
558 Failed: assertion expected after (?( or (?(?C) at offset 3
559
560 /(?(abc))/
561 Failed: reference to non-existent subpattern at offset 7
562
563 /(?(?<ab))/
564 Failed: assertion expected after (?( or (?(?C) at offset 3
565
566 /((?s)blah)\s+\1/I
567 Capturing subpattern count = 1
568 Max back reference = 1
569 No options
570 First char = 'b'
571 Need char = 'h'
572
573 /((?i)blah)\s+\1/I
574 Capturing subpattern count = 1
575 Max back reference = 1
576 No options
577 First char = 'b' (caseless)
578 Need char = 'h' (caseless)
579
580 /((?i)b)/IDZS
581 ------------------------------------------------------------------
582         Bra
583         CBra 1
584      /i b
585         Ket
586         Ket
587         End
588 ------------------------------------------------------------------
589 Capturing subpattern count = 1
590 No options
591 First char = 'b' (caseless)
592 No need char
593 Subject length lower bound = 1
594 No starting char list
595
596 /(a*b|(?i:c*(?-i)d))/IS
597 Capturing subpattern count = 1
598 No options
599 No first char
600 No need char
601 Subject length lower bound = 1
602 Starting chars: C a b c d 
603
604 /a$/I
605 Capturing subpattern count = 0
606 No options
607 First char = 'a'
608 No need char
609     a
610  0: a
611     a\n
612  0: a
613     *** Failers
614 No match
615     \Za
616 No match
617     \Za\n
618 No match
619
620 /a$/Im
621 Capturing subpattern count = 0
622 Options: multiline
623 First char = 'a'
624 No need char
625     a
626  0: a
627     a\n
628  0: a
629     \Za\n
630  0: a
631     *** Failers
632 No match
633     \Za
634 No match
635
636 /\Aabc/Im
637 Capturing subpattern count = 0
638 Max lookbehind = 1
639 Options: anchored multiline
640 No first char
641 No need char
642
643 /^abc/Im
644 Capturing subpattern count = 0
645 Options: multiline
646 First char at start or follows newline
647 Need char = 'c'
648
649 /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
650 Capturing subpattern count = 5
651 Options: anchored
652 No first char
653 No need char
654   aaaaabbbbbcccccdef
655  0: aaaaabbbbbcccccdef
656  1: aaaaabbbbbcccccdef
657  2: aaaaa
658  3: b
659  4: bbbbccccc
660  5: def
661
662 /(?<=foo)[ab]/IS
663 Capturing subpattern count = 0
664 Max lookbehind = 3
665 No options
666 No first char
667 No need char
668 Subject length lower bound = 1
669 Starting chars: a b 
670
671 /(?<!foo)(alpha|omega)/IS
672 Capturing subpattern count = 1
673 Max lookbehind = 3
674 No options
675 No first char
676 Need char = 'a'
677 Subject length lower bound = 5
678 Starting chars: a o 
679
680 /(?!alphabet)[ab]/IS
681 Capturing subpattern count = 0
682 No options
683 No first char
684 No need char
685 Subject length lower bound = 1
686 Starting chars: a b 
687
688 /(?<=foo\n)^bar/Im
689 Capturing subpattern count = 0
690 Max lookbehind = 4
691 Contains explicit CR or LF match
692 Options: multiline
693 No first char
694 Need char = 'r'
695     foo\nbarbar
696  0: bar
697     ***Failers
698 No match
699     rhubarb
700 No match
701     barbell
702 No match
703     abc\nbarton
704 No match
705
706 /^(?<=foo\n)bar/Im
707 Capturing subpattern count = 0
708 Max lookbehind = 4
709 Contains explicit CR or LF match
710 Options: multiline
711 First char at start or follows newline
712 Need char = 'r'
713     foo\nbarbar
714  0: bar
715     ***Failers
716 No match
717     rhubarb
718 No match
719     barbell
720 No match
721     abc\nbarton
722 No match
723
724 /(?>^abc)/Im
725 Capturing subpattern count = 0
726 Options: multiline
727 First char at start or follows newline
728 Need char = 'c'
729     abc
730  0: abc
731     def\nabc
732  0: abc
733     *** Failers
734 No match
735     defabc
736 No match
737
738 /(?<=ab(c+)d)ef/
739 Failed: lookbehind assertion is not fixed length at offset 11
740
741 /(?<=ab(?<=c+)d)ef/
742 Failed: lookbehind assertion is not fixed length at offset 12
743
744 /(?<=ab(c|de)f)g/
745 Failed: lookbehind assertion is not fixed length at offset 13
746
747 /The next three are in testinput2 because they have variable length branches/
748
749 /(?<=bullock|donkey)-cart/I
750 Capturing subpattern count = 0
751 Max lookbehind = 7
752 No options
753 First char = '-'
754 Need char = 't'
755     the bullock-cart
756  0: -cart
757     a donkey-cart race
758  0: -cart
759     *** Failers
760 No match
761     cart
762 No match
763     horse-and-cart
764 No match
765
766 /(?<=ab(?i)x|y|z)/I
767 Capturing subpattern count = 0
768 Max lookbehind = 3
769 May match empty string
770 No options
771 No first char
772 No need char
773
774 /(?>.*)(?<=(abcd)|(xyz))/I
775 Capturing subpattern count = 2
776 Max lookbehind = 4
777 May match empty string
778 No options
779 No first char
780 No need char
781     alphabetabcd
782  0: alphabetabcd
783  1: abcd
784     endingxyz
785  0: endingxyz
786  1: <unset>
787  2: xyz
788
789 /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
790 Capturing subpattern count = 0
791 Max lookbehind = 4
792 No options
793 First char = 'Z'
794 Need char = 'Z'
795     abxyZZ
796  0: ZZ
797     abXyZZ
798  0: ZZ
799     ZZZ
800  0: ZZ
801     zZZ
802  0: ZZ
803     bZZ
804  0: ZZ
805     BZZ
806  0: ZZ
807     *** Failers
808 No match
809     ZZ
810 No match
811     abXYZZ
812 No match
813     zzz
814 No match
815     bzz
816 No match
817
818 /(?<!(foo)a)bar/I
819 Capturing subpattern count = 1
820 Max lookbehind = 4
821 No options
822 First char = 'b'
823 Need char = 'r'
824     bar
825  0: bar
826     foobbar
827  0: bar
828     *** Failers
829 No match
830     fooabar
831 No match
832
833 /This one is here because Perl behaves differently; see also the following/I
834 Capturing subpattern count = 0
835 No options
836 First char = 'T'
837 Need char = 'g'
838
839 /^(a\1?){4}$/I
840 Capturing subpattern count = 1
841 Max back reference = 1
842 Options: anchored
843 No first char
844 No need char
845     aaaa
846 No match
847     aaaaaa
848 No match
849     
850 /Perl does not fail these two for the final subjects. Neither did PCRE until/
851 /release 8.01. The problem is in backtracking into a subpattern that contains/
852 No match
853 /a recursive reference to itself. PCRE has now made these into atomic patterns./
854 No match
855
856 /^(xa|=?\1a){2}$/
857     xa=xaa
858  0: xa=xaa
859  1: =xaa
860     ** Failers
861 No match
862     xa=xaaa
863 No match
864
865 /^(xa|=?\1a)+$/
866     xa=xaa
867  0: xa=xaa
868  1: =xaa
869     ** Failers
870 No match
871     xa=xaaa
872 No match
873
874 /These are syntax tests from Perl 5.005/I
875 Capturing subpattern count = 0
876 No options
877 First char = 'T'
878 Need char = '5'
879
880 /a[b-a]/
881 Failed: range out of order in character class at offset 4
882
883 /a[]b/
884 Failed: missing terminating ] for character class at offset 4
885
886 /a[/
887 Failed: missing terminating ] for character class at offset 2
888
889 /*a/
890 Failed: nothing to repeat at offset 0
891
892 /(*)b/
893 Failed: nothing to repeat at offset 1
894
895 /abc)/
896 Failed: unmatched parentheses at offset 3
897
898 /(abc/
899 Failed: missing ) at offset 4
900
901 /a**/
902 Failed: nothing to repeat at offset 2
903
904 /)(/
905 Failed: unmatched parentheses at offset 0
906
907 /\1/
908 Failed: reference to non-existent subpattern at offset 2
909
910 /\2/
911 Failed: reference to non-existent subpattern at offset 2
912
913 /(a)|\2/
914 Failed: reference to non-existent subpattern at offset 6
915
916 /a[b-a]/Ii
917 Failed: range out of order in character class at offset 4
918
919 /a[]b/Ii
920 Failed: missing terminating ] for character class at offset 4
921
922 /a[/Ii
923 Failed: missing terminating ] for character class at offset 2
924
925 /*a/Ii
926 Failed: nothing to repeat at offset 0
927
928 /(*)b/Ii
929 Failed: nothing to repeat at offset 1
930
931 /abc)/Ii
932 Failed: unmatched parentheses at offset 3
933
934 /(abc/Ii
935 Failed: missing ) at offset 4
936
937 /a**/Ii
938 Failed: nothing to repeat at offset 2
939
940 /)(/Ii
941 Failed: unmatched parentheses at offset 0
942
943 /:(?:/
944 Failed: missing ) at offset 4
945
946 /(?<%)b/
947 Failed: unrecognized character after (?< at offset 3
948
949 /a(?{)b/
950 Failed: unrecognized character after (? or (?- at offset 3
951
952 /a(?{{})b/
953 Failed: unrecognized character after (? or (?- at offset 3
954
955 /a(?{}})b/
956 Failed: unrecognized character after (? or (?- at offset 3
957
958 /a(?{"{"})b/
959 Failed: unrecognized character after (? or (?- at offset 3
960
961 /a(?{"{"}})b/
962 Failed: unrecognized character after (? or (?- at offset 3
963
964 /(?(1?)a|b)/
965 Failed: malformed number or name after (?( at offset 4
966
967 /[a[:xyz:/
968 Failed: missing terminating ] for character class at offset 8
969
970 /(?<=x+)y/
971 Failed: lookbehind assertion is not fixed length at offset 6
972
973 /a{37,17}/
974 Failed: numbers out of order in {} quantifier at offset 7
975
976 /abc/\
977 Failed: \ at end of pattern at offset 4
978
979 /abc/\i
980 Failed: \ at end of pattern at offset 4
981
982 /(a)bc(d)/I
983 Capturing subpattern count = 2
984 No options
985 First char = 'a'
986 Need char = 'd'
987     abcd
988  0: abcd
989  1: a
990  2: d
991     abcd\C2
992  0: abcd
993  1: a
994  2: d
995  2C d (1)
996     abcd\C5
997  0: abcd
998  1: a
999  2: d
1000 copy substring 5 failed -7
1001
1002 /(.{20})/I
1003 Capturing subpattern count = 1
1004 No options
1005 No first char
1006 No need char
1007     abcdefghijklmnopqrstuvwxyz
1008  0: abcdefghijklmnopqrst
1009  1: abcdefghijklmnopqrst
1010     abcdefghijklmnopqrstuvwxyz\C1
1011  0: abcdefghijklmnopqrst
1012  1: abcdefghijklmnopqrst
1013  1C abcdefghijklmnopqrst (20)
1014     abcdefghijklmnopqrstuvwxyz\G1
1015  0: abcdefghijklmnopqrst
1016  1: abcdefghijklmnopqrst
1017  1G abcdefghijklmnopqrst (20)
1018
1019 /(.{15})/I
1020 Capturing subpattern count = 1
1021 No options
1022 No first char
1023 No need char
1024     abcdefghijklmnopqrstuvwxyz
1025  0: abcdefghijklmno
1026  1: abcdefghijklmno
1027     abcdefghijklmnopqrstuvwxyz\C1\G1
1028  0: abcdefghijklmno
1029  1: abcdefghijklmno
1030  1C abcdefghijklmno (15)
1031  1G abcdefghijklmno (15)
1032
1033 /(.{16})/I
1034 Capturing subpattern count = 1
1035 No options
1036 No first char
1037 No need char
1038     abcdefghijklmnopqrstuvwxyz
1039  0: abcdefghijklmnop
1040  1: abcdefghijklmnop
1041     abcdefghijklmnopqrstuvwxyz\C1\G1\L
1042  0: abcdefghijklmnop
1043  1: abcdefghijklmnop
1044  1C abcdefghijklmnop (16)
1045  1G abcdefghijklmnop (16)
1046  0L abcdefghijklmnop
1047  1L abcdefghijklmnop
1048
1049 /^(a|(bc))de(f)/I
1050 Capturing subpattern count = 3
1051 Options: anchored
1052 No first char
1053 No need char
1054     adef\G1\G2\G3\G4\L
1055  0: adef
1056  1: a
1057  2: <unset>
1058  3: f
1059  1G a (1)
1060  2G  (0)
1061  3G f (1)
1062 get substring 4 failed -7
1063  0L adef
1064  1L a
1065  2L 
1066  3L f
1067     bcdef\G1\G2\G3\G4\L
1068  0: bcdef
1069  1: bc
1070  2: bc
1071  3: f
1072  1G bc (2)
1073  2G bc (2)
1074  3G f (1)
1075 get substring 4 failed -7
1076  0L bcdef
1077  1L bc
1078  2L bc
1079  3L f
1080     adefghijk\C0
1081  0: adef
1082  1: a
1083  2: <unset>
1084  3: f
1085  0C adef (4)
1086
1087 /^abc\00def/I
1088 Capturing subpattern count = 0
1089 Options: anchored
1090 No first char
1091 No need char
1092     abc\00def\L\C0
1093  0: abc\x00def
1094  0C abc\x00def (7)
1095  0L abc
1096
1097 /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1098 )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1099 )?)?)?)?)?)?)?)?)?otherword/I
1100 Capturing subpattern count = 8
1101 Contains explicit CR or LF match
1102 No options
1103 First char = 'w'
1104 Need char = 'd'
1105
1106 /.*X/IDZ
1107 ------------------------------------------------------------------
1108         Bra
1109         Any*
1110         X
1111         Ket
1112         End
1113 ------------------------------------------------------------------
1114 Capturing subpattern count = 0
1115 No options
1116 First char at start or follows newline
1117 Need char = 'X'
1118
1119 /.*X/IDZs
1120 ------------------------------------------------------------------
1121         Bra
1122         AllAny*
1123         X
1124         Ket
1125         End
1126 ------------------------------------------------------------------
1127 Capturing subpattern count = 0
1128 Options: anchored dotall
1129 No first char
1130 Need char = 'X'
1131
1132 /(.*X|^B)/IDZ
1133 ------------------------------------------------------------------
1134         Bra
1135         CBra 1
1136         Any*
1137         X
1138         Alt
1139         ^
1140         B
1141         Ket
1142         Ket
1143         End
1144 ------------------------------------------------------------------
1145 Capturing subpattern count = 1
1146 No options
1147 First char at start or follows newline
1148 No need char
1149
1150 /(.*X|^B)/IDZs
1151 ------------------------------------------------------------------
1152         Bra
1153         CBra 1
1154         AllAny*
1155         X
1156         Alt
1157         ^
1158         B
1159         Ket
1160         Ket
1161         End
1162 ------------------------------------------------------------------
1163 Capturing subpattern count = 1
1164 Options: anchored dotall
1165 No first char
1166 No need char
1167
1168 /(?s)(.*X|^B)/IDZ
1169 ------------------------------------------------------------------
1170         Bra
1171         CBra 1
1172         AllAny*
1173         X
1174         Alt
1175         ^
1176         B
1177         Ket
1178         Ket
1179         End
1180 ------------------------------------------------------------------
1181 Capturing subpattern count = 1
1182 Options: anchored
1183 No first char
1184 No need char
1185
1186 /(?s:.*X|^B)/IDZ
1187 ------------------------------------------------------------------
1188         Bra
1189         Bra
1190         AllAny*
1191         X
1192         Alt
1193         ^
1194         B
1195         Ket
1196         Ket
1197         End
1198 ------------------------------------------------------------------
1199 Capturing subpattern count = 0
1200 Options: anchored
1201 No first char
1202 No need char
1203
1204 /\Biss\B/I+
1205 Capturing subpattern count = 0
1206 Max lookbehind = 1
1207 No options
1208 First char = 'i'
1209 Need char = 's'
1210     Mississippi
1211  0: iss
1212  0+ issippi
1213
1214 /iss/IG+
1215 Capturing subpattern count = 0
1216 No options
1217 First char = 'i'
1218 Need char = 's'
1219     Mississippi
1220  0: iss
1221  0+ issippi
1222  0: iss
1223  0+ ippi
1224
1225 /\Biss\B/IG+
1226 Capturing subpattern count = 0
1227 Max lookbehind = 1
1228 No options
1229 First char = 'i'
1230 Need char = 's'
1231     Mississippi
1232  0: iss
1233  0+ issippi
1234
1235 /\Biss\B/Ig+
1236 Capturing subpattern count = 0
1237 Max lookbehind = 1
1238 No options
1239 First char = 'i'
1240 Need char = 's'
1241     Mississippi
1242  0: iss
1243  0+ issippi
1244  0: iss
1245  0+ ippi
1246     *** Failers
1247 No match
1248     Mississippi\A
1249 No match
1250
1251 /(?<=[Ms])iss/Ig+
1252 Capturing subpattern count = 0
1253 Max lookbehind = 1
1254 No options
1255 First char = 'i'
1256 Need char = 's'
1257     Mississippi
1258  0: iss
1259  0+ issippi
1260  0: iss
1261  0+ ippi
1262
1263 /(?<=[Ms])iss/IG+
1264 Capturing subpattern count = 0
1265 Max lookbehind = 1
1266 No options
1267 First char = 'i'
1268 Need char = 's'
1269     Mississippi
1270  0: iss
1271  0+ issippi
1272
1273 /^iss/Ig+
1274 Capturing subpattern count = 0
1275 Options: anchored
1276 No first char
1277 No need char
1278     ississippi
1279  0: iss
1280  0+ issippi
1281
1282 /.*iss/Ig+
1283 Capturing subpattern count = 0
1284 No options
1285 First char at start or follows newline
1286 Need char = 's'
1287     abciss\nxyzisspqr
1288  0: abciss
1289  0+ \x0axyzisspqr
1290  0: xyziss
1291  0+ pqr
1292
1293 /.i./I+g
1294 Capturing subpattern count = 0
1295 No options
1296 No first char
1297 Need char = 'i'
1298     Mississippi
1299  0: Mis
1300  0+ sissippi
1301  0: sis
1302  0+ sippi
1303  0: sip
1304  0+ pi
1305     Mississippi\A
1306  0: Mis
1307  0+ sissippi
1308  0: sis
1309  0+ sippi
1310  0: sip
1311  0+ pi
1312     Missouri river
1313  0: Mis
1314  0+ souri river
1315  0: ri 
1316  0+ river
1317  0: riv
1318  0+ er
1319     Missouri river\A
1320  0: Mis
1321  0+ souri river
1322
1323 /^.is/I+g
1324 Capturing subpattern count = 0
1325 Options: anchored
1326 No first char
1327 No need char
1328     Mississippi
1329  0: Mis
1330  0+ sissippi
1331
1332 /^ab\n/Ig+
1333 Capturing subpattern count = 0
1334 Contains explicit CR or LF match
1335 Options: anchored
1336 No first char
1337 No need char
1338     ab\nab\ncd
1339  0: ab\x0a
1340  0+ ab\x0acd
1341
1342 /^ab\n/Img+
1343 Capturing subpattern count = 0
1344 Contains explicit CR or LF match
1345 Options: multiline
1346 First char at start or follows newline
1347 Need char = \x0a
1348     ab\nab\ncd
1349  0: ab\x0a
1350  0+ ab\x0acd
1351  0: ab\x0a
1352  0+ cd
1353
1354 /abc/I
1355 Capturing subpattern count = 0
1356 No options
1357 First char = 'a'
1358 Need char = 'c'
1359
1360 /abc|bac/I
1361 Capturing subpattern count = 0
1362 No options
1363 No first char
1364 Need char = 'c'
1365
1366 /(abc|bac)/I
1367 Capturing subpattern count = 1
1368 No options
1369 No first char
1370 Need char = 'c'
1371
1372 /(abc|(c|dc))/I
1373 Capturing subpattern count = 2
1374 No options
1375 No first char
1376 Need char = 'c'
1377
1378 /(abc|(d|de)c)/I
1379 Capturing subpattern count = 2
1380 No options
1381 No first char
1382 Need char = 'c'
1383
1384 /a*/I
1385 Capturing subpattern count = 0
1386 May match empty string
1387 No options
1388 No first char
1389 No need char
1390
1391 /a+/I
1392 Capturing subpattern count = 0
1393 No options
1394 First char = 'a'
1395 No need char
1396
1397 /(baa|a+)/I
1398 Capturing subpattern count = 1
1399 No options
1400 No first char
1401 Need char = 'a'
1402
1403 /a{0,3}/I
1404 Capturing subpattern count = 0
1405 May match empty string
1406 No options
1407 No first char
1408 No need char
1409
1410 /baa{3,}/I
1411 Capturing subpattern count = 0
1412 No options
1413 First char = 'b'
1414 Need char = 'a'
1415
1416 /"([^\\"]+|\\.)*"/I
1417 Capturing subpattern count = 1
1418 No options
1419 First char = '"'
1420 Need char = '"'
1421
1422 /(abc|ab[cd])/I
1423 Capturing subpattern count = 1
1424 No options
1425 First char = 'a'
1426 No need char
1427
1428 /(a|.)/I
1429 Capturing subpattern count = 1
1430 No options
1431 No first char
1432 No need char
1433
1434 /a|ba|\w/I
1435 Capturing subpattern count = 0
1436 No options
1437 No first char
1438 No need char
1439
1440 /abc(?=pqr)/I
1441 Capturing subpattern count = 0
1442 No options
1443 First char = 'a'
1444 Need char = 'r'
1445
1446 /...(?<=abc)/I
1447 Capturing subpattern count = 0
1448 Max lookbehind = 3
1449 No options
1450 No first char
1451 No need char
1452
1453 /abc(?!pqr)/I
1454 Capturing subpattern count = 0
1455 No options
1456 First char = 'a'
1457 Need char = 'c'
1458
1459 /ab./I
1460 Capturing subpattern count = 0
1461 No options
1462 First char = 'a'
1463 Need char = 'b'
1464
1465 /ab[xyz]/I
1466 Capturing subpattern count = 0
1467 No options
1468 First char = 'a'
1469 Need char = 'b'
1470
1471 /abc*/I
1472 Capturing subpattern count = 0
1473 No options
1474 First char = 'a'
1475 Need char = 'b'
1476
1477 /ab.c*/I
1478 Capturing subpattern count = 0
1479 No options
1480 First char = 'a'
1481 Need char = 'b'
1482
1483 /a.c*/I
1484 Capturing subpattern count = 0
1485 No options
1486 First char = 'a'
1487 No need char
1488
1489 /.c*/I
1490 Capturing subpattern count = 0
1491 No options
1492 No first char
1493 No need char
1494
1495 /ac*/I
1496 Capturing subpattern count = 0
1497 No options
1498 First char = 'a'
1499 No need char
1500
1501 /(a.c*|b.c*)/I
1502 Capturing subpattern count = 1
1503 No options
1504 No first char
1505 No need char
1506
1507 /a.c*|aba/I
1508 Capturing subpattern count = 0
1509 No options
1510 First char = 'a'
1511 No need char
1512
1513 /.+a/I
1514 Capturing subpattern count = 0
1515 No options
1516 No first char
1517 Need char = 'a'
1518
1519 /(?=abcda)a.*/I
1520 Capturing subpattern count = 0
1521 No options
1522 First char = 'a'
1523 Need char = 'a'
1524
1525 /(?=a)a.*/I
1526 Capturing subpattern count = 0
1527 No options
1528 First char = 'a'
1529 No need char
1530
1531 /a(b)*/I
1532 Capturing subpattern count = 1
1533 No options
1534 First char = 'a'
1535 No need char
1536
1537 /a\d*/I
1538 Capturing subpattern count = 0
1539 No options
1540 First char = 'a'
1541 No need char
1542
1543 /ab\d*/I
1544 Capturing subpattern count = 0
1545 No options
1546 First char = 'a'
1547 Need char = 'b'
1548
1549 /a(\d)*/I
1550 Capturing subpattern count = 1
1551 No options
1552 First char = 'a'
1553 No need char
1554
1555 /abcde{0,0}/I
1556 Capturing subpattern count = 0
1557 No options
1558 First char = 'a'
1559 Need char = 'd'
1560
1561 /ab\d+/I
1562 Capturing subpattern count = 0
1563 No options
1564 First char = 'a'
1565 Need char = 'b'
1566
1567 /a(?(1)b)(.)/I
1568 Capturing subpattern count = 1
1569 Max back reference = 1
1570 No options
1571 First char = 'a'
1572 No need char
1573
1574 /a(?(1)bag|big)(.)/I
1575 Capturing subpattern count = 1
1576 Max back reference = 1
1577 No options
1578 First char = 'a'
1579 Need char = 'g'
1580
1581 /a(?(1)bag|big)*(.)/I
1582 Capturing subpattern count = 1
1583 Max back reference = 1
1584 No options
1585 First char = 'a'
1586 No need char
1587
1588 /a(?(1)bag|big)+(.)/I
1589 Capturing subpattern count = 1
1590 Max back reference = 1
1591 No options
1592 First char = 'a'
1593 Need char = 'g'
1594
1595 /a(?(1)b..|b..)(.)/I
1596 Capturing subpattern count = 1
1597 Max back reference = 1
1598 No options
1599 First char = 'a'
1600 Need char = 'b'
1601
1602 /ab\d{0}e/I
1603 Capturing subpattern count = 0
1604 No options
1605 First char = 'a'
1606 Need char = 'e'
1607
1608 /a?b?/I
1609 Capturing subpattern count = 0
1610 May match empty string
1611 No options
1612 No first char
1613 No need char
1614     a
1615  0: a
1616     b
1617  0: b
1618     ab
1619  0: ab
1620     \
1621  0: 
1622     *** Failers
1623  0: 
1624     \N
1625 No match
1626
1627 /|-/I
1628 Capturing subpattern count = 0
1629 May match empty string
1630 No options
1631 No first char
1632 No need char
1633     abcd
1634  0: 
1635     -abc
1636  0: 
1637     \Nab-c
1638  0: -
1639     *** Failers
1640  0: 
1641     \Nabc
1642 No match
1643
1644 /^.?abcd/IS
1645 Capturing subpattern count = 0
1646 Options: anchored
1647 No first char
1648 Need char = 'd'
1649 Subject length lower bound = 4
1650 No starting char list
1651
1652 /\(             # ( at start
1653   (?:           # Non-capturing bracket
1654   (?>[^()]+)    # Either a sequence of non-brackets (no backtracking)
1655   |             # Or
1656   (?R)          # Recurse - i.e. nested bracketed string
1657   )*            # Zero or more contents
1658   \)            # Closing )
1659   /Ix
1660 Capturing subpattern count = 0
1661 Options: extended
1662 First char = '('
1663 Need char = ')'
1664     (abcd)
1665  0: (abcd)
1666     (abcd)xyz
1667  0: (abcd)
1668     xyz(abcd)
1669  0: (abcd)
1670     (ab(xy)cd)pqr
1671  0: (ab(xy)cd)
1672     (ab(xycd)pqr
1673  0: (xycd)
1674     () abc ()
1675  0: ()
1676     12(abcde(fsh)xyz(foo(bar))lmno)89
1677  0: (abcde(fsh)xyz(foo(bar))lmno)
1678     *** Failers
1679 No match
1680     abcd
1681 No match
1682     abcd)
1683 No match
1684     (abcd
1685 No match
1686
1687 /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1688 Capturing subpattern count = 1
1689 Options: extended
1690 First char = '('
1691 Need char = ')'
1692     (ab(xy)cd)pqr
1693  0: (ab(xy)cd)
1694  1: cd
1695     1(abcd)(x(y)z)pqr
1696  0: (abcd)
1697  1: abcd
1698  0: (x(y)z)
1699  1: z
1700
1701 /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1702 Capturing subpattern count = 0
1703 Options: extended
1704 First char = '('
1705 Need char = ')'
1706     (abcd)
1707  0: (abcd)
1708     (ab(xy)cd)
1709  0: (xy)
1710     (a(b(c)d)e)
1711  0: (c)
1712     ((ab))
1713  0: ((ab))
1714     *** Failers
1715 No match
1716     ()
1717 No match
1718
1719 /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1720 Capturing subpattern count = 0
1721 Options: extended
1722 First char = '('
1723 Need char = ')'
1724     ()
1725  0: ()
1726     12(abcde(fsh)xyz(foo(bar))lmno)89
1727  0: (fsh)
1728
1729 /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1730 Capturing subpattern count = 1
1731 Options: extended
1732 First char = '('
1733 Need char = ')'
1734     (ab(xy)cd)
1735  0: (ab(xy)cd)
1736  1: cd
1737
1738 /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1739 Capturing subpattern count = 2
1740 Options: extended
1741 First char = '('
1742 Need char = ')'
1743     (ab(xy)cd)
1744  0: (ab(xy)cd)
1745  1: ab(xy)cd
1746  2: cd
1747
1748 /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1749 Capturing subpattern count = 3
1750 Options: extended
1751 First char = '('
1752 Need char = ')'
1753     (ab(xy)cd)
1754  0: (ab(xy)cd)
1755  1: <unset>
1756  2: ab(xy)cd
1757  3: cd
1758     (123ab(xy)cd)
1759  0: (123ab(xy)cd)
1760  1: 123
1761  2: ab(xy)cd
1762  3: cd
1763
1764 /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1765 Capturing subpattern count = 3
1766 Options: extended
1767 First char = '('
1768 Need char = ')'
1769     (ab(xy)cd)
1770  0: (ab(xy)cd)
1771  1: ab(xy)cd
1772  2: <unset>
1773  3: cd
1774     (123ab(xy)cd)
1775  0: (123ab(xy)cd)
1776  1: 123ab(xy)cd
1777  2: 123
1778  3: cd
1779
1780 /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1781 Capturing subpattern count = 11
1782 Options: extended
1783 First char = '('
1784 Need char = ')'
1785     (ab(xy)cd)
1786  0: (ab(xy)cd)
1787  1: ab(xy)cd
1788  2: ab(xy)cd
1789  3: ab(xy)cd
1790  4: ab(xy)cd
1791  5: ab(xy)cd
1792  6: ab(xy)cd
1793  7: ab(xy)cd
1794  8: ab(xy)cd
1795  9: ab(xy)cd
1796 10: ab(xy)cd
1797 11: cd
1798
1799 /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1800 Capturing subpattern count = 3
1801 Options: extended
1802 First char = '('
1803 Need char = ')'
1804     (abcd(xyz<p>qrs)123)
1805  0: (abcd(xyz<p>qrs)123)
1806  1: abcd(xyz<p>qrs)123
1807  2: 123
1808
1809 /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1810 Capturing subpattern count = 3
1811 Options: extended
1812 First char = '('
1813 Need char = ')'
1814     (ab(cd)ef)
1815  0: (ab(cd)ef)
1816  1: ab(cd)ef
1817  2: ef
1818  3: (cd)
1819     (ab(cd(ef)gh)ij)
1820  0: (ab(cd(ef)gh)ij)
1821  1: ab(cd(ef)gh)ij
1822  2: ij
1823  3: (cd(ef)gh)
1824
1825 /^[[:alnum:]]/DZ
1826 ------------------------------------------------------------------
1827         Bra
1828         ^
1829         [0-9A-Za-z]
1830         Ket
1831         End
1832 ------------------------------------------------------------------
1833 Capturing subpattern count = 0
1834 Options: anchored
1835 No first char
1836 No need char
1837
1838 /^[[:^alnum:]]/DZ
1839 ------------------------------------------------------------------
1840         Bra
1841         ^
1842         [\x00-/:-@[-`{-\xff] (neg)
1843         Ket
1844         End
1845 ------------------------------------------------------------------
1846 Capturing subpattern count = 0
1847 Options: anchored
1848 No first char
1849 No need char
1850
1851 /^[[:alpha:]]/DZ
1852 ------------------------------------------------------------------
1853         Bra
1854         ^
1855         [A-Za-z]
1856         Ket
1857         End
1858 ------------------------------------------------------------------
1859 Capturing subpattern count = 0
1860 Options: anchored
1861 No first char
1862 No need char
1863
1864 /^[[:^alpha:]]/DZ
1865 ------------------------------------------------------------------
1866         Bra
1867         ^
1868         [\x00-@[-`{-\xff] (neg)
1869         Ket
1870         End
1871 ------------------------------------------------------------------
1872 Capturing subpattern count = 0
1873 Options: anchored
1874 No first char
1875 No need char
1876
1877 /[_[:alpha:]]/IS
1878 Capturing subpattern count = 0
1879 No options
1880 No first char
1881 No need char
1882 Subject length lower bound = 1
1883 Starting chars: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z 
1884   _ a b c d e f g h i j k l m n o p q r s t u v w x y z 
1885
1886 /^[[:ascii:]]/DZ
1887 ------------------------------------------------------------------
1888         Bra
1889         ^
1890         [\x00-\x7f]
1891         Ket
1892         End
1893 ------------------------------------------------------------------
1894 Capturing subpattern count = 0
1895 Options: anchored
1896 No first char
1897 No need char
1898
1899 /^[[:^ascii:]]/DZ
1900 ------------------------------------------------------------------
1901         Bra
1902         ^
1903         [\x80-\xff] (neg)
1904         Ket
1905         End
1906 ------------------------------------------------------------------
1907 Capturing subpattern count = 0
1908 Options: anchored
1909 No first char
1910 No need char
1911
1912 /^[[:blank:]]/DZ
1913 ------------------------------------------------------------------
1914         Bra
1915         ^
1916         [\x09 ]
1917         Ket
1918         End
1919 ------------------------------------------------------------------
1920 Capturing subpattern count = 0
1921 Options: anchored
1922 No first char
1923 No need char
1924
1925 /^[[:^blank:]]/DZ
1926 ------------------------------------------------------------------
1927         Bra
1928         ^
1929         [\x00-\x08\x0a-\x1f!-\xff] (neg)
1930         Ket
1931         End
1932 ------------------------------------------------------------------
1933 Capturing subpattern count = 0
1934 Options: anchored
1935 No first char
1936 No need char
1937
1938 /[\n\x0b\x0c\x0d[:blank:]]/IS
1939 Capturing subpattern count = 0
1940 Contains explicit CR or LF match
1941 No options
1942 No first char
1943 No need char
1944 Subject length lower bound = 1
1945 Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 
1946
1947 /^[[:cntrl:]]/DZ
1948 ------------------------------------------------------------------
1949         Bra
1950         ^
1951         [\x00-\x1f\x7f]
1952         Ket
1953         End
1954 ------------------------------------------------------------------
1955 Capturing subpattern count = 0
1956 Options: anchored
1957 No first char
1958 No need char
1959
1960 /^[[:digit:]]/DZ
1961 ------------------------------------------------------------------
1962         Bra
1963         ^
1964         [0-9]
1965         Ket
1966         End
1967 ------------------------------------------------------------------
1968 Capturing subpattern count = 0
1969 Options: anchored
1970 No first char
1971 No need char
1972
1973 /^[[:graph:]]/DZ
1974 ------------------------------------------------------------------
1975         Bra
1976         ^
1977         [!-~]
1978         Ket
1979         End
1980 ------------------------------------------------------------------
1981 Capturing subpattern count = 0
1982 Options: anchored
1983 No first char
1984 No need char
1985
1986 /^[[:lower:]]/DZ
1987 ------------------------------------------------------------------
1988         Bra
1989         ^
1990         [a-z]
1991         Ket
1992         End
1993 ------------------------------------------------------------------
1994 Capturing subpattern count = 0
1995 Options: anchored
1996 No first char
1997 No need char
1998
1999 /^[[:print:]]/DZ
2000 ------------------------------------------------------------------
2001         Bra
2002         ^
2003         [ -~]
2004         Ket
2005         End
2006 ------------------------------------------------------------------
2007 Capturing subpattern count = 0
2008 Options: anchored
2009 No first char
2010 No need char
2011
2012 /^[[:punct:]]/DZ
2013 ------------------------------------------------------------------
2014         Bra
2015         ^
2016         [!-/:-@[-`{-~]
2017         Ket
2018         End
2019 ------------------------------------------------------------------
2020 Capturing subpattern count = 0
2021 Options: anchored
2022 No first char
2023 No need char
2024
2025 /^[[:space:]]/DZ
2026 ------------------------------------------------------------------
2027         Bra
2028         ^
2029         [\x09-\x0d ]
2030         Ket
2031         End
2032 ------------------------------------------------------------------
2033 Capturing subpattern count = 0
2034 Options: anchored
2035 No first char
2036 No need char
2037
2038 /^[[:upper:]]/DZ
2039 ------------------------------------------------------------------
2040         Bra
2041         ^
2042         [A-Z]
2043         Ket
2044         End
2045 ------------------------------------------------------------------
2046 Capturing subpattern count = 0
2047 Options: anchored
2048 No first char
2049 No need char
2050
2051 /^[[:xdigit:]]/DZ
2052 ------------------------------------------------------------------
2053         Bra
2054         ^
2055         [0-9A-Fa-f]
2056         Ket
2057         End
2058 ------------------------------------------------------------------
2059 Capturing subpattern count = 0
2060 Options: anchored
2061 No first char
2062 No need char
2063
2064 /^[[:word:]]/DZ
2065 ------------------------------------------------------------------
2066         Bra
2067         ^
2068         [0-9A-Z_a-z]
2069         Ket
2070         End
2071 ------------------------------------------------------------------
2072 Capturing subpattern count = 0
2073 Options: anchored
2074 No first char
2075 No need char
2076
2077 /^[[:^cntrl:]]/DZ
2078 ------------------------------------------------------------------
2079         Bra
2080         ^
2081         [ -~\x80-\xff] (neg)
2082         Ket
2083         End
2084 ------------------------------------------------------------------
2085 Capturing subpattern count = 0
2086 Options: anchored
2087 No first char
2088 No need char
2089
2090 /^[12[:^digit:]]/DZ
2091 ------------------------------------------------------------------
2092         Bra
2093         ^
2094         [\x00-/12:-\xff] (neg)
2095         Ket
2096         End
2097 ------------------------------------------------------------------
2098 Capturing subpattern count = 0
2099 Options: anchored
2100 No first char
2101 No need char
2102
2103 /^[[:^blank:]]/DZ
2104 ------------------------------------------------------------------
2105         Bra
2106         ^
2107         [\x00-\x08\x0a-\x1f!-\xff] (neg)
2108         Ket
2109         End
2110 ------------------------------------------------------------------
2111 Capturing subpattern count = 0
2112 Options: anchored
2113 No first char
2114 No need char
2115
2116 /[01[:alpha:]%]/DZ
2117 ------------------------------------------------------------------
2118         Bra
2119         [%01A-Za-z]
2120         Ket
2121         End
2122 ------------------------------------------------------------------
2123 Capturing subpattern count = 0
2124 No options
2125 No first char
2126 No need char
2127
2128 /[[.ch.]]/I
2129 Failed: POSIX collating elements are not supported at offset 1
2130
2131 /[[=ch=]]/I
2132 Failed: POSIX collating elements are not supported at offset 1
2133
2134 /[[:rhubarb:]]/I
2135 Failed: unknown POSIX class name at offset 3
2136
2137 /[[:upper:]]/Ii
2138 Capturing subpattern count = 0
2139 Options: caseless
2140 No first char
2141 No need char
2142     A
2143  0: A
2144     a
2145  0: a
2146
2147 /[[:lower:]]/Ii
2148 Capturing subpattern count = 0
2149 Options: caseless
2150 No first char
2151 No need char
2152     A
2153  0: A
2154     a
2155  0: a
2156
2157 /((?-i)[[:lower:]])[[:lower:]]/Ii
2158 Capturing subpattern count = 1
2159 Options: caseless
2160 No first char
2161 No need char
2162     ab
2163  0: ab
2164  1: a
2165     aB
2166  0: aB
2167  1: a
2168     *** Failers
2169  0: ai
2170  1: a
2171     Ab
2172 No match
2173     AB
2174 No match
2175
2176 /[\200-\110]/I
2177 Failed: range out of order in character class at offset 9
2178
2179 /^(?(0)f|b)oo/I
2180 Failed: invalid condition (?(0) at offset 6
2181
2182 /This one's here because of the large output vector needed/I
2183 Capturing subpattern count = 0
2184 No options
2185 First char = 'T'
2186 Need char = 'd'
2187
2188 /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2189 Capturing subpattern count = 271
2190 Max back reference = 270
2191 No options
2192 No first char
2193 No need char
2194     \O900 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
2195  0: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 ABC ABC
2196  1: 1 
2197  2: 2 
2198  3: 3 
2199  4: 4 
2200  5: 5 
2201  6: 6 
2202  7: 7 
2203  8: 8 
2204  9: 9 
2205 10: 10 
2206 11: 11 
2207 12: 12 
2208 13: 13 
2209 14: 14 
2210 15: 15 
2211 16: 16 
2212 17: 17 
2213 18: 18 
2214 19: 19 
2215 20: 20 
2216 21: 21 
2217 22: 22 
2218 23: 23 
2219 24: 24 
2220 25: 25 
2221 26: 26 
2222 27: 27 
2223 28: 28 
2224 29: 29 
2225 30: 30 
2226 31: 31 
2227 32: 32 
2228 33: 33 
2229 34: 34 
2230 35: 35 
2231 36: 36 
2232 37: 37 
2233 38: 38 
2234 39: 39 
2235 40: 40 
2236 41: 41 
2237 42: 42 
2238 43: 43 
2239 44: 44 
2240 45: 45 
2241 46: 46 
2242 47: 47 
2243 48: 48 
2244 49: 49 
2245 50: 50 
2246 51: 51 
2247 52: 52 
2248 53: 53 
2249 54: 54 
2250 55: 55 
2251 56: 56 
2252 57: 57 
2253 58: 58 
2254 59: 59 
2255 60: 60 
2256 61: 61 
2257 62: 62 
2258 63: 63 
2259 64: 64 
2260 65: 65 
2261 66: 66 
2262 67: 67 
2263 68: 68 
2264 69: 69 
2265 70: 70 
2266 71: 71 
2267 72: 72 
2268 73: 73 
2269 74: 74 
2270 75: 75 
2271 76: 76 
2272 77: 77 
2273 78: 78 
2274 79: 79 
2275 80: 80 
2276 81: 81 
2277 82: 82 
2278 83: 83 
2279 84: 84 
2280 85: 85 
2281 86: 86 
2282 87: 87 
2283 88: 88 
2284 89: 89 
2285 90: 90 
2286 91: 91 
2287 92: 92 
2288 93: 93 
2289 94: 94 
2290 95: 95 
2291 96: 96 
2292 97: 97 
2293 98: 98 
2294 99: 99 
2295 100: 100 
2296 101: 101 
2297 102: 102 
2298 103: 103 
2299 104: 104 
2300 105: 105 
2301 106: 106 
2302 107: 107 
2303 108: 108 
2304 109: 109 
2305 110: 110 
2306 111: 111 
2307 112: 112 
2308 113: 113 
2309 114: 114 
2310 115: 115 
2311 116: 116 
2312 117: 117 
2313 118: 118 
2314 119: 119 
2315 120: 120 
2316 121: 121 
2317 122: 122 
2318 123: 123 
2319 124: 124 
2320 125: 125 
2321 126: 126 
2322 127: 127 
2323 128: 128 
2324 129: 129 
2325 130: 130 
2326 131: 131 
2327 132: 132 
2328 133: 133 
2329 134: 134 
2330 135: 135 
2331 136: 136 
2332 137: 137 
2333 138: 138 
2334 139: 139 
2335 140: 140 
2336 141: 141 
2337 142: 142 
2338 143: 143 
2339 144: 144 
2340 145: 145 
2341 146: 146 
2342 147: 147 
2343 148: 148 
2344 149: 149 
2345 150: 150 
2346 151: 151 
2347 152: 152 
2348 153: 153 
2349 154: 154 
2350 155: 155 
2351 156: 156 
2352 157: 157 
2353 158: 158 
2354 159: 159 
2355 160: 160 
2356 161: 161 
2357 162: 162 
2358 163: 163 
2359 164: 164 
2360 165: 165 
2361 166: 166 
2362 167: 167 
2363 168: 168 
2364 169: 169 
2365 170: 170 
2366 171: 171 
2367 172: 172 
2368 173: 173 
2369 174: 174 
2370 175: 175 
2371 176: 176 
2372 177: 177 
2373 178: 178 
2374 179: 179 
2375 180: 180 
2376 181: 181 
2377 182: 182 
2378 183: 183 
2379 184: 184 
2380 185: 185 
2381 186: 186 
2382 187: 187 
2383 188: 188 
2384 189: 189 
2385 190: 190 
2386 191: 191 
2387 192: 192 
2388 193: 193 
2389 194: 194 
2390 195: 195 
2391 196: 196 
2392 197: 197 
2393 198: 198 
2394 199: 199 
2395 200: 200 
2396 201: 201 
2397 202: 202 
2398 203: 203 
2399 204: 204 
2400 205: 205 
2401 206: 206 
2402 207: 207 
2403 208: 208 
2404 209: 209 
2405 210: 210 
2406 211: 211 
2407 212: 212 
2408 213: 213 
2409 214: 214 
2410 215: 215 
2411 216: 216 
2412 217: 217 
2413 218: 218 
2414 219: 219 
2415 220: 220 
2416 221: 221 
2417 222: 222 
2418 223: 223 
2419 224: 224 
2420 225: 225 
2421 226: 226 
2422 227: 227 
2423 228: 228 
2424 229: 229 
2425 230: 230 
2426 231: 231 
2427 232: 232 
2428 233: 233 
2429 234: 234 
2430 235: 235 
2431 236: 236 
2432 237: 237 
2433 238: 238 
2434 239: 239 
2435 240: 240 
2436 241: 241 
2437 242: 242 
2438 243: 243 
2439 244: 244 
2440 245: 245 
2441 246: 246 
2442 247: 247 
2443 248: 248 
2444 249: 249 
2445 250: 250 
2446 251: 251 
2447 252: 252 
2448 253: 253 
2449 254: 254 
2450 255: 255 
2451 256: 256 
2452 257: 257 
2453 258: 258 
2454 259: 259 
2455 260: 260 
2456 261: 261 
2457 262: 262 
2458 263: 263 
2459 264: 264 
2460 265: 265 
2461 266: 266 
2462 267: 267 
2463 268: 268 
2464 269: 269 
2465 270: ABC
2466 271: ABC
2467
2468 /This one's here because Perl does this differently and PCRE can't at present/I
2469 Capturing subpattern count = 0
2470 No options
2471 First char = 'T'
2472 Need char = 't'
2473
2474 /(main(O)?)+/I
2475 Capturing subpattern count = 2
2476 No options
2477 First char = 'm'
2478 Need char = 'n'
2479     mainmain
2480  0: mainmain
2481  1: main
2482     mainOmain
2483  0: mainOmain
2484  1: main
2485  2: O
2486
2487 /These are all cases where Perl does it differently (nested captures)/I
2488 Capturing subpattern count = 1
2489 No options
2490 First char = 'T'
2491 Need char = 's'
2492
2493 /^(a(b)?)+$/I
2494 Capturing subpattern count = 2
2495 Options: anchored
2496 No first char
2497 No need char
2498     aba
2499  0: aba
2500  1: a
2501  2: b
2502
2503 /^(aa(bb)?)+$/I
2504 Capturing subpattern count = 2
2505 Options: anchored
2506 No first char
2507 No need char
2508     aabbaa
2509  0: aabbaa
2510  1: aa
2511  2: bb
2512
2513 /^(aa|aa(bb))+$/I
2514 Capturing subpattern count = 2
2515 Options: anchored
2516 No first char
2517 No need char
2518     aabbaa
2519  0: aabbaa
2520  1: aa
2521  2: bb
2522
2523 /^(aa(bb)??)+$/I
2524 Capturing subpattern count = 2
2525 Options: anchored
2526 No first char
2527 No need char
2528     aabbaa
2529  0: aabbaa
2530  1: aa
2531  2: bb
2532
2533 /^(?:aa(bb)?)+$/I
2534 Capturing subpattern count = 1
2535 Options: anchored
2536 No first char
2537 No need char
2538     aabbaa
2539  0: aabbaa
2540  1: bb
2541
2542 /^(aa(b(b))?)+$/I
2543 Capturing subpattern count = 3
2544 Options: anchored
2545 No first char
2546 No need char
2547     aabbaa
2548  0: aabbaa
2549  1: aa
2550  2: bb
2551  3: b
2552
2553 /^(?:aa(b(b))?)+$/I
2554 Capturing subpattern count = 2
2555 Options: anchored
2556 No first char
2557 No need char
2558     aabbaa
2559  0: aabbaa
2560  1: bb
2561  2: b
2562
2563 /^(?:aa(b(?:b))?)+$/I
2564 Capturing subpattern count = 1
2565 Options: anchored
2566 No first char
2567 No need char
2568     aabbaa
2569  0: aabbaa
2570  1: bb
2571
2572 /^(?:aa(bb(?:b))?)+$/I
2573 Capturing subpattern count = 1
2574 Options: anchored
2575 No first char
2576 No need char
2577     aabbbaa
2578  0: aabbbaa
2579  1: bbb
2580
2581 /^(?:aa(b(?:bb))?)+$/I
2582 Capturing subpattern count = 1
2583 Options: anchored
2584 No first char
2585 No need char
2586     aabbbaa
2587  0: aabbbaa
2588  1: bbb
2589
2590 /^(?:aa(?:b(b))?)+$/I
2591 Capturing subpattern count = 1
2592 Options: anchored
2593 No first char
2594 No need char
2595     aabbaa
2596  0: aabbaa
2597  1: b
2598
2599 /^(?:aa(?:b(bb))?)+$/I
2600 Capturing subpattern count = 1
2601 Options: anchored
2602 No first char
2603 No need char
2604     aabbbaa
2605  0: aabbbaa
2606  1: bb
2607
2608 /^(aa(b(bb))?)+$/I
2609 Capturing subpattern count = 3
2610 Options: anchored
2611 No first char
2612 No need char
2613     aabbbaa
2614  0: aabbbaa
2615  1: aa
2616  2: bbb
2617  3: bb
2618
2619 /^(aa(bb(bb))?)+$/I
2620 Capturing subpattern count = 3
2621 Options: anchored
2622 No first char
2623 No need char
2624     aabbbbaa
2625  0: aabbbbaa
2626  1: aa
2627  2: bbbb
2628  3: bb
2629
2630 /--------------------------------------------------------------------/I
2631 Capturing subpattern count = 0
2632 No options
2633 First char = '-'
2634 Need char = '-'
2635
2636 /#/IxDZ
2637 ------------------------------------------------------------------
2638         Bra
2639         Ket
2640         End
2641 ------------------------------------------------------------------
2642 Capturing subpattern count = 0
2643 May match empty string
2644 Options: extended
2645 No first char
2646 No need char
2647
2648 /a#/IxDZ
2649 ------------------------------------------------------------------
2650         Bra
2651         a
2652         Ket
2653         End
2654 ------------------------------------------------------------------
2655 Capturing subpattern count = 0
2656 Options: extended
2657 First char = 'a'
2658 No need char
2659
2660 /[\s]/DZ
2661 ------------------------------------------------------------------
2662         Bra
2663         [\x09-\x0d ]
2664         Ket
2665         End
2666 ------------------------------------------------------------------
2667 Capturing subpattern count = 0
2668 No options
2669 No first char
2670 No need char
2671
2672 /[\S]/DZ
2673 ------------------------------------------------------------------
2674         Bra
2675         [\x00-\x08\x0e-\x1f!-\xff] (neg)
2676         Ket
2677         End
2678 ------------------------------------------------------------------
2679 Capturing subpattern count = 0
2680 No options
2681 No first char
2682 No need char
2683
2684 /a(?i)b/DZ
2685 ------------------------------------------------------------------
2686         Bra
2687         a
2688      /i b
2689         Ket
2690         End
2691 ------------------------------------------------------------------
2692 Capturing subpattern count = 0
2693 No options
2694 First char = 'a'
2695 Need char = 'b' (caseless)
2696     ab
2697  0: ab
2698     aB
2699  0: aB
2700     *** Failers
2701 No match
2702     AB
2703 No match
2704
2705 /(a(?i)b)/DZ
2706 ------------------------------------------------------------------
2707         Bra
2708         CBra 1
2709         a
2710      /i b
2711         Ket
2712         Ket
2713         End
2714 ------------------------------------------------------------------
2715 Capturing subpattern count = 1
2716 No options
2717 First char = 'a'
2718 Need char = 'b' (caseless)
2719     ab
2720  0: ab
2721  1: ab
2722     aB
2723  0: aB
2724  1: aB
2725     *** Failers
2726 No match
2727     AB
2728 No match
2729
2730 /   (?i)abc/IxDZ
2731 ------------------------------------------------------------------
2732         Bra
2733      /i abc
2734         Ket
2735         End
2736 ------------------------------------------------------------------
2737 Capturing subpattern count = 0
2738 Options: extended
2739 First char = 'a' (caseless)
2740 Need char = 'c' (caseless)
2741
2742 /#this is a comment
2743   (?i)abc/IxDZ
2744 ------------------------------------------------------------------
2745         Bra
2746      /i abc
2747         Ket
2748         End
2749 ------------------------------------------------------------------
2750 Capturing subpattern count = 0
2751 Options: extended
2752 First char = 'a' (caseless)
2753 Need char = 'c' (caseless)
2754
2755 /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2756 ------------------------------------------------------------------
2757         Bra
2758         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2759         Ket
2760         End
2761 ------------------------------------------------------------------
2762 Capturing subpattern count = 0
2763 No options
2764 First char = '1'
2765 Need char = '0'
2766
2767 /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2768 ------------------------------------------------------------------
2769         Bra
2770         123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2771         Ket
2772         End
2773 ------------------------------------------------------------------
2774 Capturing subpattern count = 0
2775 No options
2776 First char = '1'
2777 Need char = '0'
2778
2779 /\Q\E/DZ
2780 ------------------------------------------------------------------
2781         Bra
2782         Ket
2783         End
2784 ------------------------------------------------------------------
2785 Capturing subpattern count = 0
2786 May match empty string
2787 No options
2788 No first char
2789 No need char
2790     \
2791  0: 
2792
2793 /\Q\Ex/DZ
2794 ------------------------------------------------------------------
2795         Bra
2796         x
2797         Ket
2798         End
2799 ------------------------------------------------------------------
2800 Capturing subpattern count = 0
2801 No options
2802 First char = 'x'
2803 No need char
2804
2805 / \Q\E/DZ
2806 ------------------------------------------------------------------
2807         Bra
2808          
2809         Ket
2810         End
2811 ------------------------------------------------------------------
2812 Capturing subpattern count = 0
2813 No options
2814 First char = ' '
2815 No need char
2816
2817 /a\Q\E/DZ
2818 ------------------------------------------------------------------
2819         Bra
2820         a
2821         Ket
2822         End
2823 ------------------------------------------------------------------
2824 Capturing subpattern count = 0
2825 No options
2826 First char = 'a'
2827 No need char
2828   abc
2829  0: a
2830   bca
2831  0: a
2832   bac
2833  0: a
2834
2835 /a\Q\Eb/DZ
2836 ------------------------------------------------------------------
2837         Bra
2838         ab
2839         Ket
2840         End
2841 ------------------------------------------------------------------
2842 Capturing subpattern count = 0
2843 No options
2844 First char = 'a'
2845 Need char = 'b'
2846   abc
2847  0: ab
2848
2849 /\Q\Eabc/DZ
2850 ------------------------------------------------------------------
2851         Bra
2852         abc
2853         Ket
2854         End
2855 ------------------------------------------------------------------
2856 Capturing subpattern count = 0
2857 No options
2858 First char = 'a'
2859 Need char = 'c'
2860
2861 /x*+\w/DZ
2862 ------------------------------------------------------------------
2863         Bra
2864         x*+
2865         \w
2866         Ket
2867         End
2868 ------------------------------------------------------------------
2869 Capturing subpattern count = 0
2870 No options
2871 No first char
2872 No need char
2873     *** Failers
2874  0: F
2875     xxxxx
2876 No match
2877
2878 /x?+/DZ
2879 ------------------------------------------------------------------
2880         Bra
2881         x?+
2882         Ket
2883         End
2884 ------------------------------------------------------------------
2885 Capturing subpattern count = 0
2886 May match empty string
2887 No options
2888 No first char
2889 No need char
2890
2891 /x++/DZ
2892 ------------------------------------------------------------------
2893         Bra
2894         x++
2895         Ket
2896         End
2897 ------------------------------------------------------------------
2898 Capturing subpattern count = 0
2899 No options
2900 First char = 'x'
2901 No need char
2902
2903 /x{1,3}+/BZO
2904 ------------------------------------------------------------------
2905         Bra
2906         x
2907         x{0,2}+
2908         Ket
2909         End
2910 ------------------------------------------------------------------
2911
2912 /x{1,3}+/BZOi
2913 ------------------------------------------------------------------
2914         Bra
2915      /i x
2916      /i x{0,2}+
2917         Ket
2918         End
2919 ------------------------------------------------------------------
2920
2921 /[^x]{1,3}+/BZO
2922 ------------------------------------------------------------------
2923         Bra
2924         [^x]
2925         [^x]{0,2}+
2926         Ket
2927         End
2928 ------------------------------------------------------------------
2929
2930 /[^x]{1,3}+/BZOi
2931 ------------------------------------------------------------------
2932         Bra
2933      /i [^x]
2934      /i [^x]{0,2}+
2935         Ket
2936         End
2937 ------------------------------------------------------------------
2938
2939 /(x)*+/DZ
2940 ------------------------------------------------------------------
2941         Bra
2942         Braposzero
2943         CBraPos 1
2944         x
2945         KetRpos
2946         Ket
2947         End
2948 ------------------------------------------------------------------
2949 Capturing subpattern count = 1
2950 May match empty string
2951 No options
2952 No first char
2953 No need char
2954
2955 /^(\w++|\s++)*$/I
2956 Capturing subpattern count = 1
2957 May match empty string
2958 Options: anchored
2959 No first char
2960 No need char
2961     now is the time for all good men to come to the aid of the party
2962  0: now is the time for all good men to come to the aid of the party
2963  1: party
2964     *** Failers
2965 No match
2966     this is not a line with only words and spaces!
2967 No match
2968
2969 /(\d++)(\w)/I
2970 Capturing subpattern count = 2
2971 No options
2972 No first char
2973 No need char
2974     12345a
2975  0: 12345a
2976  1: 12345
2977  2: a
2978     *** Failers
2979 No match
2980     12345+
2981 No match
2982
2983 /a++b/I
2984 Capturing subpattern count = 0
2985 No options
2986 First char = 'a'
2987 Need char = 'b'
2988     aaab
2989  0: aaab
2990
2991 /(a++b)/I
2992 Capturing subpattern count = 1
2993 No options
2994 First char = 'a'
2995 Need char = 'b'
2996     aaab
2997  0: aaab
2998  1: aaab
2999
3000 /(a++)b/I
3001 Capturing subpattern count = 1
3002 No options
3003 First char = 'a'
3004 Need char = 'b'
3005     aaab
3006  0: aaab
3007  1: aaa
3008
3009 /([^()]++|\([^()]*\))+/I
3010 Capturing subpattern count = 1
3011 No options
3012 No first char
3013 No need char
3014     ((abc(ade)ufh()()x
3015  0: abc(ade)ufh()()x
3016  1: x
3017
3018 /\(([^()]++|\([^()]+\))+\)/I
3019 Capturing subpattern count = 1
3020 No options
3021 First char = '('
3022 Need char = ')'
3023     (abc)
3024  0: (abc)
3025  1: abc
3026     (abc(def)xyz)
3027  0: (abc(def)xyz)
3028  1: xyz
3029     *** Failers
3030 No match
3031     ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3032 No match
3033
3034 /(abc){1,3}+/DZ
3035 ------------------------------------------------------------------
3036         Bra
3037         Once
3038         CBra 1
3039         abc
3040         Ket
3041         Brazero
3042         Bra
3043         CBra 1
3044         abc
3045         Ket
3046         Brazero
3047         CBra 1
3048         abc
3049         Ket
3050         Ket
3051         Ket
3052         Ket
3053         End
3054 ------------------------------------------------------------------
3055 Capturing subpattern count = 1
3056 No options
3057 First char = 'a'
3058 Need char = 'c'
3059
3060 /a+?+/I
3061 Failed: nothing to repeat at offset 3
3062
3063 /a{2,3}?+b/I
3064 Failed: nothing to repeat at offset 7
3065
3066 /(?U)a+?+/I
3067 Failed: nothing to repeat at offset 7
3068
3069 /a{2,3}?+b/IU
3070 Failed: nothing to repeat at offset 7
3071
3072 /x(?U)a++b/DZ
3073 ------------------------------------------------------------------
3074         Bra
3075         x
3076         a++
3077         b
3078         Ket
3079         End
3080 ------------------------------------------------------------------
3081 Capturing subpattern count = 0
3082 No options
3083 First char = 'x'
3084 Need char = 'b'
3085     xaaaab
3086  0: xaaaab
3087
3088 /(?U)xa++b/DZ
3089 ------------------------------------------------------------------
3090         Bra
3091         x
3092         a++
3093         b
3094         Ket
3095         End
3096 ------------------------------------------------------------------
3097 Capturing subpattern count = 0
3098 No options
3099 First char = 'x'
3100 Need char = 'b'
3101     xaaaab
3102  0: xaaaab
3103
3104 /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3105 ------------------------------------------------------------------
3106         Bra
3107         ^
3108         CBra 1
3109         CBra 2
3110         a+
3111         Ket
3112         CBra 3
3113         [ab]+?
3114         Ket
3115         CBra 4
3116         [bc]+
3117         Ket
3118         CBra 5
3119         \w*+
3120         Ket
3121         Ket
3122         Ket
3123         End
3124 ------------------------------------------------------------------
3125 Capturing subpattern count = 5
3126 Options: anchored
3127 No first char
3128 No need char
3129
3130 /^x(?U)a+b/DZ
3131 ------------------------------------------------------------------
3132         Bra
3133         ^
3134         x
3135         a++
3136         b
3137         Ket
3138         End
3139 ------------------------------------------------------------------
3140 Capturing subpattern count = 0
3141 Options: anchored
3142 No first char
3143 Need char = 'b'
3144
3145 /^x(?U)(a+)b/DZ
3146 ------------------------------------------------------------------
3147         Bra
3148         ^
3149         x
3150         CBra 1
3151         a+?
3152         Ket
3153         b
3154         Ket
3155         End
3156 ------------------------------------------------------------------
3157 Capturing subpattern count = 1
3158 Options: anchored
3159 No first char
3160 Need char = 'b'
3161
3162 /[.x.]/I
3163 Failed: POSIX collating elements are not supported at offset 0
3164
3165 /[=x=]/I
3166 Failed: POSIX collating elements are not supported at offset 0
3167
3168 /[:x:]/I
3169 Failed: POSIX named classes are supported only within a class at offset 0
3170
3171 /\l/I
3172 Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3173
3174 /\L/I
3175 Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3176
3177 /\N{name}/I
3178 Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3179
3180 /\u/I
3181 Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3182
3183 /\U/I
3184 Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3185
3186 /a{1,3}b/U
3187     ab
3188  0: ab
3189
3190 /[/I
3191 Failed: missing terminating ] for character class at offset 1
3192
3193 /[a-/I
3194 Failed: missing terminating ] for character class at offset 3
3195
3196 /[[:space:]/I
3197 Failed: missing terminating ] for character class at offset 10
3198
3199 /[\s]/IDZ
3200 ------------------------------------------------------------------
3201         Bra
3202         [\x09-\x0d ]
3203         Ket
3204         End
3205 ------------------------------------------------------------------
3206 Capturing subpattern count = 0
3207 No options
3208 No first char
3209 No need char
3210
3211 /[[:space:]]/IDZ
3212 ------------------------------------------------------------------
3213         Bra
3214         [\x09-\x0d ]
3215         Ket
3216         End
3217 ------------------------------------------------------------------
3218 Capturing subpattern count = 0
3219 No options
3220 No first char
3221 No need char
3222
3223 /[[:space:]abcde]/IDZ
3224 ------------------------------------------------------------------
3225         Bra
3226         [\x09-\x0d a-e]
3227         Ket
3228         End
3229 ------------------------------------------------------------------
3230 Capturing subpattern count = 0
3231 No options
3232 No first char
3233 No need char
3234
3235 /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3236 Capturing subpattern count = 0
3237 Options: extended
3238 First char = '<'
3239 Need char = '>'
3240     <>
3241  0: <>
3242     <abcd>
3243  0: <abcd>
3244     <abc <123> hij>
3245  0: <abc <123> hij>
3246     <abc <def> hij>
3247  0: <def>
3248     <abc<>def>
3249  0: <abc<>def>
3250     <abc<>
3251  0: <>
3252     *** Failers
3253 No match
3254     <abc
3255 No match
3256
3257 |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
3258 ------------------------------------------------------------------
3259         Bra
3260         8J$WE<.rX+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3261         \b
3262         Ket
3263         End
3264 ------------------------------------------------------------------
3265 Capturing subpattern count = 0
3266 Max lookbehind = 1
3267 No options
3268 First char = '8'
3269 Need char = 'X'
3270
3271 |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|IDZ
3272 ------------------------------------------------------------------
3273         Bra
3274         $<.X+ix[d1b!H#?vV0vrK:ZH1=2M>iV;?aPhFB<*vW@QW@sO9}cfZA-i'w%hKd6gt1UJP,15_#QY$M^Mss_U/]&LK9[5vQub^w[KDD<EjmhUZ?.akp2dF>qmj;2}YWFdYx.Ap]hjCPTP(n28k+3;o&WXqs/gOXdr$:r'do0;b4c(f_Gr="\4)[01T7ajQJvL$W~mL_sS/4h:x*[ZN=KLs&L5zX//>it,o:aU(;Z>pW&T7oP'2K^E:x9'c[%z-,64JQ5AeH_G#KijUKghQw^\vea3a?kka_G$8#`*kynsxzBLru']k_[7FrVx}^=$blx>s-N%j;D*aZDnsw:YKZ%Q.Kne9#hP?+b3(SOvL,^;&u5@?5C5Bhb=m-vEh_L15Jl]U)0RP6{q%L^_z5E'Dw6X
3275         \b
3276         Ket
3277         End
3278 ------------------------------------------------------------------
3279 Capturing subpattern count = 0
3280 Max lookbehind = 1
3281 No options
3282 First char = '$'
3283 Need char = 'X'
3284
3285 /(.*)\d+\1/I
3286 Capturing subpattern count = 1
3287 Max back reference = 1
3288 No options
3289 No first char
3290 No need char
3291
3292 /(.*)\d+/I
3293 Capturing subpattern count = 1
3294 No options
3295 First char at start or follows newline
3296 No need char
3297
3298 /(.*)\d+\1/Is
3299 Capturing subpattern count = 1
3300 Max back reference = 1
3301 Options: dotall
3302 No first char
3303 No need char
3304
3305 /(.*)\d+/Is
3306 Capturing subpattern count = 1
3307 Options: anchored dotall
3308 No first char
3309 No need char
3310
3311 /(.*(xyz))\d+\2/I
3312 Capturing subpattern count = 2
3313 Max back reference = 2
3314 No options
3315 First char at start or follows newline
3316 Need char = 'z'
3317
3318 /((.*))\d+\1/I
3319 Capturing subpattern count = 2
3320 Max back reference = 1
3321 No options
3322 No first char
3323 No need char
3324     abc123bc
3325  0: bc123bc
3326  1: bc
3327  2: bc
3328
3329 /a[b]/I
3330 Capturing subpattern count = 0
3331 No options
3332 First char = 'a'
3333 Need char = 'b'
3334
3335 /(?=a).*/I
3336 Capturing subpattern count = 0
3337 May match empty string
3338 No options
3339 First char = 'a'
3340 No need char
3341
3342 /(?=abc).xyz/IiI
3343 Capturing subpattern count = 0
3344 Options: caseless
3345 First char = 'a' (caseless)
3346 Need char = 'z' (caseless)
3347
3348 /(?=abc)(?i).xyz/I
3349 Capturing subpattern count = 0
3350 No options
3351 First char = 'a'
3352 Need char = 'z' (caseless)
3353
3354 /(?=a)(?=b)/I
3355 Capturing subpattern count = 0
3356 May match empty string
3357 No options
3358 First char = 'a'
3359 No need char
3360
3361 /(?=.)a/I
3362 Capturing subpattern count = 0
3363 No options
3364 First char = 'a'
3365 No need char
3366
3367 /((?=abcda)a)/I
3368 Capturing subpattern count = 1
3369 No options
3370 First char = 'a'
3371 Need char = 'a'
3372
3373 /((?=abcda)ab)/I
3374 Capturing subpattern count = 1
3375 No options
3376 First char = 'a'
3377 Need char = 'b'
3378
3379 /()a/I
3380 Capturing subpattern count = 1
3381 No options
3382 No first char
3383 Need char = 'a'
3384
3385 /(?(1)ab|ac)(.)/I
3386 Capturing subpattern count = 1
3387 Max back reference = 1
3388 No options
3389 First char = 'a'
3390 No need char
3391
3392 /(?(1)abz|acz)(.)/I
3393 Capturing subpattern count = 1
3394 Max back reference = 1
3395 No options
3396 First char = 'a'
3397 Need char = 'z'
3398
3399 /(?(1)abz)(.)/I
3400 Capturing subpattern count = 1
3401 Max back reference = 1
3402 No options
3403 No first char
3404 No need char
3405
3406 /(?(1)abz)(1)23/I
3407 Capturing subpattern count = 1
3408 Max back reference = 1
3409 No options
3410 No first char
3411 Need char = '3'
3412
3413 /(a)+/I
3414 Capturing subpattern count = 1
3415 No options
3416 First char = 'a'
3417 No need char
3418
3419 /(a){2,3}/I
3420 Capturing subpattern count = 1
3421 No options
3422 First char = 'a'
3423 Need char = 'a'
3424
3425 /(a)*/I
3426 Capturing subpattern count = 1
3427 May match empty string
3428 No options
3429 No first char
3430 No need char
3431
3432 /[a]/I
3433 Capturing subpattern count = 0
3434 No options
3435 First char = 'a'
3436 No need char
3437
3438 /[ab]/I
3439 Capturing subpattern count = 0
3440 No options
3441 No first char
3442 No need char
3443
3444 /[ab]/IS
3445 Capturing subpattern count = 0
3446 No options
3447 No first char
3448 No need char
3449 Subject length lower bound = 1
3450 Starting chars: a b 
3451
3452 /[^a]/I
3453 Capturing subpattern count = 0
3454 No options
3455 No first char
3456 No need char
3457
3458 /\d456/I
3459 Capturing subpattern count = 0
3460 No options
3461 No first char
3462 Need char = '6'
3463
3464 /\d456/IS
3465 Capturing subpattern count = 0
3466 No options
3467 No first char
3468 Need char = '6'
3469 Subject length lower bound = 4
3470 Starting chars: 0 1 2 3 4 5 6 7 8 9 
3471
3472 /a^b/I
3473 Capturing subpattern count = 0
3474 No options
3475 First char = 'a'
3476 Need char = 'b'
3477
3478 /^a/Im
3479 Capturing subpattern count = 0
3480 Options: multiline
3481 First char at start or follows newline
3482 Need char = 'a'
3483   abcde
3484  0: a
3485   xy\nabc
3486  0: a
3487   *** Failers
3488 No match
3489   xyabc
3490 No match
3491
3492 /c|abc/I
3493 Capturing subpattern count = 0
3494 No options
3495 No first char
3496 Need char = 'c'
3497
3498 /(?i)[ab]/IS
3499 Capturing subpattern count = 0
3500 No options
3501 No first char
3502 No need char
3503 Subject length lower bound = 1
3504 Starting chars: A B a b 
3505
3506 /[ab](?i)cd/IS
3507 Capturing subpattern count = 0
3508 No options
3509 No first char
3510 Need char = 'd' (caseless)
3511 Subject length lower bound = 3
3512 Starting chars: a b 
3513
3514 /abc(?C)def/I
3515 Capturing subpattern count = 0
3516 No options
3517 First char = 'a'
3518 Need char = 'f'
3519     abcdef
3520 --->abcdef
3521   0 ^  ^       d
3522  0: abcdef
3523     1234abcdef
3524 --->1234abcdef
3525   0     ^  ^       d
3526  0: abcdef
3527     *** Failers
3528 No match
3529     abcxyz
3530 No match
3531     abcxyzf
3532 --->abcxyzf
3533   0 ^  ^        d
3534 No match
3535
3536 /abc(?C)de(?C1)f/I
3537 Capturing subpattern count = 0
3538 No options
3539 First char = 'a'
3540 Need char = 'f'
3541     123abcdef
3542 --->123abcdef
3543   0    ^  ^       d
3544   1    ^    ^     f
3545  0: abcdef
3546
3547 /(?C1)\dabc(?C2)def/IS
3548 Capturing subpattern count = 0
3549 No options
3550 No first char
3551 Need char = 'f'
3552 Subject length lower bound = 7
3553 Starting chars: 0 1 2 3 4 5 6 7 8 9 
3554     1234abcdef
3555 --->1234abcdef
3556   1 ^              \d
3557   1  ^             \d
3558   1   ^            \d
3559   1    ^           \d
3560   2    ^   ^       d
3561  0: 4abcdef
3562     *** Failers
3563 No match
3564     abcdef
3565 No match
3566
3567 /(?C1)\dabc(?C2)def/ISS
3568 Capturing subpattern count = 0
3569 No options
3570 No first char
3571 Need char = 'f'
3572     1234abcdef
3573 --->1234abcdef
3574   1 ^              \d
3575   1  ^             \d
3576   1   ^            \d
3577   1    ^           \d
3578   2    ^   ^       d
3579  0: 4abcdef
3580     *** Failers
3581 No match
3582     abcdef
3583 --->abcdef
3584   1 ^          \d
3585   1  ^         \d
3586   1   ^        \d
3587   1    ^       \d
3588   1     ^      \d
3589   1      ^     \d
3590 No match
3591
3592 /(?C255)ab/I
3593 Capturing subpattern count = 0
3594 No options
3595 First char = 'a'
3596 Need char = 'b'
3597
3598 /(?C256)ab/I
3599 Failed: number after (?C is > 255 at offset 6
3600
3601 /(?Cab)xx/I
3602 Failed: closing ) for (?C expected at offset 3
3603
3604 /(?C12vr)x/I
3605 Failed: closing ) for (?C expected at offset 5
3606
3607 /abc(?C)def/I
3608 Capturing subpattern count = 0
3609 No options
3610 First char = 'a'
3611 Need char = 'f'
3612     *** Failers
3613 No match
3614     \x83\x0\x61bcdef
3615 --->\x83\x00abcdef
3616   0         ^  ^       d
3617  0: abcdef
3618
3619 /(abc)(?C)de(?C1)f/I
3620 Capturing subpattern count = 1
3621 No options
3622 First char = 'a'
3623 Need char = 'f'
3624     123abcdef
3625 --->123abcdef
3626   0    ^  ^       d
3627   1    ^    ^     f
3628  0: abcdef
3629  1: abc
3630     123abcdef\C+
3631 Callout 0: last capture = 1
3632  0: <unset>
3633  1: abc
3634 --->123abcdef
3635        ^  ^       d
3636 Callout 1: last capture = 1
3637  0: <unset>
3638  1: abc
3639 --->123abcdef
3640        ^    ^     f
3641  0: abcdef
3642  1: abc
3643     123abcdef\C-
3644  0: abcdef
3645  1: abc
3646     *** Failers
3647 No match
3648     123abcdef\C!1
3649 --->123abcdef
3650   0    ^  ^       d
3651   1    ^    ^     f
3652 No match
3653
3654 /(?C0)(abc(?C1))*/I
3655 Capturing subpattern count = 1
3656 May match empty string
3657 No options
3658 No first char
3659 No need char
3660     abcabcabc
3661 --->abcabcabc
3662   0 ^             (abc(?C1))*
3663   1 ^  ^          )
3664   1 ^     ^       )
3665   1 ^        ^    )
3666  0: abcabcabc
3667  1: abc
3668     abcabc\C!1!3
3669 --->abcabc
3670   0 ^          (abc(?C1))*
3671   1 ^  ^       )
3672   1 ^     ^    )
3673  0: abcabc
3674  1: abc
3675     *** Failers
3676 --->*** Failers
3677   0 ^               (abc(?C1))*
3678  0: 
3679     abcabcabc\C!1!3
3680 --->abcabcabc
3681   0 ^             (abc(?C1))*
3682   1 ^  ^          )
3683   1 ^     ^       )
3684   1 ^        ^    )
3685  0: abcabc
3686  1: abc
3687
3688 /(\d{3}(?C))*/I
3689 Capturing subpattern count = 1
3690 May match empty string
3691 No options
3692 No first char
3693 No need char
3694     123\C+
3695 Callout 0: last capture = -1
3696  0: <unset>
3697 --->123
3698     ^  ^    )
3699  0: 123
3700  1: 123
3701     123456\C+
3702 Callout 0: last capture = -1
3703  0: <unset>
3704 --->123456
3705     ^  ^       )
3706 Callout 0: last capture = 1
3707  0: <unset>
3708  1: 123
3709 --->123456
3710     ^     ^    )
3711  0: 123456
3712  1: 456
3713     123456789\C+
3714 Callout 0: last capture = -1
3715  0: <unset>
3716 --->123456789
3717     ^  ^          )
3718 Callout 0: last capture = 1
3719  0: <unset>
3720  1: 123
3721 --->123456789
3722     ^     ^       )
3723 Callout 0: last capture = 1
3724  0: <unset>
3725  1: 456
3726 --->123456789
3727     ^        ^    )
3728  0: 123456789
3729  1: 789
3730
3731 /((xyz)(?C)p|(?C1)xyzabc)/I
3732 Capturing subpattern count = 2
3733 No options
3734 First char = 'x'
3735 No need char
3736     xyzabc\C+
3737 Callout 0: last capture = 2
3738  0: <unset>
3739  1: <unset>
3740  2: xyz
3741 --->xyzabc
3742     ^  ^       p
3743 Callout 1: last capture = -1
3744  0: <unset>
3745 --->xyzabc
3746     ^          x
3747  0: xyzabc
3748  1: xyzabc
3749
3750 /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3751 Capturing subpattern count = 3
3752 No options
3753 First char = 'X'
3754 Need char = 'x'
3755     Xxyzabc\C+
3756 Callout 0: last capture = 3
3757  0: <unset>
3758  1: X
3759  2: <unset>
3760  3: xyz
3761 --->Xxyzabc
3762     ^   ^       p
3763 Callout 1: last capture = 1
3764  0: <unset>
3765  1: X
3766 --->Xxyzabc
3767     ^^          x
3768  0: Xxyzabc
3769  1: X
3770  2: xyzabc
3771
3772 /(?=(abc))(?C)abcdef/I
3773 Capturing subpattern count = 1
3774 No options
3775 First char = 'a'
3776 Need char = 'f'
3777     abcdef\C+
3778 Callout 0: last capture = 1
3779  0: <unset>
3780  1: abc
3781 --->abcdef
3782     ^          a
3783  0: abcdef
3784  1: abc
3785
3786 /(?!(abc)(?C1)d)(?C2)abcxyz/I
3787 Capturing subpattern count = 1
3788 No options
3789 First char = 'a'
3790 Need char = 'z'
3791     abcxyz\C+
3792 Callout 1: last capture = 1
3793  0: <unset>
3794  1: abc
3795 --->abcxyz
3796     ^  ^       d
3797 Callout 2: last capture = -1
3798  0: <unset>
3799 --->abcxyz
3800     ^          a
3801  0: abcxyz
3802
3803 /(?<=(abc)(?C))xyz/I
3804 Capturing subpattern count = 1
3805 Max lookbehind = 3
3806 No options
3807 First char = 'x'
3808 Need char = 'z'
3809    abcxyz\C+
3810 Callout 0: last capture = 1
3811  0: <unset>
3812  1: abc
3813 --->abcxyz
3814        ^       )
3815  0: xyz
3816  1: abc
3817
3818 /a(b+)(c*)(?C1)/I
3819 Capturing subpattern count = 2
3820 No options
3821 First char = 'a'
3822 Need char = 'b'
3823     abbbbbccc\C*1
3824 --->abbbbbccc
3825   1 ^        ^    
3826 Callout data = 1
3827 No match
3828
3829 /a(b+?)(c*?)(?C1)/I
3830 Capturing subpattern count = 2
3831 No options
3832 First char = 'a'
3833 Need char = 'b'
3834     abbbbbccc\C*1
3835 --->abbbbbccc
3836   1 ^ ^           
3837 Callout data = 1
3838   1 ^  ^          
3839 Callout data = 1
3840   1 ^   ^         
3841 Callout data = 1
3842   1 ^    ^        
3843 Callout data = 1
3844   1 ^     ^       
3845 Callout data = 1
3846   1 ^      ^      
3847 Callout data = 1
3848   1 ^       ^     
3849 Callout data = 1
3850   1 ^        ^    
3851 Callout data = 1
3852 No match
3853
3854 /(?C)abc/I
3855 Capturing subpattern count = 0
3856 No options
3857 First char = 'a'
3858 Need char = 'c'
3859
3860 /(?C)^abc/I
3861 Capturing subpattern count = 0
3862 Options: anchored
3863 No first char
3864 No need char
3865
3866 /(?C)a|b/IS
3867 Capturing subpattern count = 0
3868 No options
3869 No first char
3870 No need char
3871 Subject length lower bound = 1
3872 Starting chars: a b 
3873
3874 /(?R)/I
3875 Failed: recursive call could loop indefinitely at offset 3
3876
3877 /(a|(?R))/I
3878 Failed: recursive call could loop indefinitely at offset 6
3879
3880 /(ab|(bc|(de|(?R))))/I
3881 Failed: recursive call could loop indefinitely at offset 15
3882
3883 /x(ab|(bc|(de|(?R))))/I
3884 Capturing subpattern count = 3
3885 No options
3886 First char = 'x'
3887 No need char
3888     xab
3889  0: xab
3890  1: ab
3891     xbc
3892  0: xbc
3893  1: bc
3894  2: bc
3895     xde
3896  0: xde
3897  1: de
3898  2: de
3899  3: de
3900     xxab
3901  0: xxab
3902  1: xab
3903  2: xab
3904  3: xab
3905     xxxab
3906  0: xxxab
3907  1: xxab
3908  2: xxab
3909  3: xxab
3910     *** Failers
3911 No match
3912     xyab
3913 No match
3914
3915 /(ab|(bc|(de|(?1))))/I
3916 Failed: recursive call could loop indefinitely at offset 15
3917
3918 /x(ab|(bc|(de|(?1)x)x)x)/I
3919 Failed: recursive call could loop indefinitely at offset 16
3920
3921 /^([^()]|\((?1)*\))*$/I
3922 Capturing subpattern count = 1
3923 May match empty string
3924 Options: anchored
3925 No first char
3926 No need char
3927     abc
3928  0: abc
3929  1: c
3930     a(b)c
3931  0: a(b)c
3932  1: c
3933     a(b(c))d
3934  0: a(b(c))d
3935  1: d
3936     *** Failers)
3937 No match
3938     a(b(c)d
3939 No match
3940
3941 /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3942 Capturing subpattern count = 1
3943 Options: anchored
3944 No first char
3945 Need char = '<'
3946    >abc>123<xyz<
3947  0: >abc>123<xyz<
3948  1: 3
3949    >abc>1(2)3<xyz<
3950  0: >abc>1(2)3<xyz<
3951  1: 3
3952    >abc>(1(2)3)<xyz<
3953  0: >abc>(1(2)3)<xyz<
3954  1: (1(2)3)
3955
3956 /(a(?1)b)/DZ
3957 ------------------------------------------------------------------
3958         Bra
3959         CBra 1
3960         a
3961         Recurse
3962         b
3963         Ket
3964         Ket
3965         End
3966 ------------------------------------------------------------------
3967 Capturing subpattern count = 1
3968 No options
3969 First char = 'a'
3970 Need char = 'b'
3971
3972 /(a(?1)+b)/DZ
3973 ------------------------------------------------------------------
3974         Bra
3975         CBra 1
3976         a
3977         Once
3978         Recurse
3979         KetRmax
3980         b
3981         Ket
3982         Ket
3983         End
3984 ------------------------------------------------------------------
3985 Capturing subpattern count = 1
3986 No options
3987 First char = 'a'
3988 Need char = 'b'
3989
3990 /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
3991 Capturing subpattern count = 2
3992 Options: anchored
3993 No first char
3994 No need char
3995     12
3996  0: 12
3997  1: 12
3998     (((2+2)*-3)-7)
3999  0: (((2+2)*-3)-7)
4000  1: (((2+2)*-3)-7)
4001  2: -
4002     -12
4003  0: -12
4004  1: -12
4005     *** Failers
4006 No match
4007     ((2+2)*-3)-7)
4008 No match
4009
4010 /^(x(y|(?1){2})z)/I
4011 Capturing subpattern count = 2
4012 Options: anchored
4013 No first char
4014 No need char
4015     xyz
4016  0: xyz
4017  1: xyz
4018  2: y
4019     xxyzxyzz
4020  0: xxyzxyzz
4021  1: xxyzxyzz
4022  2: xyzxyz
4023     *** Failers
4024 No match
4025     xxyzz
4026 No match
4027     xxyzxyzxyzz
4028 No match
4029
4030 /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4031 Capturing subpattern count = 2
4032 Options: extended
4033 First char = '<'
4034 Need char = '>'
4035     <>
4036  0: <>
4037  1: <>
4038  2: <>
4039     <abcd>
4040  0: <abcd>
4041  1: <abcd>
4042  2: <abcd>
4043     <abc <123> hij>
4044  0: <abc <123> hij>
4045  1: <abc <123> hij>
4046  2: <abc <123> hij>
4047     <abc <def> hij>
4048  0: <def>
4049  1: <def>
4050  2: <def>
4051     <abc<>def>
4052  0: <abc<>def>
4053  1: <abc<>def>
4054  2: <abc<>def>
4055     <abc<>
4056  0: <>
4057  1: <>
4058  2: <>
4059     *** Failers
4060 No match
4061     <abc
4062 No match
4063
4064 /(?1)/I
4065 Failed: reference to non-existent subpattern at offset 3
4066
4067 /((?2)(abc)/I
4068 Failed: missing ) at offset 10
4069
4070 /^(abc)def(?1)/I
4071 Capturing subpattern count = 1
4072 Options: anchored
4073 No first char
4074 No need char
4075     abcdefabc
4076  0: abcdefabc
4077  1: abc
4078
4079 /^(a|b|c)=(?1)+/I
4080 Capturing subpattern count = 1
4081 Options: anchored
4082 No first char
4083 No need char
4084     a=a
4085  0: a=a
4086  1: a
4087     a=b
4088  0: a=b
4089  1: a
4090     a=bc
4091  0: a=bc
4092  1: a
4093
4094 /^(a|b|c)=((?1))+/I
4095 Capturing subpattern count = 2
4096 Options: anchored
4097 No first char
4098 No need char
4099     a=a
4100  0: a=a
4101  1: a
4102  2: a
4103     a=b
4104  0: a=b
4105  1: a
4106  2: b
4107     a=bc
4108  0: a=bc
4109  1: a
4110  2: c
4111
4112 /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4113 ------------------------------------------------------------------
4114         Bra
4115         a
4116         CBra 1
4117         b
4118         Alt
4119         c
4120         Ket
4121         d
4122         CBra 2
4123         e
4124         Ket
4125         Ket
4126         End
4127 ------------------------------------------------------------------
4128 Capturing subpattern count = 2
4129 Named capturing subpatterns:
4130   longername2   2