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