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