/[pcre]/code/trunk/testdata/testoutput2
ViewVC logotype

Diff of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

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