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