/[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 75 by nigel, Sat Feb 24 21:40:37 2007 UTC revision 496 by ph10, Tue Mar 2 19:11:17 2010 UTC
# Line 1  Line 1 
1  PCRE version 5.0 13-Sep-2004  /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is potential Perl
6        bug. --/
7    
8    /-- Originally, the Perl 5.10 things were in here too, but now I have separated
9        many (most?) of them out into test 11. However, there may still be some
10        that were overlooked. --/
11    
12  /(a)b|/  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
14  No options  No options
15  No first char  No first char
16  No need char  No need char
17    
18  /abc/  /abc/I
19  Capturing subpattern count = 0  Capturing subpattern count = 0
20  No options  No options
21  First char = 'a'  First char = 'a'
# Line 24  No match Line 33  No match
33      ABC      ABC
34  No match  No match
35    
36  /^abc/  /^abc/I
37  Capturing subpattern count = 0  Capturing subpattern count = 0
38  Options: anchored  Options: anchored
39  No first char  No first char
# Line 40  No match Line 49  No match
49      \Adefabc      \Adefabc
50  No match  No match
51    
52  /a+bc/  /a+bc/I
53  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
54  No options  No options
55  First char = 'a'  First char = 'a'
56  Need char = 'c'  Need char = 'c'
57    
58  /a*bc/  /a*bc/I
59  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
60  No options  No options
61  No first char  No first char
62  Need char = 'c'  Need char = 'c'
63    
64  /a{3}bc/  /a{3}bc/I
65  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
66  No options  No options
67  First char = 'a'  First char = 'a'
68  Need char = 'c'  Need char = 'c'
69    
70  /(abc|a+z)/  /(abc|a+z)/I
71  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
72  No options  No options
73  First char = 'a'  First char = 'a'
74  No need char  No need char
75    
76  /^abc$/  /^abc$/I
77  Capturing subpattern count = 0  Capturing subpattern count = 0
78  Options: anchored  Options: anchored
79  No first char  No first char
# Line 80  No match Line 85  No match
85      def\nabc      def\nabc
86  No match  No match
87    
88  /ab\gdef/X  /ab\idef/X
89  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
90    
91  /(?X)ab\gdef/X  /(?X)ab\idef/X
92  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
93    
94  /x{5,4}/  /x{5,4}/
# Line 111  Failed: missing ) at offset 4 Line 116  Failed: missing ) at offset 4
116  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
117    
118  /(?z)abc/  /(?z)abc/
119  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
120    
121  /.*b/  /.*b/I
122  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
123  No options  No options
124  First char at start or follows \n  First char at start or follows newline
125  Need char = 'b'  Need char = 'b'
126    
127  /.*?b/  /.*?b/I
128  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
129  No options  No options
130  First char at start or follows \n  First char at start or follows newline
131  Need char = 'b'  Need char = 'b'
132    
133  /cat|dog|elephant/  /cat|dog|elephant/I
134  Capturing subpattern count = 0  Capturing subpattern count = 0
135  No options  No options
136  No first char  No first char
# Line 137  No need char Line 140  No need char
140      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
141   0: elephant   0: elephant
142    
143  /cat|dog|elephant/S  /cat|dog|elephant/IS
144  Capturing subpattern count = 0  Capturing subpattern count = 0
145  No options  No options
146  No first char  No first char
147  No need char  No need char
148    Subject length lower bound = 3
149  Starting byte set: c d e  Starting byte set: c d e
150      this sentence eventually mentions a cat      this sentence eventually mentions a cat
151   0: cat   0: cat
152      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
153   0: elephant   0: elephant
154    
155  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
156  Capturing subpattern count = 0  Capturing subpattern count = 0
157  Options: caseless  Options: caseless
158  No first char  No first char
159  No need char  No need char
160    Subject length lower bound = 3
161  Starting byte set: C D E c d e  Starting byte set: C D E c d e
162      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
163   0: CAT   0: CAT
164      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
165   0: elephant   0: elephant
166    
167  /a|[bcd]/S  /a|[bcd]/IS
168  Capturing subpattern count = 0  Capturing subpattern count = 0
169  No options  No options
170  No first char  No first char
171  No need char  No need char
172    Subject length lower bound = 1
173  Starting byte set: a b c d  Starting byte set: a b c d
174    
175  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
176  Capturing subpattern count = 1  Capturing subpattern count = 1
177  No options  No options
178  No first char  No first char
179  No need char  No need char
180    Subject length lower bound = 1
181  Starting byte 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
182    \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
183    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 186  Starting byte set: \x00 \x01 \x02 \x03 \ Line 193  Starting byte set: \x00 \x01 \x02 \x03 \
193    \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
194    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
195    
196  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
197  Capturing subpattern count = 1  Capturing subpattern count = 1
198  No options  No options
199  No first char  No first char
200  No need char  No need char
201    Subject length lower bound = 1
202  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
203    
204  /(ab\2)/  /(ab\2)/
# Line 199  Failed: reference to non-existent subpat Line 207  Failed: reference to non-existent subpat
207  /{4,5}abc/  /{4,5}abc/
208  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
209    
210  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
211  Capturing subpattern count = 3  Capturing subpattern count = 3
212  Max back reference = 2  Max back reference = 2
213  No options  No options
# Line 224  Matched, but too many substrings Line 232  Matched, but too many substrings
232   0: abcb   0: abcb
233   1: a   1: a
234   2: b   2: b
235      \O12abcb      \O12abcb
236   0: abcb   0: abcb
237   1: a   1: a
238   2: b   2: b
239   3: c   3: c
240    
241  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
242  Capturing subpattern count = 3  Capturing subpattern count = 3
243  Max back reference = 2  Max back reference = 2
244  No options  No options
# Line 272  Matched, but too many substrings Line 280  Matched, but too many substrings
280   2: a   2: a
281   3: b   3: b
282    
283  /abc$/E  /abc$/IE
284  Capturing subpattern count = 0  Capturing subpattern count = 0
285  Options: dollar_endonly  Options: dollar_endonly
286  First char = 'a'  First char = 'a'
# Line 289  No match Line 297  No match
297  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
298  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
299    
300  /the quick brown fox/  /the quick brown fox/I
301  Capturing subpattern count = 0  Capturing subpattern count = 0
302  No options  No options
303  First char = 't'  First char = 't'
# Line 299  Need char = 'x' Line 307  Need char = 'x'
307      this is a line with the quick brown fox      this is a line with the quick brown fox
308   0: the quick brown fox   0: the quick brown fox
309    
310  /the quick brown fox/A  /the quick brown fox/IA
311  Capturing subpattern count = 0  Capturing subpattern count = 0
312  Options: anchored  Options: anchored
313  No first char  No first char
# Line 312  No match Line 320  No match
320  No match  No match
321    
322  /ab(?z)cd/  /ab(?z)cd/
323  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
324    
325  /^abc|def/  /^abc|def/I
326  Capturing subpattern count = 0  Capturing subpattern count = 0
327  No options  No options
328  No first char  No first char
# Line 324  No need char Line 332  No need char
332      abcdef\B      abcdef\B
333   0: def   0: def
334    
335  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
336  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
337  No options  No options
338  First char at start or follows \n  First char at start or follows newline
339  No need char  No need char
340      defabc      defabc
341   0: defabc   0: defabc
# Line 345  No need char Line 352  No need char
352   0: abc   0: abc
353      *** Failers      *** Failers
354  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
355    
356  /^abc|def/P  /^abc|def/P
357      abcdef      abcdef
358   0: abc   0: abc
# Line 361  No match: POSIX code 17: match failed Line 368  No match: POSIX code 17: match failed
368   0: def   0: def
369   1: def   1: def
370   3: def   3: def
371    
372  /the quick brown fox/P  /the quick brown fox/P
373      the quick brown fox      the quick brown fox
374   0: the quick brown fox   0: the quick brown fox
375      *** Failers      *** Failers
376  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
377      The Quick Brown Fox      The Quick Brown Fox
378  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
379    
380  /the quick brown fox/Pi  /the quick brown fox/Pi
381      the quick brown fox      the quick brown fox
382   0: the quick brown fox   0: the quick brown fox
383      The Quick Brown Fox      The Quick Brown Fox
384   0: The Quick Brown Fox   0: The Quick Brown Fox
385    
386  /abc.def/P  /abc.def/P
# Line 381  No match: POSIX code 17: match failed Line 388  No match: POSIX code 17: match failed
388  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
389      abc\ndef      abc\ndef
390  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
391    
392  /abc$/P  /abc$/P
393      abc      abc
394   0: abc   0: abc
395      abc\n      abc\n
396   0: abc   0: abc
397    
398  /(abc)\2/P  /(abc)\2/P
# Line 401  Failed: unmatched parentheses at offset Line 408  Failed: unmatched parentheses at offset
408  /a[]b/  /a[]b/
409  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
410    
411  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
412  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
413  No options  No options
414  No first char  No first char
415  No need char  No need char
416      co-processors, and for      co-processors, and for
417   0: -pr   0: -pr
418    
419  /<.*>/  /<.*>/I
420  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
421  No options  No options
422  First char = '<'  First char = '<'
423  Need char = '>'  Need char = '>'
424      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
425   0: <def>ghi<klm>   0: <def>ghi<klm>
426    
427  /<.*?>/  /<.*?>/I
428  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
429  No options  No options
430  First char = '<'  First char = '<'
431  Need char = '>'  Need char = '>'
432      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
433   0: <def>   0: <def>
434    
435  /<.*>/U  /<.*>/IU
436  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
437  Options: ungreedy  Options: ungreedy
438  First char = '<'  First char = '<'
439  Need char = '>'  Need char = '>'
440      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
441   0: <def>   0: <def>
442    
443  /(?U)<.*>/  /(?U)<.*>/I
444  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
445  Options: ungreedy  Options: ungreedy
446  First char = '<'  First char = '<'
447  Need char = '>'  Need char = '>'
448      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
449   0: <def>   0: <def>
450    
451  /<.*?>/U  /<.*?>/IU
452  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
453  Options: ungreedy  Options: ungreedy
454  First char = '<'  First char = '<'
455  Need char = '>'  Need char = '>'
456      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
457   0: <def>ghi<klm>   0: <def>ghi<klm>
458    
459  /={3,}/U  /={3,}/IU
460  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
461  Options: ungreedy  Options: ungreedy
462  First char = '='  First char = '='
463  Need char = '='  Need char = '='
464      abc========def      abc========def
465   0: ===   0: ===
466    
467  /(?U)={3,}?/  /(?U)={3,}?/I
468  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
469  Options: ungreedy  Options: ungreedy
470  First char = '='  First char = '='
471  Need char = '='  Need char = '='
472      abc========def      abc========def
473   0: ========   0: ========
474    
475  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
476  Capturing subpattern count = 0  Capturing subpattern count = 0
477  No options  No options
478  First char = 'f'  First char = 'f'
479  Need char = 'o'  Need char = 'o'
480      foo      foo
481   0: foo   0: foo
482      catfoo      catfoo
483   0: foo   0: foo
484      *** Failers      *** Failers
485  No match  No match
486      the barfoo      the barfoo
487  No match  No match
488      and cattlefoo      and cattlefoo
489  No match  No match
490    
491  /(?<=a+)b/  /(?<=a+)b/
# Line 498  Failed: lookbehind assertion is not fixe Line 497  Failed: lookbehind assertion is not fixe
497  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
498  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
499    
500  /(?i)abc/  /(?i)abc/I
501  Capturing subpattern count = 0  Capturing subpattern count = 0
502  Options: caseless  Options: caseless
503  First char = 'a' (caseless)  First char = 'a' (caseless)
504  Need char = 'c' (caseless)  Need char = 'c' (caseless)
505    
506  /(a|(?m)a)/  /(a|(?m)a)/I
507  Capturing subpattern count = 1  Capturing subpattern count = 1
508  No options  No options
509  First char = 'a'  First char = 'a'
510  No need char  No need char
511    
512  /(?i)^1234/  /(?i)^1234/I
513  Capturing subpattern count = 0  Capturing subpattern count = 0
514  Options: anchored caseless  Options: anchored caseless
515  No first char  No first char
516  No need char  No need char
517    
518  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
519  Capturing subpattern count = 1  Capturing subpattern count = 1
520  Options: anchored  Options: anchored
 Case state changes  
521  No first char  No first char
522  No need char  No need char
523    
524  /(?s).*/  /(?s).*/I
525  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
526  Options: anchored dotall  Options: anchored dotall
527  No first char  No first char
528  No need char  No need char
529    
530  /[abcd]/S  /[abcd]/IS
531  Capturing subpattern count = 0  Capturing subpattern count = 0
532  No options  No options
533  No first char  No first char
534  No need char  No need char
535    Subject length lower bound = 1
536  Starting byte set: a b c d  Starting byte set: a b c d
537    
538  /(?i)[abcd]/S  /(?i)[abcd]/IS
539  Capturing subpattern count = 0  Capturing subpattern count = 0
540  Options: caseless  Options: caseless
541  No first char  No first char
542  No need char  No need char
543    Subject length lower bound = 1
544  Starting byte 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  Capturing subpattern count = 1  Capturing subpattern count = 1
548  Options: multiline  Options: multiline
549  No first char  No first char
550  No need char  No need char
551    Subject length lower bound = 1
552  Starting byte set: b c x y  Starting byte set: b c x y
553    
554  /(^a|^b)/m  /(^a|^b)/Im
555  Capturing subpattern count = 1  Capturing subpattern count = 1
556  Options: multiline  Options: multiline
557  First char at start or follows \n  First char at start or follows newline
558  No need char  No need char
559    
560  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
561  Capturing subpattern count = 1  Capturing subpattern count = 1
562  Options: caseless multiline  Options: caseless multiline
563  First char at start or follows \n  First char at start or follows newline
564  No need char  No need char
565    
566  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 570  Failed: conditional group contains more Line 570  Failed: conditional group contains more
570  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
571    
572  /(?(1a)/  /(?(1a)/
573  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
574    
575    /(?(1a))/
576    Failed: reference to non-existent subpattern at offset 6
577    
578  /(?(?i))/  /(?(?i))/
579  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
580    
581  /(?(abc))/  /(?(abc))/
582  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
583    
584  /(?(?<ab))/  /(?(?<ab))/
585  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
586    
587  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
588  Capturing subpattern count = 1  Capturing subpattern count = 1
589  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
590  No options  No options
591  First char = 'b'  First char = 'b'
592  Need char = 'h'  Need char = 'h'
593    
594  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
595  Capturing subpattern count = 1  Capturing subpattern count = 1
596  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
597  No options  No options
 Case state changes  
598  First char = 'b' (caseless)  First char = 'b' (caseless)
599  Need char = 'h' (caseless)  Need char = 'h' (caseless)
600    
601  /((?i)b)/DS  /((?i)b)/IDZS
602  ------------------------------------------------------------------  ------------------------------------------------------------------
603    0  15 Bra 0          Bra
604    3   7 Bra 1          CBra 1
605    6  01 Opt       01 Opt
606    8  NC b       NC b
607   10   7 Ket          Ket
608   13  00 Opt       00 Opt
609   15  15 Ket          Ket
610   18     End          End
611  ------------------------------------------------------------------  ------------------------------------------------------------------
612  Capturing subpattern count = 1  Capturing subpattern count = 1
613  No options  No options
 Case state changes  
614  First char = 'b' (caseless)  First char = 'b' (caseless)
615  No need char  No need char
616  Study returned NULL  Subject length lower bound = 1
617    No set of starting bytes
618    
619  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
620  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
621  No options  No options
 Case state changes  
622  No first char  No first char
623  No need char  No need char
624    Subject length lower bound = 1
625  Starting byte set: C a b c d  Starting byte set: C a b c d
626    
627  /a$/  /a$/I
628  Capturing subpattern count = 0  Capturing subpattern count = 0
629  No options  No options
630  First char = 'a'  First char = 'a'
# Line 634  No need char Line 633  No need char
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  Capturing subpattern count = 0  Capturing subpattern count = 0
645  Options: multiline  Options: multiline
646  First char = 'a'  First char = 'a'
# Line 650  No need char Line 649  No need char
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  Capturing subpattern count = 0  Capturing subpattern count = 0
661  Options: anchored multiline  Options: anchored multiline
662  No first char  No first char
663  No need char  No need char
664    
665  /^abc/m  /^abc/Im
666  Capturing 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  Need char = 'c'  Need char = 'c'
670    
671  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
672  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
673  Options: anchored  Options: anchored
674  No first char  No first char
675  No need char  No need char
# Line 683  No need char Line 681  No need char
681   4: bbbbccccc   4: bbbbccccc
682   5: def   5: def
683    
684  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
685  Capturing subpattern count = 0  Capturing subpattern count = 0
686  No options  No options
687  No first char  No first char
688  No need char  No need char
689    Subject length lower bound = 1
690  Starting byte set: a b  Starting byte set: a b
691    
692  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
693  Capturing subpattern count = 1  Capturing subpattern count = 1
694  No options  No options
695  No first char  No first char
696  Need char = 'a'  Need char = 'a'
697    Subject length lower bound = 5
698  Starting byte set: a o  Starting byte set: a o
699    
700  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
701  Capturing subpattern count = 0  Capturing subpattern count = 0
702  No options  No options
703  No first char  No first char
704  No need char  No need char
705    Subject length lower bound = 1
706  Starting byte set: a b  Starting byte set: a b
707    
708  /(?<=foo\n)^bar/m  /(?<=foo\n)^bar/Im
709  Capturing subpattern count = 0  Capturing subpattern count = 0
710    Contains explicit CR or LF match
711  Options: multiline  Options: multiline
712  No first char  No first char
713  Need char = 'r'  Need char = 'r'
714      foo\nbarbar      foo\nbarbar
715   0: bar   0: bar
716      ***Failers      ***Failers
717  No match  No match
718      rhubarb      rhubarb
719  No match  No match
720      barbell      barbell
721  No match  No match
722      abc\nbarton      abc\nbarton
723  No match  No match
724    
725  /^(?<=foo\n)bar/m  /^(?<=foo\n)bar/Im
726  Capturing subpattern count = 0  Capturing subpattern count = 0
727    Contains explicit CR or LF match
728  Options: multiline  Options: multiline
729  First char at start or follows \n  First char at start or follows newline
730  Need char = 'r'  Need char = 'r'
731      foo\nbarbar      foo\nbarbar
732   0: bar   0: bar
733      ***Failers      ***Failers
734  No match  No match
735      rhubarb      rhubarb
736  No match  No match
737      barbell      barbell
738  No match  No match
739      abc\nbarton      abc\nbarton
740  No match  No match
741    
742  /(?>^abc)/m  /(?>^abc)/Im
743  Capturing subpattern count = 0  Capturing subpattern count = 0
744  Options: multiline  Options: multiline
745  First char at start or follows \n  First char at start or follows newline
746  Need char = 'c'  Need char = 'c'
747      abc      abc
748   0: abc   0: abc
# Line 747  Need char = 'c' Line 750  Need char = 'c'
750   0: abc   0: abc
751      *** Failers      *** Failers
752  No match  No match
753      defabc      defabc
754  No match  No match
755    
756  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 760  Failed: lookbehind assertion is not fixe Line 763  Failed: lookbehind assertion is not fixe
763  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
764    
765  /The next three are in testinput2 because they have variable length branches/  /The next three are in testinput2 because they have variable length branches/
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 's'  
766    
767  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
768  Capturing subpattern count = 0  Capturing subpattern count = 0
769  No options  No options
770  First char = '-'  First char = '-'
# Line 778  Need char = 't' Line 777  Need char = 't'
777  No match  No match
778      cart      cart
779  No match  No match
780      horse-and-cart      horse-and-cart
781  No match  No match
782    
783  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
784  Capturing subpattern count = 0  Capturing subpattern count = 0
785  No options  No options
 Case state changes  
786  No first char  No first char
787  No need char  No need char
788    
789  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
790  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
791  No options  No options
792  First char at start or follows \n  First char at start or follows newline
793  No need char  No need char
794      alphabetabcd      alphabetabcd
795   0: alphabetabcd   0: alphabetabcd
# Line 802  No need char Line 799  No need char
799   1: <unset>   1: <unset>
800   2: xyz   2: xyz
801    
802  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
803  Capturing subpattern count = 0  Capturing subpattern count = 0
804  No options  No options
 Case state changes  
805  First char = 'Z'  First char = 'Z'
806  Need char = 'Z'  Need char = 'Z'
807      abxyZZ      abxyZZ
# Line 818  Need char = 'Z' Line 814  Need char = 'Z'
814   0: ZZ   0: ZZ
815      bZZ      bZZ
816   0: ZZ   0: ZZ
817      BZZ      BZZ
818   0: ZZ   0: ZZ
819      *** Failers      *** Failers
820  No match  No match
821      ZZ      ZZ
822  No match  No match
823      abXYZZ      abXYZZ
824  No match  No match
825      zzz      zzz
826  No match  No match
827      bzz      bzz
828  No match  No match
829    
830  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
831  Capturing subpattern count = 1  Capturing subpattern count = 1
832  No options  No options
833  First char = 'b'  First char = 'b'
834  Need char = 'r'  Need char = 'r'
835      bar      bar
836   0: bar   0: bar
837      foobbar      foobbar
838   0: bar   0: bar
839      *** Failers      *** Failers
840  No match  No match
841      fooabar      fooabar
842  No match  No match
843    
844  /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
845  Capturing subpattern count = 0  Capturing subpattern count = 0
846  No options  No options
847  First char = 'T'  First char = 'T'
848  Need char = 't'  Need char = 't'
849    
850  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
851  Capturing subpattern count = 1  Capturing subpattern count = 1
852  Options: anchored  Options: anchored
853  No first char  No first char
854  No need char  No need char
855      *** Failers      *** Failers
856  No match  No match
857      a      a
858  No match  No match
859    
860  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because Perl behaves differently; see also the following/I
861  Capturing subpattern count = 0  Capturing subpattern count = 0
862  No options  No options
863  First char = 'T'  First char = 'T'
864  Need char = 'g'  Need char = 'g'
865    
866  /^(a\1?){4}$/  /^(a\1?){4}$/I
867  Capturing subpattern count = 1  Capturing subpattern count = 1
868  Max back reference = 1  Max back reference = 1
869  Options: anchored  Options: anchored
870  No first char  No first char
871  No need char  No need char
872        aaaa
873    No match
874      aaaaaa      aaaaaa
875   0: aaaaaa  No match
  1: aa  
876    
877  /These are syntax tests from Perl 5.005/  /Perl does not fail these two for the final subjects. Neither did PCRE until/
878    /release 8.01. The problem is in backtracking into a subpattern that contains/
879    No match
880    /a recursive reference to itself. PCRE has now made these into atomic patterns./
881    No match
882    
883    /^(xa|=?\1a){2}$/
884        xa=xaa
885     0: xa=xaa
886     1: =xaa
887        ** Failers
888    No match
889        xa=xaaa
890    No match
891    
892    /^(xa|=?\1a)+$/
893        xa=xaa
894     0: xa=xaa
895     1: =xaa
896        ** Failers
897    No match
898        xa=xaaa
899    No match
900    
901    /These are syntax tests from Perl 5.005/I
902  Capturing subpattern count = 0  Capturing subpattern count = 0
903  No options  No options
904  First char = 'T'  First char = 'T'
# Line 919  Failed: reference to non-existent subpat Line 940  Failed: reference to non-existent subpat
940  /(a)|\2/  /(a)|\2/
941  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
942    
943  /a[b-a]/i  /a[b-a]/Ii
944  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
945    
946  /a[]b/i  /a[]b/Ii
947  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
948    
949  /a[/i  /a[/Ii
950  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
951    
952  /*a/i  /*a/Ii
953  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
954    
955  /(*)b/i  /(*)b/Ii
956  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
957    
958  /abc)/i  /abc)/Ii
959  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
960    
961  /(abc/i  /(abc/Ii
962  Failed: missing ) at offset 4  Failed: missing ) at offset 4
963    
964  /a**/i  /a**/Ii
965  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
966    
967  /)(/i  /)(/Ii
968  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
969    
970  /:(?:/  /:(?:/
# Line 953  Failed: missing ) at offset 4 Line 974  Failed: missing ) at offset 4
974  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
975    
976  /a(?{)b/  /a(?{)b/
977  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
978    
979  /a(?{{})b/  /a(?{{})b/
980  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
981    
982  /a(?{}})b/  /a(?{}})b/
983  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
984    
985  /a(?{"{"})b/  /a(?{"{"})b/
986  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
987    
988  /a(?{"{"}})b/  /a(?{"{"}})b/
989  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
990    
991  /(?(1?)a|b)/  /(?(1?)a|b)/
992  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
   
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
993    
994  /[a[:xyz:/  /[a[:xyz:/
995  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
# Line 991  Failed: POSIX code 9: bad escape sequenc Line 1009  Failed: POSIX code 9: bad escape sequenc
1009  /abc/\i  /abc/\i
1010  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
1011    
1012  /(a)bc(d)/  /(a)bc(d)/I
1013  Capturing subpattern count = 2  Capturing subpattern count = 2
1014  No options  No options
1015  First char = 'a'  First char = 'a'
# Line 1010  Need char = 'd' Line 1028  Need char = 'd'
1028   1: a   1: a
1029   2: d   2: d
1030  copy substring 5 failed -7  copy substring 5 failed -7
1031    
1032  /(.{20})/  /(.{20})/I
1033  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1034  No options  No options
1035  No first char  No first char
1036  No need char  No need char
# Line 1023  No need char Line 1040  No need char
1040      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1041   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1042   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1043  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1044      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1045   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1046   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1047   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1048    
1049  /(.{15})/  /(.{15})/I
1050  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1051  No options  No options
1052  No first char  No first char
1053  No need char  No need char
# Line 1044  No need char Line 1060  No need char
1060   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1061   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1062    
1063  /(.{16})/  /(.{16})/I
1064  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1065  No options  No options
1066  No first char  No first char
1067  No need char  No need char
# Line 1056  No need char Line 1071  No need char
1071      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1072   0: abcdefghijklmnop   0: abcdefghijklmnop
1073   1: abcdefghijklmnop   1: abcdefghijklmnop
1074  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1075   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1076   0L abcdefghijklmnop   0L abcdefghijklmnop
1077   1L abcdefghijklmnop   1L abcdefghijklmnop
1078    
1079  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1080  Capturing subpattern count = 3  Capturing subpattern count = 3
1081  Options: anchored  Options: anchored
1082  No first char  No first char
1083  No need char  No need char
1084      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1085   0: adef   0: adef
1086   1: a   1: a
1087   2: <unset>   2: <unset>
# Line 1079  get substring 4 failed -7 Line 1094  get substring 4 failed -7
1094   1L a   1L a
1095   2L   2L
1096   3L f   3L f
1097      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1098   0: bcdef   0: bcdef
1099   1: bc   1: bc
1100   2: bc   2: bc
# Line 1092  get substring 4 failed -7 Line 1107  get substring 4 failed -7
1107   1L bc   1L bc
1108   2L bc   2L bc
1109   3L f   3L f
1110      adefghijk\C0      adefghijk\C0
1111   0: adef   0: adef
1112   1: a   1: a
1113   2: <unset>   2: <unset>
1114   3: f   3: f
1115   0C adef (4)   0C adef (4)
1116    
1117  /^abc\00def/  /^abc\00def/I
1118  Capturing subpattern count = 0  Capturing subpattern count = 0
1119  Options: anchored  Options: anchored
1120  No first char  No first char
1121  No need char  No need char
1122      abc\00def\L\C0      abc\00def\L\C0
1123   0: abc\x00def   0: abc\x00def
1124   0C abc (7)   0C abc (7)
1125   0L abc   0L abc
1126    
1127  /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]+
1128  )((?:[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]+
1129  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 432  
1130  Capturing subpattern count = 8  Capturing subpattern count = 8
1131  Partial matching not supported  Contains explicit CR or LF match
1132  No options  No options
1133  First char = 'w'  First char = 'w'
1134  Need char = 'd'  Need char = 'd'
1135    
1136  /.*X/D  /.*X/IDZ
1137  ------------------------------------------------------------------  ------------------------------------------------------------------
1138    0   7 Bra 0          Bra
1139    3     Any*          Any*
1140    5     X          X
1141    7   7 Ket          Ket
1142   10     End          End
1143  ------------------------------------------------------------------  ------------------------------------------------------------------
1144  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1145  No options  No options
1146  First char at start or follows \n  First char at start or follows newline
1147  Need char = 'X'  Need char = 'X'
1148    
1149  /.*X/Ds  /.*X/IDZs
1150  ------------------------------------------------------------------  ------------------------------------------------------------------
1151    0   7 Bra 0          Bra
1152    3     Any*          AllAny*
1153    5     X          X
1154    7   7 Ket          Ket
1155   10     End          End
1156  ------------------------------------------------------------------  ------------------------------------------------------------------
1157  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1158  Options: anchored dotall  Options: anchored dotall
1159  No first char  No first char
1160  Need char = 'X'  Need char = 'X'
1161    
1162  /(.*X|^B)/D  /(.*X|^B)/IDZ
1163  ------------------------------------------------------------------  ------------------------------------------------------------------
1164    0  19 Bra 0          Bra
1165    3   7 Bra 1          CBra 1
1166    6     Any*          Any*
1167    8     X          X
1168   10   6 Alt          Alt
1169   13     ^          ^
1170   14     B          B
1171   16  13 Ket          Ket
1172   19  19 Ket          Ket
1173   22     End          End
1174  ------------------------------------------------------------------  ------------------------------------------------------------------
1175  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1176  No options  No options
1177  First char at start or follows \n  First char at start or follows newline
1178  No need char  No need char
1179    
1180  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1181  ------------------------------------------------------------------  ------------------------------------------------------------------
1182    0  19 Bra 0          Bra
1183    3   7 Bra 1          CBra 1
1184    6     Any*          AllAny*
1185    8     X          X
1186   10   6 Alt          Alt
1187   13     ^          ^
1188   14     B          B
1189   16  13 Ket          Ket
1190   19  19 Ket          Ket
1191   22     End          End
1192  ------------------------------------------------------------------  ------------------------------------------------------------------
1193  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1194  Options: anchored dotall  Options: anchored dotall
1195  No first char  No first char
1196  No need char  No need char
1197    
1198  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1199  ------------------------------------------------------------------  ------------------------------------------------------------------
1200    0  19 Bra 0          Bra
1201    3   7 Bra 1          CBra 1
1202    6     Any*          AllAny*
1203    8     X          X
1204   10   6 Alt          Alt
1205   13     ^          ^
1206   14     B          B
1207   16  13 Ket          Ket
1208   19  19 Ket          Ket
1209   22     End          End
1210  ------------------------------------------------------------------  ------------------------------------------------------------------
1211  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1212  Options: anchored dotall  Options: anchored dotall
1213  No first char  No first char
1214  No need char  No need char
1215    
1216  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1217  ------------------------------------------------------------------  ------------------------------------------------------------------
1218    0  25 Bra 0          Bra
1219    3   9 Bra 0          Bra
1220    6  04 Opt       04 Opt
1221    8     Any*          AllAny*
1222   10     X          X
1223   12   8 Alt          Alt
1224   15  04 Opt       04 Opt
1225   17     ^          ^
1226   18     B          B
1227   20  17 Ket          Ket
1228   23  00 Opt       00 Opt
1229   25  25 Ket          Ket
1230   28     End          End
1231  ------------------------------------------------------------------  ------------------------------------------------------------------
1232  Capturing subpattern count = 0  Capturing subpattern count = 0
1233  Partial matching not supported  Options: anchored
1234  No options  No first char
 First char at start or follows \n  
1235  No need char  No need char
1236    
1237  /\Biss\B/+  /\Biss\B/I+
1238  Capturing subpattern count = 0  Capturing subpattern count = 0
1239  No options  No options
1240  First char = 'i'  First char = 'i'
# Line 1235  Need char = 's' Line 1243  Need char = 's'
1243   0: iss   0: iss
1244   0+ issippi   0+ issippi
1245    
1246  /\Biss\B/+P  /\Biss\B/I+P
1247      Mississippi      Mississippi
1248   0: iss   0: iss
1249   0+ issippi   0+ issippi
1250    
1251  /iss/G+  /iss/IG+
1252  Capturing subpattern count = 0  Capturing subpattern count = 0
1253  No options  No options
1254  First char = 'i'  First char = 'i'
# Line 1251  Need char = 's' Line 1259  Need char = 's'
1259   0: iss   0: iss
1260   0+ ippi   0+ ippi
1261    
1262  /\Biss\B/G+  /\Biss\B/IG+
1263  Capturing subpattern count = 0  Capturing subpattern count = 0
1264  No options  No options
1265  First char = 'i'  First char = 'i'
# Line 1260  Need char = 's' Line 1268  Need char = 's'
1268   0: iss   0: iss
1269   0+ issippi   0+ issippi
1270    
1271  /\Biss\B/g+  /\Biss\B/Ig+
1272  Capturing subpattern count = 0  Capturing subpattern count = 0
1273  No options  No options
1274  First char = 'i'  First char = 'i'
# Line 1275  No match Line 1283  No match
1283      Mississippi\A      Mississippi\A
1284  No match  No match
1285    
1286  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1287  Capturing subpattern count = 0  Capturing subpattern count = 0
1288  No options  No options
1289  First char = 'i'  First char = 'i'
# Line 1286  Need char = 's' Line 1294  Need char = 's'
1294   0: iss   0: iss
1295   0+ ippi   0+ ippi
1296    
1297  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1298  Capturing subpattern count = 0  Capturing subpattern count = 0
1299  No options  No options
1300  First char = 'i'  First char = 'i'
# Line 1295  Need char = 's' Line 1303  Need char = 's'
1303   0: iss   0: iss
1304   0+ issippi   0+ issippi
1305    
1306  /^iss/g+  /^iss/Ig+
1307  Capturing subpattern count = 0  Capturing subpattern count = 0
1308  Options: anchored  Options: anchored
1309  No first char  No first char
# Line 1303  No need char Line 1311  No need char
1311      ississippi      ississippi
1312   0: iss   0: iss
1313   0+ issippi   0+ issippi
1314    
1315  /.*iss/g+  /.*iss/Ig+
1316  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1317  No options  No options
1318  First char at start or follows \n  First char at start or follows newline
1319  Need char = 's'  Need char = 's'
1320      abciss\nxyzisspqr      abciss\nxyzisspqr
1321   0: abciss   0: abciss
1322   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1323   0: xyziss   0: xyziss
1324   0+ pqr   0+ pqr
1325    
1326  /.i./+g  /.i./I+g
1327  Capturing subpattern count = 0  Capturing subpattern count = 0
1328  No options  No options
1329  No first char  No first char
# Line 1342  Need char = 'i' Line 1349  Need char = 'i'
1349   0+ river   0+ river
1350   0: riv   0: riv
1351   0+ er   0+ er
1352      Missouri river\A      Missouri river\A
1353   0: Mis   0: Mis
1354   0+ souri river   0+ souri river
1355    
1356  /^.is/+g  /^.is/I+g
1357  Capturing subpattern count = 0  Capturing subpattern count = 0
1358  Options: anchored  Options: anchored
1359  No first char  No first char
# Line 1355  No need char Line 1362  No need char
1362   0: Mis   0: Mis
1363   0+ sissippi   0+ sissippi
1364    
1365  /^ab\n/g+  /^ab\n/Ig+
1366  Capturing subpattern count = 0  Capturing subpattern count = 0
1367    Contains explicit CR or LF match
1368  Options: anchored  Options: anchored
1369  No first char  No first char
1370  No need char  No need char
# Line 1364  No need char Line 1372  No need char
1372   0: ab\x0a   0: ab\x0a
1373   0+ ab\x0acd   0+ ab\x0acd
1374    
1375  /^ab\n/mg+  /^ab\n/Img+
1376  Capturing subpattern count = 0  Capturing subpattern count = 0
1377    Contains explicit CR or LF match
1378  Options: multiline  Options: multiline
1379  First char at start or follows \n  First char at start or follows newline
1380  Need char = 10  Need char = 10
1381      ab\nab\ncd      ab\nab\ncd
1382   0: ab\x0a   0: ab\x0a
# Line 1375  Need char = 10 Line 1384  Need char = 10
1384   0: ab\x0a   0: ab\x0a
1385   0+ cd   0+ cd
1386    
1387  /abc/  /abc/I
1388  Capturing subpattern count = 0  Capturing subpattern count = 0
1389  No options  No options
1390  First char = 'a'  First char = 'a'
1391  Need char = 'c'  Need char = 'c'
1392    
1393  /abc|bac/  /abc|bac/I
1394  Capturing subpattern count = 0  Capturing subpattern count = 0
1395  No options  No options
1396  No first char  No first char
1397  Need char = 'c'  Need char = 'c'
1398    
1399  /(abc|bac)/  /(abc|bac)/I
1400  Capturing subpattern count = 1  Capturing subpattern count = 1
1401  No options  No options
1402  No first char  No first char
1403  Need char = 'c'  Need char = 'c'
1404    
1405  /(abc|(c|dc))/  /(abc|(c|dc))/I
1406  Capturing subpattern count = 2  Capturing subpattern count = 2
1407  No options  No options
1408  No first char  No first char
1409  Need char = 'c'  Need char = 'c'
1410    
1411  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1412  Capturing subpattern count = 2  Capturing subpattern count = 2
1413  No options  No options
1414  No first char  No first char
1415  Need char = 'c'  Need char = 'c'
1416    
1417  /a*/  /a*/I
1418  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1419  No options  No options
1420  No first char  No first char
1421  No need char  No need char
1422    
1423  /a+/  /a+/I
1424  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1425  No options  No options
1426  First char = 'a'  First char = 'a'
1427  No need char  No need char
1428    
1429  /(baa|a+)/  /(baa|a+)/I
1430  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1431  No options  No options
1432  No first char  No first char
1433  Need char = 'a'  Need char = 'a'
1434    
1435  /a{0,3}/  /a{0,3}/I
1436  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1437  No options  No options
1438  No first char  No first char
1439  No need char  No need char
1440    
1441  /baa{3,}/  /baa{3,}/I
1442  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1443  No options  No options
1444  First char = 'b'  First char = 'b'
1445  Need char = 'a'  Need char = 'a'
1446    
1447  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1448  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1449  No options  No options
1450  First char = '"'  First char = '"'
1451  Need char = '"'  Need char = '"'
1452    
1453  /(abc|ab[cd])/  /(abc|ab[cd])/I
1454  Capturing subpattern count = 1  Capturing subpattern count = 1
1455  No options  No options
1456  First char = 'a'  First char = 'a'
1457  No need char  No need char
1458    
1459  /(a|.)/  /(a|.)/I
1460  Capturing subpattern count = 1  Capturing subpattern count = 1
1461  No options  No options
1462  No first char  No first char
1463  No need char  No need char
1464    
1465  /a|ba|\w/  /a|ba|\w/I
1466  Capturing subpattern count = 0  Capturing subpattern count = 0
1467  No options  No options
1468  No first char  No first char
1469  No need char  No need char
1470    
1471  /abc(?=pqr)/  /abc(?=pqr)/I
1472  Capturing subpattern count = 0  Capturing subpattern count = 0
1473  No options  No options
1474  First char = 'a'  First char = 'a'
1475  Need char = 'r'  Need char = 'r'
1476    
1477  /...(?<=abc)/  /...(?<=abc)/I
1478  Capturing subpattern count = 0  Capturing subpattern count = 0
1479  No options  No options
1480  No first char  No first char
1481  No need char  No need char
1482    
1483  /abc(?!pqr)/  /abc(?!pqr)/I
1484  Capturing subpattern count = 0  Capturing subpattern count = 0
1485  No options  No options
1486  First char = 'a'  First char = 'a'
1487  Need char = 'c'  Need char = 'c'
1488    
1489  /ab./  /ab./I
1490  Capturing subpattern count = 0  Capturing subpattern count = 0
1491  No options  No options
1492  First char = 'a'  First char = 'a'
1493  Need char = 'b'  Need char = 'b'
1494    
1495  /ab[xyz]/  /ab[xyz]/I
1496  Capturing subpattern count = 0  Capturing subpattern count = 0
1497  No options  No options
1498  First char = 'a'  First char = 'a'
1499  Need char = 'b'  Need char = 'b'
1500    
1501  /abc*/  /abc*/I
1502  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1503  No options  No options
1504  First char = 'a'  First char = 'a'
1505  Need char = 'b'  Need char = 'b'
1506    
1507  /ab.c*/  /ab.c*/I
1508  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1509  No options  No options
1510  First char = 'a'  First char = 'a'
1511  Need char = 'b'  Need char = 'b'
1512    
1513  /a.c*/  /a.c*/I
1514  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1515  No options  No options
1516  First char = 'a'  First char = 'a'
1517  No need char  No need char
1518    
1519  /.c*/  /.c*/I
1520  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1521  No options  No options
1522  No first char  No first char
1523  No need char  No need char
1524    
1525  /ac*/  /ac*/I
1526  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1527  No options  No options
1528  First char = 'a'  First char = 'a'
1529  No need char  No need char
1530    
1531  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1532  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1533  No options  No options
1534  No first char  No first char
1535  No need char  No need char
1536    
1537  /a.c*|aba/  /a.c*|aba/I
1538  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1539  No options  No options
1540  First char = 'a'  First char = 'a'
1541  No need char  No need char
1542    
1543  /.+a/  /.+a/I
1544  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1545  No options  No options
1546  No first char  No first char
1547  Need char = 'a'  Need char = 'a'
1548    
1549  /(?=abcda)a.*/  /(?=abcda)a.*/I
1550  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1551  No options  No options
1552  First char = 'a'  First char = 'a'
1553  Need char = 'a'  Need char = 'a'
1554    
1555  /(?=a)a.*/  /(?=a)a.*/I
1556  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1557  No options  No options
1558  First char = 'a'  First char = 'a'
1559  No need char  No need char
1560    
1561  /a(b)*/  /a(b)*/I
1562  Capturing subpattern count = 1  Capturing subpattern count = 1
1563  No options  No options
1564  First char = 'a'  First char = 'a'
1565  No need char  No need char
1566    
1567  /a\d*/  /a\d*/I
1568  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1569  No options  No options
1570  First char = 'a'  First char = 'a'
1571  No need char  No need char
1572    
1573  /ab\d*/  /ab\d*/I
1574  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1575  No options  No options
1576  First char = 'a'  First char = 'a'
1577  Need char = 'b'  Need char = 'b'
1578    
1579  /a(\d)*/  /a(\d)*/I
1580  Capturing subpattern count = 1  Capturing subpattern count = 1
1581  No options  No options
1582  First char = 'a'  First char = 'a'
1583  No need char  No need char
1584    
1585  /abcde{0,0}/  /abcde{0,0}/I
1586  Capturing subpattern count = 0  Capturing subpattern count = 0
1587  No options  No options
1588  First char = 'a'  First char = 'a'
1589  Need char = 'd'  Need char = 'd'
1590    
1591  /ab\d+/  /ab\d+/I
1592  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1593  No options  No options
1594  First char = 'a'  First char = 'a'
1595  Need char = 'b'  Need char = 'b'
1596    
1597  /a(?(1)b)/  /a(?(1)b)(.)/I
1598  Capturing subpattern count = 0  Capturing subpattern count = 1
1599  No options  No options
1600  First char = 'a'  First char = 'a'
1601  No need char  No need char
1602    
1603  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1604  Capturing subpattern count = 0  Capturing subpattern count = 1
1605  No options  No options
1606  First char = 'a'  First char = 'a'
1607  Need char = 'g'  Need char = 'g'
1608    
1609  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1610  Capturing subpattern count = 0  Capturing subpattern count = 1
1611  No options  No options
1612  First char = 'a'  First char = 'a'
1613  No need char  No need char
1614    
1615  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1616  Capturing subpattern count = 0  Capturing subpattern count = 1
1617  No options  No options
1618  First char = 'a'  First char = 'a'
1619  Need char = 'g'  Need char = 'g'
1620    
1621  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1622  Capturing subpattern count = 0  Capturing subpattern count = 1
1623  No options  No options
1624  First char = 'a'  First char = 'a'
1625  Need char = 'b'  Need char = 'b'
1626    
1627  /ab\d{0}e/  /ab\d{0}e/I
1628  Capturing subpattern count = 0  Capturing subpattern count = 0
1629  No options  No options
1630  First char = 'a'  First char = 'a'
1631  Need char = 'e'  Need char = 'e'
1632    
1633  /a?b?/  /a?b?/I
1634  Capturing subpattern count = 0  Capturing subpattern count = 0
1635  No options  No options
1636  No first char  No first char
# Line 1655  No need char Line 1645  No need char
1645   0:   0:
1646      *** Failers      *** Failers
1647   0:   0:
1648      \N      \N
1649  No match  No match
1650    
1651  /|-/  /|-/I
1652  Capturing subpattern count = 0  Capturing subpattern count = 0
1653  No options  No options
1654  No first char  No first char
# Line 1671  No need char Line 1661  No need char
1661   0: -   0: -
1662      *** Failers      *** Failers
1663   0:   0:
1664      \Nabc      \Nabc
1665  No match  No match
1666    
1667  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/P
# Line 1700  No match Line 1690  No match
1690   1: bbbb   1: bbbb
1691   2: z   2: z
1692   3: z   3: z
1693    
1694  /^.?abcd/S  /^.?abcd/IS
1695  Capturing subpattern count = 0  Capturing subpattern count = 0
1696  Options: anchored  Options: anchored
1697  No first char  No first char
1698  Need char = 'd'  Need char = 'd'
1699  Study returned NULL  Subject length lower bound = 4
1700    No set of starting bytes
1701    
1702  /\(             # ( at start  /\(             # ( at start
1703    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1715  Study returned NULL Line 1706  Study returned NULL
1706    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1707    )*            # Zero or more contents    )*            # Zero or more contents
1708    \)            # Closing )    \)            # Closing )
1709    /x    /Ix
1710  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1711  Options: extended  Options: extended
1712  First char = '('  First char = '('
1713  Need char = ')'  Need char = ')'
# Line 1727  Need char = ')' Line 1717  Need char = ')'
1717   0: (abcd)   0: (abcd)
1718      xyz(abcd)      xyz(abcd)
1719   0: (abcd)   0: (abcd)
1720      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1721   0: (ab(xy)cd)   0: (ab(xy)cd)
1722      (ab(xycd)pqr      (ab(xycd)pqr
1723   0: (xycd)   0: (xycd)
1724      () abc ()      () abc ()
1725   0: ()   0: ()
1726      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1727   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1728      *** Failers      *** Failers
1729  No match  No match
1730      abcd      abcd
1731  No match  No match
1732      abcd)      abcd)
1733  No match  No match
1734      (abcd      (abcd
1735  No match  No match
1736    
1737  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1738  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1739  Options: extended  Options: extended
1740  First char = '('  First char = '('
1741  Need char = ')'  Need char = ')'
1742      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1743   0: (ab(xy)cd)   0: (ab(xy)cd)
1744   1: cd   1: cd
1745      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1759  Need char = ')' Line 1748  Need char = ')'
1748   0: (x(y)z)   0: (x(y)z)
1749   1: z   1: z
1750    
1751  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1752  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1753  Options: extended  Options: extended
1754  First char = '('  First char = '('
1755  Need char = ')'  Need char = ')'
# Line 1769  Need char = ')' Line 1757  Need char = ')'
1757   0: (abcd)   0: (abcd)
1758      (ab(xy)cd)      (ab(xy)cd)
1759   0: (xy)   0: (xy)
1760      (a(b(c)d)e)      (a(b(c)d)e)
1761   0: (c)   0: (c)
1762      ((ab))      ((ab))
1763   0: ((ab))   0: ((ab))
1764      *** Failers      *** Failers
1765  No match  No match
1766      ()      ()
1767  No match  No match
1768    
1769  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1770  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1771  Options: extended  Options: extended
1772  First char = '('  First char = '('
1773  Need char = ')'  Need char = ')'
# Line 1789  Need char = ')' Line 1776  Need char = ')'
1776      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1777   0: (fsh)   0: (fsh)
1778    
1779  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1780  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1781  Options: extended  Options: extended
1782  First char = '('  First char = '('
1783  Need char = ')'  Need char = ')'
# Line 1799  Need char = ')' Line 1785  Need char = ')'
1785   0: (ab(xy)cd)   0: (ab(xy)cd)
1786   1: cd   1: cd
1787    
1788  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1789  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1790  Options: extended  Options: extended
1791  First char = '('  First char = '('
1792  Need char = ')'  Need char = ')'
# Line 1810  Need char = ')' Line 1795  Need char = ')'
1795   1: ab(xy)cd   1: ab(xy)cd
1796   2: cd   2: cd
1797    
1798  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1799  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1800  Options: extended  Options: extended
1801  First char = '('  First char = '('
1802  Need char = ')'  Need char = ')'
# Line 1827  Need char = ')' Line 1811  Need char = ')'
1811   2: ab(xy)cd   2: ab(xy)cd
1812   3: cd   3: cd
1813    
1814  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1815  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1816  Options: extended  Options: extended
1817  First char = '('  First char = '('
1818  Need char = ')'  Need char = ')'
# Line 1844  Need char = ')' Line 1827  Need char = ')'
1827   2: 123   2: 123
1828   3: cd   3: cd
1829    
1830  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1831  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1832  Options: extended  Options: extended
1833  First char = '('  First char = '('
1834  Need char = ')'  Need char = ')'
# Line 1864  Need char = ')' Line 1846  Need char = ')'
1846  10: ab(xy)cd  10: ab(xy)cd
1847  11: cd  11: cd
1848    
1849  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1850  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1851  Options: extended  Options: extended
1852  First char = '('  First char = '('
1853  Need char = ')'  Need char = ')'
# Line 1874  Need char = ')' Line 1855  Need char = ')'
1855   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1856   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1857   2: 123   2: 123
  3: <unset>  
1858    
1859  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1860  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1861  Options: extended  Options: extended
1862  First char = '('  First char = '('
1863  Need char = ')'  Need char = ')'
# Line 1893  Need char = ')' Line 1872  Need char = ')'
1872   2: ij   2: ij
1873   3: (cd(ef)gh)   3: (cd(ef)gh)
1874    
1875  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1876    ------------------------------------------------------------------
1877            Bra
1878            ^
1879            [0-9A-Za-z]
1880            Ket
1881            End
1882    ------------------------------------------------------------------
1883    Capturing subpattern count = 0
1884    Options: anchored
1885    No first char
1886    No need char
1887    
1888    /^[[:^alnum:]]/DZ
1889  ------------------------------------------------------------------  ------------------------------------------------------------------
1890    0  37 Bra 0          Bra
1891    3     ^          ^
1892    4     [0-9A-Za-z]          [\x00-/:-@[-`{-\xff] (neg)
1893   37  37 Ket          Ket
1894   40     End          End
1895  ------------------------------------------------------------------  ------------------------------------------------------------------
1896  Capturing subpattern count = 0  Capturing subpattern count = 0
1897  Options: anchored  Options: anchored
1898  No first char  No first char
1899  No need char  No need char
1900    
1901  /^[[:^alnum:]]/D  /^[[:alpha:]]/DZ
1902  ------------------------------------------------------------------  ------------------------------------------------------------------
1903    0  37 Bra 0          Bra
1904    3     ^          ^
1905    4     [\x00-/:-@[-`{-\xff]          [A-Za-z]
1906   37  37 Ket          Ket
1907   40     End          End
1908  ------------------------------------------------------------------  ------------------------------------------------------------------
1909  Capturing subpattern count = 0  Capturing subpattern count = 0
1910  Options: anchored  Options: anchored
1911  No first char  No first char
1912  No need char  No need char
1913    
1914  /^[[:alpha:]]/D  /^[[:^alpha:]]/DZ
1915  ------------------------------------------------------------------  ------------------------------------------------------------------
1916    0  37 Bra 0          Bra
1917    3     ^          ^
1918    4     [A-Za-z]          [\x00-@[-`{-\xff] (neg)
1919   37  37 Ket          Ket
1920   40     End          End
1921  ------------------------------------------------------------------  ------------------------------------------------------------------
1922  Capturing subpattern count = 0  Capturing subpattern count = 0
1923  Options: anchored  Options: anchored
1924  No first char  No first char
1925  No need char  No need char
1926    
1927  /^[[:^alpha:]]/D  /[_[:alpha:]]/IS
1928    Capturing subpattern count = 0
1929    No options
1930    No first char
1931    No need char
1932    Subject length lower bound = 1
1933    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
1934      _ 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
1935    
1936    /^[[:ascii:]]/DZ
1937  ------------------------------------------------------------------  ------------------------------------------------------------------
1938    0  37 Bra 0          Bra
1939    3     ^          ^
1940    4     [\x00-@[-`{-\xff]          [\x00-\x7f]
1941   37  37 Ket          Ket
1942   40     End          End
1943  ------------------------------------------------------------------  ------------------------------------------------------------------
1944  Capturing subpattern count = 0  Capturing subpattern count = 0
1945  Options: anchored  Options: anchored
1946  No first char  No first char
1947  No need char  No need char
1948    
1949  /^[[:ascii:]]/D  /^[[:^ascii:]]/DZ
1950  ------------------------------------------------------------------  ------------------------------------------------------------------
1951    0  37 Bra 0          Bra
1952    3     ^          ^
1953    4     [\x00-\x7f]          [\x80-\xff] (neg)
1954   37  37 Ket          Ket
1955   40     End          End
1956  ------------------------------------------------------------------  ------------------------------------------------------------------
1957  Capturing subpattern count = 0  Capturing subpattern count = 0
1958  Options: anchored  Options: anchored
1959  No first char  No first char
1960  No need char  No need char
1961    
1962  /^[[:^ascii:]]/D  /^[[:blank:]]/DZ
1963  ------------------------------------------------------------------  ------------------------------------------------------------------
1964    0  37 Bra 0          Bra
1965    3     ^          ^
1966    4     [\x80-\xff]          [\x09 ]
1967   37  37 Ket          Ket
1968   40     End          End
1969  ------------------------------------------------------------------  ------------------------------------------------------------------
1970  Capturing subpattern count = 0  Capturing subpattern count = 0
1971  Options: anchored  Options: anchored
1972  No first char  No first char
1973  No need char  No need char
1974    
1975  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1976  ------------------------------------------------------------------  ------------------------------------------------------------------
1977    0  37 Bra 0          Bra
1978    3     ^          ^
1979    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1980   37  37 Ket          Ket
1981   40     End          End
1982  ------------------------------------------------------------------  ------------------------------------------------------------------
1983  Capturing subpattern count = 0  Capturing subpattern count = 0
1984  Options: anchored  Options: anchored
1985  No first char  No first char
1986  No need char  No need char
1987    
1988  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1989    Capturing subpattern count = 0
1990    Contains explicit CR or LF match
1991    No options
1992    No first char
1993    No need char
1994    Subject length lower bound = 1
1995    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1996    
1997    /^[[:cntrl:]]/DZ
1998  ------------------------------------------------------------------  ------------------------------------------------------------------
1999    0  37 Bra 0          Bra
2000    3     ^          ^
2001    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
2002   37  37 Ket          Ket
2003   40     End          End
2004  ------------------------------------------------------------------  ------------------------------------------------------------------
2005  Capturing subpattern count = 0  Capturing subpattern count = 0
2006  Options: anchored  Options: anchored
2007  No first char  No first char
2008  No need char  No need char
2009    
2010  /^[[:digit:]]/D  /^[[:digit:]]/DZ
2011  ------------------------------------------------------------------  ------------------------------------------------------------------
2012    0  37 Bra 0          Bra
2013    3     ^          ^
2014    4     [0-9]          [0-9]
2015   37  37 Ket          Ket
2016   40     End          End
2017  ------------------------------------------------------------------  ------------------------------------------------------------------
2018  Capturing subpattern count = 0  Capturing subpattern count = 0
2019  Options: anchored  Options: anchored
2020  No first char  No first char
2021  No need char  No need char
2022    
2023  /^[[:graph:]]/D  /^[[:graph:]]/DZ
2024  ------------------------------------------------------------------  ------------------------------------------------------------------
2025    0  37 Bra 0          Bra
2026    3     ^          ^
2027    4     [!-~]          [!-~]
2028   37  37 Ket          Ket
2029   40     End          End
2030  ------------------------------------------------------------------  ------------------------------------------------------------------
2031  Capturing subpattern count = 0  Capturing subpattern count = 0
2032  Options: anchored  Options: anchored
2033  No first char  No first char
2034  No need char  No need char
2035    
2036  /^[[:lower:]]/D  /^[[:lower:]]/DZ
2037  ------------------------------------------------------------------  ------------------------------------------------------------------
2038    0  37 Bra 0          Bra
2039    3     ^          ^
2040    4     [a-z]          [a-z]
2041   37  37 Ket          Ket
2042   40     End          End
2043  ------------------------------------------------------------------  ------------------------------------------------------------------
2044  Capturing subpattern count = 0  Capturing subpattern count = 0
2045  Options: anchored  Options: anchored
2046  No first char  No first char
2047  No need char  No need char
2048    
2049  /^[[:print:]]/D  /^[[:print:]]/DZ
2050  ------------------------------------------------------------------  ------------------------------------------------------------------
2051    0  37 Bra 0          Bra
2052    3     ^          ^
2053    4     [ -~]          [ -~]
2054   37  37 Ket          Ket
2055   40     End          End
2056  ------------------------------------------------------------------  ------------------------------------------------------------------
2057  Capturing subpattern count = 0  Capturing subpattern count = 0
2058  Options: anchored  Options: anchored
2059  No first char  No first char
2060  No need char  No need char
2061    
2062  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2063  ------------------------------------------------------------------  ------------------------------------------------------------------
2064    0  37 Bra 0          Bra
2065    3     ^          ^
2066    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2067   37  37 Ket          Ket
2068   40     End          End
2069  ------------------------------------------------------------------  ------------------------------------------------------------------
2070  Capturing subpattern count = 0  Capturing subpattern count = 0
2071  Options: anchored  Options: anchored
2072  No first char  No first char
2073  No need char  No need char
2074    
2075  /^[[:space:]]/D  /^[[:space:]]/DZ
2076  ------------------------------------------------------------------  ------------------------------------------------------------------
2077    0  37 Bra 0          Bra
2078    3     ^          ^
2079    4     [\x09-\x0d ]          [\x09-\x0d ]
2080   37  37 Ket          Ket
2081   40     End          End
2082  ------------------------------------------------------------------  ------------------------------------------------------------------
2083  Capturing subpattern count = 0  Capturing subpattern count = 0
2084  Options: anchored  Options: anchored
2085  No first char  No first char
2086  No need char  No need char
2087    
2088  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2089  ------------------------------------------------------------------  ------------------------------------------------------------------
2090    0  37 Bra 0          Bra
2091    3     ^          ^
2092    4     [A-Z]          [A-Z]
2093   37  37 Ket          Ket
2094   40     End          End
2095  ------------------------------------------------------------------  ------------------------------------------------------------------
2096  Capturing subpattern count = 0  Capturing subpattern count = 0
2097  Options: anchored  Options: anchored
2098  No first char  No first char
2099  No need char  No need char
2100    
2101  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2102  ------------------------------------------------------------------  ------------------------------------------------------------------
2103    0  37 Bra 0          Bra
2104    3     ^          ^
2105    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2106   37  37 Ket          Ket
2107   40     End          End
2108  ------------------------------------------------------------------  ------------------------------------------------------------------
2109  Capturing subpattern count = 0  Capturing subpattern count = 0
2110  Options: anchored  Options: anchored
2111  No first char  No first char
2112  No need char  No need char
2113    
2114  /^[[:word:]]/D  /^[[:word:]]/DZ
2115  ------------------------------------------------------------------  ------------------------------------------------------------------
2116    0  37 Bra 0          Bra
2117    3     ^          ^
2118    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2119   37  37 Ket          Ket
2120   40     End          End
2121  ------------------------------------------------------------------  ------------------------------------------------------------------
2122  Capturing subpattern count = 0  Capturing subpattern count = 0
2123  Options: anchored  Options: anchored
2124  No first char  No first char
2125  No need char  No need char
2126    
2127  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2128  ------------------------------------------------------------------  ------------------------------------------------------------------
2129    0  37 Bra 0          Bra
2130    3     ^          ^
2131    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2132   37  37 Ket          Ket
2133   40     End          End
2134  ------------------------------------------------------------------  ------------------------------------------------------------------
2135  Capturing subpattern count = 0  Capturing subpattern count = 0
2136  Options: anchored  Options: anchored
2137  No first char  No first char
2138  No need char  No need char
2139    
2140  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2141  ------------------------------------------------------------------  ------------------------------------------------------------------
2142    0  37 Bra 0          Bra
2143    3     ^          ^
2144    4     [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2145   37  37 Ket          Ket
2146   40     End          End
2147  ------------------------------------------------------------------  ------------------------------------------------------------------
2148  Capturing subpattern count = 0  Capturing subpattern count = 0
2149  Options: anchored  Options: anchored
2150  No first char  No first char
2151  No need char  No need char
2152    
2153  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2154  ------------------------------------------------------------------  ------------------------------------------------------------------
2155    0  37 Bra 0          Bra
2156    3     ^          ^
2157    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2158   37  37 Ket          Ket
2159   40     End          End
2160  ------------------------------------------------------------------  ------------------------------------------------------------------
2161  Capturing subpattern count = 0  Capturing subpattern count = 0
2162  Options: anchored  Options: anchored
2163  No first char  No first char
2164  No need char  No need char
2165    
2166  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2167  ------------------------------------------------------------------  ------------------------------------------------------------------
2168    0  36 Bra 0          Bra
2169    3     [%01A-Za-z]          [%01A-Za-z]
2170   36  36 Ket          Ket
2171   39     End          End
2172  ------------------------------------------------------------------  ------------------------------------------------------------------
2173  Capturing subpattern count = 0  Capturing subpattern count = 0
2174  No options  No options
2175  No first char  No first char
2176  No need char  No need char
2177    
2178  /[[.ch.]]/  /[[.ch.]]/I
2179  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2180    
2181  /[[=ch=]]/  /[[=ch=]]/I
2182  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2183    
2184  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2185  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2186    
2187  /[[:upper:]]/i  /[[:upper:]]/Ii
2188  Capturing subpattern count = 0  Capturing subpattern count = 0
2189  Options: caseless  Options: caseless
2190  No first char  No first char
2191  No need char  No need char
2192      A      A
2193   0: A   0: A
2194      a      a
2195   0: a   0: a
2196    
2197  /[[:lower:]]/i  /[[:lower:]]/Ii
2198  Capturing subpattern count = 0  Capturing subpattern count = 0
2199  Options: caseless  Options: caseless
2200  No first char  No first char
2201  No need char  No need char
2202      A      A
2203   0: A   0: A
2204      a      a
2205   0: a   0: a
2206    
2207  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2208  Capturing subpattern count = 1  Capturing subpattern count = 1
2209  Options: caseless  Options: caseless
 Case state changes  
2210  No first char  No first char
2211  No need char  No need char
2212      ab      ab
# Line 2211  No need char Line 2220  No need char
2220   1: a   1: a
2221      Ab      Ab
2222  No match  No match
2223      AB      AB
2224  No match  No match
2225    
2226  /[\200-\410]/  /[\200-\110]/I
2227  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2228    
2229  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2230  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2231    
2232  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2233  Capturing subpattern count = 0  Capturing subpattern count = 0
2234  No options  No options
2235  First char = 'T'  First char = 'T'
2236  Need char = 'd'  Need char = 'd'
2237    
2238  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2239  Capturing subpattern count = 271  Capturing subpattern count = 271
2240  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2241  No options  No options
2242  No first char  No first char
2243  No need char  No need char
# Line 2507  No need char Line 2515  No need char
2515  270: ABC  270: ABC
2516  271: ABC  271: ABC
2517    
2518  /This one's here because Perl does this differently and PCRE can't at present/  /This one's here because Perl does this differently and PCRE can't at present/I
2519  Capturing subpattern count = 0  Capturing subpattern count = 0
2520  No options  No options
2521  First char = 'T'  First char = 'T'
2522  Need char = 't'  Need char = 't'
2523    
2524  /(main(O)?)+/  /(main(O)?)+/I
2525  Capturing subpattern count = 2  Capturing subpattern count = 2
2526  No options  No options
2527  First char = 'm'  First char = 'm'
# Line 2525  Need char = 'n' Line 2533  Need char = 'n'
2533   0: mainOmain   0: mainOmain
2534   1: main   1: main
2535   2: O   2: O
2536    
2537  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2538  Capturing subpattern count = 1  Capturing subpattern count = 1
2539  No options  No options
2540  First char = 'T'  First char = 'T'
2541  Need char = 's'  Need char = 's'
2542    
2543  /^(a(b)?)+$/  /^(a(b)?)+$/I
2544  Capturing subpattern count = 2  Capturing subpattern count = 2
2545  Options: anchored  Options: anchored
2546  No first char  No first char
# Line 2541  No need char Line 2549  No need char
2549   0: aba   0: aba
2550   1: a   1: a
2551   2: b   2: b
2552    
2553  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2554  Capturing subpattern count = 2  Capturing subpattern count = 2
2555  Options: anchored  Options: anchored
2556  No first char  No first char
2557  No need char  No need char
2558      aabbaa      aabbaa
2559   0: aabbaa   0: aabbaa
2560   1: aa   1: aa
2561   2: bb   2: bb
2562    
2563  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2564  Capturing subpattern count = 2  Capturing subpattern count = 2
2565  Options: anchored  Options: anchored
2566  No first char  No first char
2567  No need char  No need char
2568      aabbaa      aabbaa
2569   0: aabbaa   0: aabbaa
2570   1: aa   1: aa
2571   2: bb   2: bb
2572    
2573  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2574  Capturing subpattern count = 2  Capturing subpattern count = 2
2575  Options: anchored  Options: anchored
2576  No first char  No first char
2577  No need char  No need char
2578      aabbaa      aabbaa
2579   0: aabbaa   0: aabbaa
2580   1: aa   1: aa
2581   2: bb   2: bb
2582    
2583  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2584  Capturing subpattern count = 1  Capturing subpattern count = 1
2585  Options: anchored  Options: anchored
2586  No first char  No first char
2587  No need char  No need char
2588      aabbaa      aabbaa
2589   0: aabbaa   0: aabbaa
2590   1: bb   1: bb
2591    
2592  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2593  Capturing subpattern count = 3  Capturing subpattern count = 3
2594  Options: anchored  Options: anchored
2595  No first char  No first char
2596  No need char  No need char
2597      aabbaa      aabbaa
2598   0: aabbaa   0: aabbaa
2599   1: aa   1: aa
2600   2: bb   2: bb
2601   3: b   3: b
2602    
2603  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2604  Capturing subpattern count = 2  Capturing subpattern count = 2
2605  Options: anchored  Options: anchored
2606  No first char  No first char
2607  No need char  No need char
2608      aabbaa      aabbaa
2609   0: aabbaa   0: aabbaa
2610   1: bb   1: bb
2611   2: b   2: b
2612    
2613  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2614  Capturing subpattern count = 1  Capturing subpattern count = 1
2615  Options: anchored  Options: anchored
2616  No first char  No first char
2617  No need char  No need char
2618      aabbaa      aabbaa
2619   0: aabbaa   0: aabbaa
2620   1: bb   1: bb
2621    
2622  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2623  Capturing subpattern count = 1  Capturing subpattern count = 1
2624  Options: anchored  Options: anchored
2625  No first char  No first char
2626  No need char  No need char
2627      aabbbaa      aabbbaa
2628   0: aabbbaa   0: aabbbaa
2629   1: bbb   1: bbb
2630    
2631  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2632  Capturing subpattern count = 1  Capturing subpattern count = 1
2633  Options: anchored  Options: anchored
2634  No first char  No first char
2635  No need char  No need char
2636      aabbbaa      aabbbaa
2637   0: aabbbaa   0: aabbbaa
2638   1: bbb   1: bbb
2639    
2640  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2641  Capturing subpattern count = 1  Capturing subpattern count = 1
2642  Options: anchored  Options: anchored
2643  No first char  No first char
2644  No need char  No need char
2645      aabbaa      aabbaa
2646   0: aabbaa   0: aabbaa
2647   1: b   1: b
2648    
2649  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2650  Capturing subpattern count = 1  Capturing subpattern count = 1
2651  Options: anchored  Options: anchored
2652  No first char  No first char
2653  No need char  No need char
2654      aabbbaa      aabbbaa
2655   0: aabbbaa   0: aabbbaa
2656   1: bb   1: bb
2657    
2658  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2659  Capturing subpattern count = 3  Capturing subpattern count = 3
2660  Options: anchored  Options: anchored
2661  No first char  No first char
2662  No need char  No need char
2663      aabbbaa      aabbbaa
2664   0: aabbbaa   0: aabbbaa
2665   1: aa   1: aa
2666   2: bbb   2: bbb
2667   3: bb   3: bb
2668    
2669  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2670  Capturing subpattern count = 3  Capturing subpattern count = 3
2671  Options: anchored  Options: anchored
2672  No first char  No first char
2673  No need char  No need char
2674      aabbbbaa      aabbbbaa
2675   0: aabbbbaa   0: aabbbbaa
2676   1: aa   1: aa
2677   2: bbbb   2: bbbb
2678   3: bb   3: bb
2679    
2680  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2681  Capturing subpattern count = 0  Capturing subpattern count = 0
2682  No options  No options
2683  First char = '-'  First char = '-'
2684  Need char = '-'  Need char = '-'
2685    
2686  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2687  ------------------------------------------------------------------  ------------------------------------------------------------------
2688    0   3 Bra 0          Bra
2689    3   3 Ket          Ket
2690    6     End          End
2691  ------------------------------------------------------------------  ------------------------------------------------------------------
2692  Capturing subpattern count = 0  Capturing subpattern count = 0
2693  Options: extended  Options: extended
2694  No first char  No first char
2695  No need char  No need char
2696    
2697  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2698  ------------------------------------------------------------------  ------------------------------------------------------------------
2699    0   5 Bra 0          Bra
2700    3     a          a
2701    5   5 Ket          Ket
2702    8     End          End
2703  ------------------------------------------------------------------  ------------------------------------------------------------------
2704  Capturing subpattern count = 0  Capturing subpattern count = 0
2705  Options: extended  Options: extended
2706  First char = 'a'  First char = 'a'
2707  No need char  No need char
2708    
2709  /[\s]/D  /[\s]/DZ
2710  ------------------------------------------------------------------  ------------------------------------------------------------------
2711    0  36 Bra 0          Bra
2712    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
2713   36  36 Ket          Ket
2714   39     End          End
2715  ------------------------------------------------------------------  ------------------------------------------------------------------
2716  Capturing subpattern count = 0  Capturing subpattern count = 0
2717  No options  No options
2718  No first char  No first char
2719  No need char  No need char
2720    
2721  /[\S]/D  /[\S]/DZ
2722  ------------------------------------------------------------------  ------------------------------------------------------------------
2723    0  36 Bra 0          Bra
2724    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2725   36  36 Ket          Ket
2726   39     End          End
2727  ------------------------------------------------------------------  ------------------------------------------------------------------
2728  Capturing subpattern count = 0  Capturing subpattern count = 0
2729  No options  No options
2730  No first char  No first char
2731  No need char  No need char
2732    
2733  /a(?i)b/D  /a(?i)b/DZ
2734  ------------------------------------------------------------------  ------------------------------------------------------------------
2735    0   9 Bra 0          Bra
2736    3     a          a
2737    5  01 Opt       01 Opt
2738    7  NC b       NC b
2739    9   9 Ket          Ket
2740   12     End          End
2741  ------------------------------------------------------------------  ------------------------------------------------------------------
2742  Capturing subpattern count = 0  Capturing subpattern count = 0
2743  No options  No options
 Case state changes  
2744  First char = 'a'  First char = 'a'
2745  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2746      ab      ab
2747   0: ab   0: ab
2748      aB      aB
2749   0: aB   0: aB
2750      *** Failers      *** Failers
2751  No match  No match
2752      AB      AB
2753  No match  No match
2754    
2755  /(a(?i)b)/D  /(a(?i)b)/DZ
2756  ------------------------------------------------------------------  ------------------------------------------------------------------
2757    0  17 Bra 0          Bra
2758    3   9 Bra 1          CBra 1
2759    6     a          a
2760    8  01 Opt       01 Opt
2761   10  NC b       NC b
2762   12   9 Ket          Ket
2763   15  00 Opt       00 Opt
2764   17  17 Ket          Ket
2765   20     End          End
2766  ------------------------------------------------------------------  ------------------------------------------------------------------
2767  Capturing subpattern count = 1  Capturing subpattern count = 1
2768  No options  No options
 Case state changes  
2769  First char = 'a'  First char = 'a'
2770  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2771      ab      ab
# Line 2770  Need char = 'b' (caseless) Line 2774  Need char = 'b' (caseless)
2774      aB      aB
2775   0: aB   0: aB
2776   1: aB   1: aB
2777      *** Failers      *** Failers
2778  No match  No match
2779      AB      AB
2780  No match  No match
2781    
2782  /   (?i)abc/xD  /   (?i)abc/IxDZ
2783  ------------------------------------------------------------------  ------------------------------------------------------------------
2784    0   9 Bra 0          Bra
2785    3  NC abc       NC abc
2786    9   9 Ket          Ket
2787   12     End          End
2788  ------------------------------------------------------------------  ------------------------------------------------------------------
2789  Capturing subpattern count = 0  Capturing subpattern count = 0
2790  Options: caseless extended  Options: caseless extended
# Line 2788  First char = 'a' (caseless) Line 2792  First char = 'a' (caseless)
2792  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2793    
2794  /#this is a comment  /#this is a comment
2795    (?i)abc/xD    (?i)abc/IxDZ
2796  ------------------------------------------------------------------  ------------------------------------------------------------------
2797    0   9 Bra 0          Bra
2798    3  NC abc       NC abc
2799    9   9 Ket          Ket
2800   12     End          End
2801  ------------------------------------------------------------------  ------------------------------------------------------------------
2802  Capturing subpattern count = 0  Capturing subpattern count = 0
2803  Options: caseless extended  Options: caseless extended
2804  First char = 'a' (caseless)  First char = 'a' (caseless)
2805  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2806    
2807  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2808  ------------------------------------------------------------------  ------------------------------------------------------------------
2809    0 603 Bra 0          Bra
2810    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2811  603 603 Ket          Ket
2812  606     End          End
2813  ------------------------------------------------------------------  ------------------------------------------------------------------
2814  Capturing subpattern count = 0  Capturing subpattern count = 0
2815  No options  No options
2816  First char = '1'  First char = '1'
2817  Need char = '0'  Need char = '0'
2818    
2819  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2820  ------------------------------------------------------------------  ------------------------------------------------------------------
2821    0 603 Bra 0          Bra
2822    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2823  603 603 Ket          Ket
2824  606     End          End
2825  ------------------------------------------------------------------  ------------------------------------------------------------------
2826  Capturing subpattern count = 0  Capturing subpattern count = 0
2827  No options  No options
2828  First char = '1'  First char = '1'
2829  Need char = '0'  Need char = '0'
2830    
2831  /\Q\E/D  /\Q\E/DZ
2832  ------------------------------------------------------------------  ------------------------------------------------------------------
2833    0   3 Bra 0          Bra
2834    3   3 Ket          Ket
2835    6     End          End
2836  ------------------------------------------------------------------  ------------------------------------------------------------------
2837  Capturing subpattern count = 0  Capturing subpattern count = 0
2838  No options  No options
# Line 2837  No need char Line 2841  No need char
2841      \      \
2842   0:   0:
2843    
2844  /\Q\Ex/D  /\Q\Ex/DZ
2845  ------------------------------------------------------------------  ------------------------------------------------------------------
2846    0   5 Bra 0          Bra
2847    3     x          x
2848    5   5 Ket          Ket
2849    8     End          End
2850  ------------------------------------------------------------------  ------------------------------------------------------------------
2851  Capturing subpattern count = 0  Capturing subpattern count = 0
2852  No options  No options
2853  First char = 'x'  First char = 'x'
2854  No need char  No need char
2855    
2856  / \Q\E/D  / \Q\E/DZ
2857  ------------------------------------------------------------------  ------------------------------------------------------------------
2858    0   5 Bra 0          Bra
2859    3  
2860    5   5 Ket          Ket
2861    8     End          End
2862  ------------------------------------------------------------------  ------------------------------------------------------------------
2863  Capturing subpattern count = 0  Capturing subpattern count = 0
2864  No options  No options
2865  First char = ' '  First char = ' '
2866  No need char  No need char
2867    
2868  /a\Q\E/D  /a\Q\E/DZ
2869  ------------------------------------------------------------------  ------------------------------------------------------------------
2870    0   5 Bra 0          Bra
2871    3     a          a
2872    5   5 Ket          Ket
2873    8     End          End
2874  ------------------------------------------------------------------  ------------------------------------------------------------------
2875  Capturing subpattern count = 0  Capturing subpattern count = 0
2876  No options  No options
# Line 2876  No need char Line 2880  No need char
2880   0: a   0: a
2881    bca    bca
2882   0: a   0: a
2883    bac    bac
2884   0: a   0: a
2885    
2886  /a\Q\Eb/D  /a\Q\Eb/DZ
2887  ------------------------------------------------------------------  ------------------------------------------------------------------
2888    0   7 Bra 0          Bra
2889    3     ab          ab
2890    7   7 Ket          Ket
2891   10     End          End
2892  ------------------------------------------------------------------  ------------------------------------------------------------------
2893  Capturing subpattern count = 0  Capturing subpattern count = 0
2894  No options  No options
# Line 2893  Need char = 'b' Line 2897  Need char = 'b'
2897    abc    abc
2898   0: ab   0: ab
2899    
2900  /\Q\Eabc/D  /\Q\Eabc/DZ
2901  ------------------------------------------------------------------  ------------------------------------------------------------------
2902    0   9 Bra 0          Bra
2903    3     abc          abc
2904    9   9 Ket          Ket
2905   12     End          End
2906  ------------------------------------------------------------------  ------------------------------------------------------------------
2907  Capturing subpattern count = 0  Capturing subpattern count = 0
2908  No options  No options
2909  First char = 'a'  First char = 'a'
2910  Need char = 'c'  Need char = 'c'
2911    
2912  /x*+\w/D  /x*+\w/DZ
2913  ------------------------------------------------------------------  ------------------------------------------------------------------
2914    0  12 Bra 0          Bra
2915    3   5 Once          x*+
2916    6     x*          \w
2917    8   5 Ket          Ket
2918   11     \w          End
  12  12 Ket  
  15     End  
2919  ------------------------------------------------------------------  ------------------------------------------------------------------
2920  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2921  No options  No options
2922  No first char  No first char
2923  No need char  No need char
# Line 2924  No need char Line 2925  No need char
2925   0: F   0: F
2926      xxxxx      xxxxx
2927  No match  No match
2928    
2929  /x?+/D  /x?+/DZ
2930  ------------------------------------------------------------------  ------------------------------------------------------------------
2931    0  11 Bra 0          Bra
2932    3   5 Once          x?+
2933    6     x?          Ket
2934    8   5 Ket          End
  11  11 Ket  
  14     End  
2935  ------------------------------------------------------------------  ------------------------------------------------------------------
2936  Capturing subpattern count = 0  Capturing subpattern count = 0
2937  No options  No options
2938  No first char  No first char
2939  No need char  No need char
2940    
2941  /x++/D  /x++/DZ
2942  ------------------------------------------------------------------  ------------------------------------------------------------------
2943    0  11 Bra 0          Bra
2944    3   5 Once          x++
2945    6     x+          Ket
2946    8   5 Ket          End
  11  11 Ket  
  14     End  
2947  ------------------------------------------------------------------  ------------------------------------------------------------------
2948  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2949  No options  No options
2950  First char = 'x'  First char = 'x'
2951  No need char  No need char
2952    
2953  /x{1,3}+/D  /x{1,3}+/DZ
2954  ------------------------------------------------------------------  ------------------------------------------------------------------
2955    0  15 Bra 0          Bra
2956    3   9 Once          Once
2957    6     x          x
2958    8     x{,2}          x{0,2}
2959   12   9 Ket          Ket
2960   15  15 Ket          Ket
2961   18     End          End
2962  ------------------------------------------------------------------  ------------------------------------------------------------------
2963  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2964  No options  No options
2965  First char = 'x'  First char = 'x'
2966  No need char  No need char
2967    
2968  /(x)*+/D  /(x)*+/DZ
2969  ------------------------------------------------------------------  ------------------------------------------------------------------
2970    0  18 Bra 0          Bra
2971    3  12 Once          Once
2972    6     Brazero          Brazero
2973    7   5 Bra 1          CBra 1
2974   10     x          x
2975   12   5 KetRmax          KetRmax
2976   15  12 Ket          Ket
2977   18  18 Ket          Ket
2978   21     End          End
2979  ------------------------------------------------------------------  ------------------------------------------------------------------
2980  Capturing subpattern count = 1  Capturing subpattern count = 1
2981  No options  No options
2982  No first char  No first char
2983  No need char  No need char
2984    
2985  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2986  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2987  Options: anchored  Options: anchored
2988  No first char  No first char
2989  No need char  No need char
# Line 3000  No need char Line 2994  No need char
2994  No match  No match
2995      this is not a line with only words and spaces!      this is not a line with only words and spaces!
2996  No match  No match
2997    
2998  /(\d++)(\w)/  /(\d++)(\w)/I
2999  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3000  No options  No options
3001  No first char  No first char
3002  No need char  No need char
# Line 3013  No need char Line 3006  No need char
3006   2: a   2: a
3007      *** Failers      *** Failers
3008  No match  No match
3009      12345+      12345+
3010  No match  No match
3011    
3012  /a++b/  /a++b/I
3013  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3014  No options  No options
3015  First char = 'a'  First char = 'a'
3016  Need char = 'b'  Need char = 'b'
3017      aaab      aaab
3018   0: aaab   0: aaab
3019    
3020  /(a++b)/  /(a++b)/I
3021  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3022  No options  No options
3023  First char = 'a'  First char = 'a'
3024  Need char = 'b'  Need char = 'b'
# Line 3035  Need char = 'b' Line 3026  Need char = 'b'
3026   0: aaab   0: aaab
3027   1: aaab   1: aaab
3028    
3029  /(a++)b/  /(a++)b/I
3030  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3031  No options  No options
3032  First char = 'a'  First char = 'a'
3033  Need char = 'b'  Need char = 'b'
# Line 3045  Need char = 'b' Line 3035  Need char = 'b'
3035   0: aaab   0: aaab
3036   1: aaa   1: aaa
3037    
3038  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3039  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3040  No options  No options
3041  No first char  No first char
3042  No need char  No need char
3043      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3044   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3045   1: x   1: x
3046    
3047  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3048  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3049  No options  No options
3050  First char = '('  First char = '('
3051  Need char = ')'  Need char = ')'
# Line 3069  Need char = ')' Line 3057  Need char = ')'
3057   1: xyz   1: xyz
3058      *** Failers      *** Failers
3059  No match  No match
3060      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3061  No match  No match
3062    
3063  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3064  ------------------------------------------------------------------  ------------------------------------------------------------------
3065    0  53 Bra 0          Bra
3066    3  47 Once          Once
3067    6   9 Bra 1          CBra 1
3068    9     abc          abc
3069   15   9 Ket          Ket
3070   18     Brazero          Brazero
3071   19  28 Bra 0          Bra
3072   22   9 Bra 1          CBra 1
3073   25     abc          abc
3074   31   9 Ket          Ket
3075   34     Brazero          Brazero
3076   35   9 Bra 1          CBra 1
3077   38     abc          abc
3078   44   9 Ket          Ket
3079   47  28 Ket          Ket
3080   50  47 Ket          Ket
3081   53  53 Ket          Ket
3082   56     End          End
3083  ------------------------------------------------------------------  ------------------------------------------------------------------
3084  Capturing subpattern count = 1  Capturing subpattern count = 1
3085  No options  No options
3086  First char = 'a'  First char = 'a'
3087  Need char = 'c'  Need char = 'c'
3088    
3089  /a+?+/  /a+?+/I
3090  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3091    
3092  /a{2,3}?+b/  /a{2,3}?+b/I
3093  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3094    
3095  /(?U)a+?+/  /(?U)a+?+/I
3096  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3097    
3098  /a{2,3}?+b/U  /a{2,3}?+b/IU
3099  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3100    
3101  /x(?U)a++b/D  /x(?U)a++b/DZ
3102  ------------------------------------------------------------------  ------------------------------------------------------------------
3103    0  15 Bra 0          Bra
3104    3     x          x
3105    5   5 Once          a++
3106    8     a+          b
3107   10   5 Ket          Ket
3108   13     b          End
  15  15 Ket  
  18     End  
3109  ------------------------------------------------------------------  ------------------------------------------------------------------
3110  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3111  No options  No options
3112  First char = 'x'  First char = 'x'
3113  Need char = 'b'  Need char = 'b'
3114      xaaaab      xaaaab
3115   0: xaaaab   0: xaaaab
3116    
3117  /(?U)xa++b/D  /(?U)xa++b/DZ
3118  ------------------------------------------------------------------  ------------------------------------------------------------------
3119    0  15 Bra 0          Bra
3120    3     x          x
3121    5   5 Once          a++
3122    8     a+          b
3123   10   5 Ket          Ket
3124   13     b          End
  15  15 Ket  
  18     End  
3125  ------------------------------------------------------------------  ------------------------------------------------------------------
3126  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3127  Options: ungreedy  Options: ungreedy
3128  First char = 'x'  First char = 'x'
3129  Need char = 'b'  Need char = 'b'
3130      xaaaab      xaaaab
3131   0: xaaaab   0: xaaaab
3132    
3133  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3134  ------------------------------------------------------------------  ------------------------------------------------------------------
3135    0 106 Bra 0          Bra
3136    3     ^          ^
3137    4  99 Bra 1          CBra 1
3138    7   5 Bra 2          CBra 2
3139   10     a+          a+
3140   12   5 Ket          Ket
3141   15  37 Bra 3          CBra 3
3142   18     [ab]+?          [ab]+?
3143   52  37 Ket          Ket
3144   55  37 Bra 4          CBra 4
3145   58     [bc]+          [bc]+
3146   92  37 Ket          Ket
3147   95   5 Bra 5          CBra 5
3148   98     \w*          \w*
3149  100   5 Ket          Ket
3150  103  99 Ket          Ket
3151  106 106 Ket          Ket
3152  109     End          End
3153  ------------------------------------------------------------------  ------------------------------------------------------------------
3154  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3155  Options: anchored  Options: anchored
3156  No first char  No first char
3157  No need char  No need char
3158    
3159  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3160  ------------------------------------------------------------------  ------------------------------------------------------------------
3161    0  10 Bra 0          Bra
3162    3     ^          ^
3163    4     x          x
3164    6     a+?          a++
3165    8     b          b
3166   10  10 Ket          Ket
3167   13     End          End
3168  ------------------------------------------------------------------  ------------------------------------------------------------------
3169  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3170  Options: anchored  Options: anchored
3171  No first char  No first char
3172  Need char = 'b'  Need char = 'b'
3173    
3174  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3175  ------------------------------------------------------------------  ------------------------------------------------------------------
3176    0  16 Bra 0          Bra
3177    3     ^          ^
3178    4     x          x
3179    6   5 Bra 1          CBra 1
3180    9     a+?          a+?
3181   11   5 Ket          Ket
3182   14     b          b
3183   16  16 Ket          Ket
3184   19     End          End
3185  ------------------------------------------------------------------  ------------------------------------------------------------------
3186  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3187  Options: anchored  Options: anchored
3188  No first char  No first char
3189  Need char = 'b'  Need char = 'b'
3190    
3191  /[.x.]/  /[.x.]/I
3192  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3193    
3194  /[=x=]/  /[=x=]/I
3195  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3196    
3197  /[:x:]/  /[:x:]/I
3198  Failed: POSIX named classes are supported only within a class at offset 0  Failed: POSIX named classes are supported only within a class at offset 0
3199    
3200  /\l/  /\l/I
3201  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3202    
3203  /\L/  /\L/I
3204  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3205    
3206  /\N{name}/  /\N{name}/I
3207  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3208    
3209  /\u/  /\u/I
3210  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3211    
3212  /\U/  /\U/I
3213  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1
3214    
3215  /[/  /[/I
3216  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3217    
3218  /[a-/  /[a-/I
3219  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3220    
3221  /[[:space:]/  /[[:space:]/I
3222  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3223    
3224  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3225  ------------------------------------------------------------------  ------------------------------------------------------------------
3226    0  36 Bra 0          Bra
3227    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
3228   36  36 Ket          Ket
3229   39     End          End
3230  ------------------------------------------------------------------  ------------------------------------------------------------------
3231  Capturing subpattern count = 0  Capturing subpattern count = 0
3232  No options  No options
3233  No first char  No first char
3234  No need char  No need char
3235    
3236  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3237  ------------------------------------------------------------------  ------------------------------------------------------------------
3238    0  36 Bra 0          Bra
3239    3     [\x09-\x0d ]          [\x09-\x0d ]
3240   36  36 Ket          Ket
3241   39     End          End
3242  ------------------------------------------------------------------  ------------------------------------------------------------------
3243  Capturing subpattern count = 0  Capturing subpattern count = 0
3244  No options  No options
3245  No first char  No first char
3246  No need char  No need char
3247    
3248  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3249  ------------------------------------------------------------------  ------------------------------------------------------------------
3250    0  36 Bra 0          Bra
3251    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3252   36  36 Ket          Ket
3253   39     End          End
3254  ------------------------------------------------------------------  ------------------------------------------------------------------
3255  Capturing subpattern count = 0  Capturing subpattern count = 0
3256  No options  No options
3257  No first char  No first char
3258  No need char  No need char
3259    
3260  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3261  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3262  Options: extended  Options: extended
3263  First char = '<'  First char = '<'
3264  Need char = '>'  Need char = '>'
# Line 3295  Need char = '>' Line 3270  Need char = '>'
3270   0: <abc <123> hij>   0: <abc <123> hij>
3271      <abc <def> hij>      <abc <def> hij>
3272   0: <def>   0: <def>
3273      <abc<>def>      <abc<>def>
3274   0: <abc<>def>   0: <abc<>def>
3275      <abc<>      <abc<>
3276   0: <>   0: <>
3277      *** Failers      *** Failers
3278  No match  No match
3279      <abc      <abc
3280  No match  No match
3281    
3282  |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|DM  |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
 Memory allocation (code space): 826  
3283  ------------------------------------------------------------------  ------------------------------------------------------------------
3284    0 822 Bra 0          Bra
3285    3     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          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
3286  821     \b          \b
3287  822 822 Ket          Ket
3288  825     End          End
3289  ------------------------------------------------------------------  ------------------------------------------------------------------
3290  Capturing subpattern count = 0  Capturing subpattern count = 0
3291  No options  No options
3292  First char = '8'  First char = '8'
3293  Need char = 'X'  Need char = 'X'
3294    
3295  |\$\<\.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|DM  |\$\<\.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
 Memory allocation (code space): 816  
3296  ------------------------------------------------------------------  ------------------------------------------------------------------
3297    0 812 Bra 0          Bra
3298    3     $<.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          $<.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
3299  811     \b          \b
3300  812 812 Ket          Ket
3301  815     End          End
3302  ------------------------------------------------------------------  ------------------------------------------------------------------
3303  Capturing subpattern count = 0  Capturing subpattern count = 0
3304  No options  No options
# Line 3335  Need char = 'X' Line 3308  Need char = 'X'
3308  /(.*)\d+\1/I  /(.*)\d+\1/I
3309  Capturing subpattern count = 1  Capturing subpattern count = 1
3310  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3311  No options  No options
3312  No first char  No first char
3313  No need char  No need char
3314    
3315  /(.*)\d+/I  /(.*)\d+/I
3316  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3317  No options  No options
3318  First char at start or follows \n  First char at start or follows newline
3319  No need char  No need char
3320    
3321  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3322  Capturing subpattern count = 1  Capturing subpattern count = 1
3323  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3324  Options: dotall  Options: dotall
3325  No first char  No first char
3326  No need char  No need char
3327    
3328  /(.*)\d+/Is  /(.*)\d+/Is
3329  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3330  Options: anchored dotall  Options: anchored dotall
3331  No first char  No first char
3332  No need char  No need char
# Line 3365  No need char Line 3334  No need char
3334  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3335  Capturing subpattern count = 2  Capturing subpattern count = 2
3336  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3337  No options  No options
3338  First char at start or follows \n  First char at start or follows newline
3339  Need char = 'z'  Need char = 'z'
3340    
3341  /((.*))\d+\1/I  /((.*))\d+\1/I
3342  Capturing subpattern count = 2  Capturing subpattern count = 2
3343  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3344  No options  No options
3345  No first char  No first char
3346  No need char  No need char
# Line 3381  No need char Line 3348  No need char
3348   0: bc123bc   0: bc123bc
3349   1: bc   1: bc
3350   2: bc   2: bc
3351    
3352  /a[b]/I  /a[b]/I
3353  Capturing subpattern count = 0  Capturing subpattern count = 0
3354  No options  No options
# Line 3390  Need char = 'b' Line 3357  Need char = 'b'
3357    
3358  /(?=a).*/I  /(?=a).*/I
3359  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3360  No options  No options
3361  First char = 'a'  First char = 'a'
3362  No need char  No need char
3363    
3364  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3365  Capturing subpattern count = 0  Capturing subpattern count = 0
3366  Options: caseless  Options: caseless
3367  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3404  Need char = 'z' (caseless) Line 3370  Need char = 'z' (caseless)
3370  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3371  Capturing subpattern count = 0  Capturing subpattern count = 0
3372  No options  No options
 Case state changes  
3373  First char = 'a'  First char = 'a'
3374  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3375    
# Line 3438  No options Line 3403  No options
3403  No first char  No first char
3404  Need char = 'a'  Need char = 'a'
3405    
3406  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3407  Capturing subpattern count = 0  Capturing subpattern count = 1
3408  No options  No options
3409  First char = 'a'  First char = 'a'
3410  No need char  No need char
3411    
3412  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3413  Capturing subpattern count = 0  Capturing subpattern count = 1
3414  No options  No options
3415  First char = 'a'  First char = 'a'
3416  Need char = 'z'  Need char = 'z'
3417    
3418  /(?(1)abz)/I  /(?(1)abz)(.)/I
3419  Capturing subpattern count = 0  Capturing subpattern count = 1
3420  No options  No options
3421  No first char  No first char
3422  No need char  No need char
3423    
3424  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3425  Capturing subpattern count = 0  Capturing subpattern count = 1
3426  No options  No options
3427  No first char  No first char
3428  Need char = '3'  Need char = '3'
# Line 3497  Capturing subpattern count = 0 Line 3462  Capturing subpattern count = 0
3462  No options  No options
3463  No first char  No first char
3464  No need char  No need char
3465    Subject length lower bound = 1
3466  Starting byte set: a b  Starting byte set: a b
3467    
3468  /[^a]/I  /[^a]/I
# Line 3516  Capturing subpattern count = 0 Line 3482  Capturing subpattern count = 0
3482  No options  No options
3483  No first char  No first char
3484  Need char = '6'  Need char = '6'
3485    Subject length lower bound = 4
3486  Starting byte set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3487    
3488  /a^b/I  /a^b/I
# Line 3524  No options Line 3491  No options
3491  First char = 'a'  First char = 'a'
3492  Need char = 'b'  Need char = 'b'
3493    
3494  /^a/mI  /^a/Im
3495  Capturing subpattern count = 0  Capturing subpattern count = 0
3496  Options: multiline  Options: multiline
3497  First char at start or follows \n  First char at start or follows newline
3498  Need char = 'a'  Need char = 'a'
3499    abcde    abcde
3500   0: a   0: a
3501    xy\nabc    xy\nabc
3502   0: a   0: a
3503    *** Failers    *** Failers
3504  No match  No match
3505    xyabc    xyabc
3506  No match  No match
3507    
3508  /c|abc/I  /c|abc/I
# Line 3549  Capturing subpattern count = 0 Line 3516  Capturing subpattern count = 0
3516  Options: caseless  Options: caseless
3517  No first char  No first char
3518  No need char  No need char
3519    Subject length lower bound = 1
3520  Starting byte set: A B a b  Starting byte set: A B a b
3521    
3522  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3523  Capturing subpattern count = 0  Capturing subpattern count = 0
3524  No options  No options
 Case state changes  
3525  No first char  No first char
3526  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3527    Subject length lower bound = 3
3528  Starting byte set: a b  Starting byte set: a b
3529    
3530  /abc(?C)def/  /abc(?C)def/I
3531  Capturing subpattern count = 0  Capturing subpattern count = 0
3532  No options  No options
3533  First char = 'a'  First char = 'a'
# Line 3568  Need char = 'f' Line 3536  Need char = 'f'
3536  --->abcdef  --->abcdef
3537    0 ^  ^       d    0 ^  ^       d
3538   0: abcdef   0: abcdef
3539      1234abcdef      1234abcdef
3540  --->1234abcdef  --->1234abcdef
3541    0     ^  ^       d    0     ^  ^       d
3542   0: abcdef   0: abcdef
# Line 3576  Need char = 'f' Line 3544  Need char = 'f'
3544  No match  No match
3545      abcxyz      abcxyz
3546  No match  No match
3547      abcxyzf      abcxyzf
3548  --->abcxyzf  --->abcxyzf
3549    0 ^  ^        d    0 ^  ^        d
3550  No match  No match
3551    
3552  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3553  Capturing subpattern count = 0  Capturing subpattern count = 0
3554  No options  No options
3555  First char = 'a'  First char = 'a'
# Line 3591  Need char = 'f' Line 3559  Need char = 'f'
3559    0    ^  ^       d    0    ^  ^       d
3560    1    ^    ^     f    1    ^    ^     f
3561   0: abcdef   0: abcdef
3562    
3563  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3564  Capturing subpattern count = 0  Capturing subpattern count = 0
3565  No options  No options
3566  No first char  No first char
# Line 3607  Need char = 'f' Line 3575  Need char = 'f'
3575   0: 4abcdef   0: 4abcdef
3576      *** Failers      *** Failers
3577  No match  No match
3578      abcdef      abcdef
3579  --->abcdef  --->abcdef
3580    1 ^          \d    1 ^          \d
3581    1  ^         \d    1  ^         \d
# Line 3616  No match Line 3584  No match
3584    1     ^      \d    1     ^      \d
3585    1      ^     \d    1      ^     \d
3586  No match  No match
3587    
3588  /(?C255)ab/  /(?C255)ab/I
3589  Capturing subpattern count = 0  Capturing subpattern count = 0
3590  No options  No options
3591  First char = 'a'  First char = 'a'
3592  Need char = 'b'  Need char = 'b'
3593    
3594  /(?C256)ab/  /(?C256)ab/I
3595  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3596    
3597  /(?Cab)xx/  /(?Cab)xx/I
3598  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3599    
3600  /(?C12vr)x/  /(?C12vr)x/I
3601  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3602    
3603  /abc(?C)def/  /abc(?C)def/I
3604  Capturing subpattern count = 0  Capturing subpattern count = 0
3605  No options  No options
3606  First char = 'a'  First char = 'a'
# Line 3644  No match Line 3612  No match
3612    0         ^  ^       d    0         ^  ^       d
3613   0: abcdef   0: abcdef
3614    
3615  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3616  Capturing subpattern count = 1  Capturing subpattern count = 1
3617  No options  No options
3618  First char = 'a'  First char = 'a'
# Line 3655  Need char = 'f' Line 3623  Need char = 'f'
3623    1    ^    ^     f    1    ^    ^     f
3624   0: abcdef   0: abcdef
3625   1: abc   1: abc
3626      123abcdef\C+      123abcdef\C+
3627  Callout 0: last capture = 1  Callout 0: last capture = 1
3628   0: <unset>   0: <unset>
3629   1: abc   1: abc
# Line 3668  Callout 1: last capture = 1 Line 3636  Callout 1: last capture = 1
3636         ^    ^     f         ^    ^     f
3637   0: abcdef   0: abcdef
3638   1: abc   1: abc
3639      123abcdef\C-      123abcdef\C-
3640   0: abcdef   0: abcdef
3641   1: abc   1: abc
3642      *** Failers      *** Failers
3643  No match  No match
3644      123abcdef\C!1      123abcdef\C!1
3645  --->123abcdef  --->123abcdef
3646    0    ^  ^       d    0    ^  ^       d
3647    1    ^    ^     f    1    ^    ^     f
3648  No match  No match
3649    
3650  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3651  Capturing subpattern count = 1  Capturing subpattern count = 1
3652  No options  No options
3653  No first char  No first char
# Line 3692  No need char Line 3660  No need char
3660    1 ^        ^    )    1 ^        ^    )
3661   0: abcabcabc   0: abcabcabc
3662   1: abc   1: abc
3663      abcabc\C!1!3      abcabc\C!1!3
3664  --->abcabc  --->abcabc
3665    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3666    1 ^  ^       )    1 ^  ^       )
# Line 3703  No need char Line 3671  No need char
3671  --->*** Failers  --->*** Failers
3672    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3673   0:   0:
3674      abcabcabc\C!1!3      abcabcabc\C!1!3
3675  --->abcabcabc  --->abcabcabc
3676    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3677    1 ^  ^          )    1 ^  ^          )
# Line 3712  No need char Line 3680  No need char
3680   0: abcabc   0: abcabc
3681   1: abc   1: abc
3682    
3683  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3684  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3685  No options  No options
3686  No first char  No first char
3687  No need char  No need char
# Line 3737  Callout 0: last capture = 1 Line 3704  Callout 0: last capture = 1
3704      ^     ^    )      ^     ^    )
3705   0: 123456   0: 123456
3706   1: 456   1: 456
3707      123456789\C+      123456789\C+
3708  Callout 0: last capture = -1  Callout 0: last capture = -1
3709   0: <unset>   0: <unset>
3710  --->123456789  --->123456789
# Line 3755  Callout 0: last capture = 1 Line 3722  Callout 0: last capture = 1
3722   0: 123456789   0: 123456789
3723   1: 789   1: 789
3724    
3725  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3726  Capturing subpattern count = 2  Capturing subpattern count = 2
3727  No options  No options
3728  First char = 'x'  First char = 'x'
# Line 3774  Callout 1: last capture = -1 Line 3741  Callout 1: last capture = -1
3741   0: xyzabc   0: xyzabc
3742   1: xyzabc   1: xyzabc
3743    
3744  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3745  Capturing subpattern count = 3  Capturing subpattern count = 3
3746  No options  No options
3747  First char = 'X'  First char = 'X'
# Line 3796  Callout 1: last capture = 1 Line 3763  Callout 1: last capture = 1
3763   1: X   1: X
3764   2: xyzabc   2: xyzabc
3765    
3766  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3767  Capturing subpattern count = 1  Capturing subpattern count = 1
3768  No options  No options
3769  First char = 'a'  First char = 'a'
# Line 3809  Callout 0: last capture = 1 Line 3776  Callout 0: last capture = 1
3776      ^          a      ^          a
3777   0: abcdef   0: abcdef
3778   1: abc   1: abc
3779    
3780  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3781  Capturing subpattern count = 1  Capturing subpattern count = 1
3782  No options  No options
3783  First char = 'a'  First char = 'a'
3784  Need char = 'z'  Need char = 'z'
3785      abcxyz\C+      abcxyz\C+
3786  Callout 1: last capture = 1  Callout 1: last capture = 1
3787   0: <unset>   0: <unset>
3788   1: abc   1: abc
# Line 3827  Callout 2: last capture = -1 Line 3794  Callout 2: last capture = -1
3794      ^          a      ^          a
3795   0: abcxyz   0: abcxyz
3796    
3797  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3798  Capturing subpattern count = 1  Capturing subpattern count = 1
3799  No options  No options
3800  First char = 'x'  First char = 'x'
# Line 3840  Callout 0: last capture = 1 Line 3807  Callout 0: last capture = 1
3807         ^       )         ^       )
3808   0: xyz   0: xyz
3809   1: abc   1: abc
3810    
3811  /(?C)abc/  /a(b+)(c*)(?C1)/I
3812    Capturing subpattern count = 2
3813    No options
3814    First char = 'a'
3815    Need char = 'b'
3816        abbbbbccc\C*1
3817    --->abbbbbccc
3818      1 ^        ^
3819    Callout data = 1
3820      1 ^       ^
3821    Callout data = 1
3822      1 ^      ^
3823    Callout data = 1
3824      1 ^     ^
3825    Callout data = 1
3826      1 ^    ^
3827    Callout data = 1
3828      1 ^   ^
3829    Callout data = 1
3830      1 ^  ^
3831    Callout data = 1
3832      1 ^ ^
3833    Callout data = 1
3834    No match
3835    
3836    /a(b+?)(c*?)(?C1)/I
3837    Capturing subpattern count = 2
3838    No options
3839    First char = 'a'
3840    Need char = 'b'
3841        abbbbbccc\C*1
3842    --->abbbbbccc
3843      1 ^ ^
3844    Callout data = 1
3845      1 ^  ^
3846    Callout data = 1
3847      1 ^   ^
3848    Callout data = 1
3849      1 ^    ^
3850    Callout data = 1
3851      1 ^     ^
3852    Callout data = 1
3853      1 ^      ^
3854    Callout data = 1
3855      1 ^       ^
3856    Callout data = 1
3857      1 ^        ^
3858    Callout data = 1
3859    No match
3860    
3861    /(?C)abc/I
3862  Capturing subpattern count = 0  Capturing subpattern count = 0
3863  No options  No options
3864  First char = 'a'  First char = 'a'
3865  Need char = 'c'  Need char = 'c'
3866    
3867  /(?C)^abc/  /(?C)^abc/I
3868  Capturing subpattern count = 0  Capturing subpattern count = 0
3869  Options: anchored  Options: anchored
3870  No first char  No first char
3871  No need char  No need char
3872    
3873  /(?C)a|b/S  /(?C)a|b/IS
3874  Capturing subpattern count = 0  Capturing subpattern count = 0
3875  No options  No options
3876  No first char  No first char
3877  No need char  No need char
3878    Subject length lower bound = 1
3879  Starting byte set: a b  Starting byte set: a b
3880    
3881  /(?R)/  /(?R)/I
3882  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3883    
3884  /(a|(?R))/  /(a|(?R))/I
3885  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3886    
3887  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3888  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3889    
3890  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3891  Capturing subpattern count = 3  Capturing subpattern count = 3
3892  No options  No options
3893  First char = 'x'  First char = 'x'
# Line 3898  No need char Line 3916  No need char
3916   3: xxab   3: xxab
3917      *** Failers      *** Failers
3918  No match  No match
3919      xyab      xyab
3920  No match  No match
3921    
3922  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3923  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3924    
3925  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3926  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3927    
3928  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3929  Capturing subpattern count = 1  Capturing subpattern count = 1
3930  Options: anchored  Options: anchored
3931  No first char  No first char
# Line 3918  No need char Line 3936  No need char
3936      a(b)c      a(b)c
3937   0: a(b)c   0: a(b)c
3938   1: c   1: c
3939      a(b(c))d      a(b(c))d
3940   0: a(b(c))d   0: a(b(c))d
3941   1: d   1: d
3942      *** Failers)      *** Failers)
3943  No match  No match
3944      a(b(c)d      a(b(c)d
3945  No match  No match
3946    
3947  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3948  Capturing subpattern count = 1  Capturing subpattern count = 1
3949  Options: anchored  Options: anchored
3950  No first char  No first char
# Line 3941  Need char = '<' Line 3959  Need char = '<'
3959   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3960   1: (1(2)3)   1: (1(2)3)
3961    
3962  /(a(?1)b)/D  /(a(?1)b)/DZ
3963  ------------------------------------------------------------------  ------------------------------------------------------------------
3964    0  16 Bra 0          Bra
3965    3  10 Bra 1          CBra 1
3966    6     a          a
3967    8   3 Recurse          Once
3968   11     b          Recurse
3969   13  10 Ket          Ket
3970   16  16 Ket          b
3971   19     End          Ket
3972            Ket
3973            End
3974  ------------------------------------------------------------------  ------------------------------------------------------------------
3975  Capturing subpattern count = 1  Capturing subpattern count = 1
3976  No options  No options
3977  First char = 'a'  First char = 'a'
3978  Need char = 'b'  Need char = 'b'
3979    
3980  /(a(?1)+b)/D  /(a(?1)+b)/DZ
3981  ------------------------------------------------------------------  ------------------------------------------------------------------
3982    0  22 Bra 0          Bra
3983    3  16 Bra 1          CBra 1
3984    6     a          a
3985    8   6 Bra 0          Once
3986   11   3 Recurse          Recurse
3987   14   6 KetRmax          KetRmax
3988   17     b          b
3989   19  16 Ket          Ket
3990   22  22 Ket          Ket
3991   25     End          End
3992  ------------------------------------------------------------------  ------------------------------------------------------------------
3993  Capturing subpattern count = 1  Capturing subpattern count = 1
3994  No options  No options
3995  First char = 'a'  First char = 'a'
3996  Need char = 'b'  Need char = 'b'
3997    
3998  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
 Capturing subpattern count = 4  
 Max back reference = 4  
 Partial matching not supported  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
 /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  
3999  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4000  Options: anchored  Options: anchored
4001  No first char  No first char
4002  No need char  No need char
# Line 4029  No need char Line 4014  No need char
4014  No match  No match
4015      ((2+2)*-3)-7)      ((2+2)*-3)-7)
4016  No match  No match
4017    
4018  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
4019  Capturing subpattern count = 2  Capturing subpattern count = 2
4020  Options: anchored  Options: anchored
4021  No first char  No first char
# Line 4039  No need char Line 4024  No need char
4024   0: xyz   0: xyz
4025   1: xyz   1: xyz
4026   2: y   2: y
4027      xxyzxyzz      xxyzxyzz
4028   0: xxyzxyzz   0: xxyzxyzz
4029   1: xxyzxyzz   1: xxyzxyzz
4030   2: xyzxyz   2: xyzxyz
# Line 4047  No need char Line 4032  No need char
4032  No match  No match
4033      xxyzz      xxyzz
4034  No match  No match
4035      xxyzxyzxyzz      xxyzxyzxyzz
4036  No match  No match
4037    
4038  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4039  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4040  Options: extended  Options: extended
4041  First char = '<'  First char = '<'
4042  Need char = '>'  Need char = '>'
# Line 4072  Need char = '>' Line 4056  Need char = '>'
4056   0: <def>   0: <def>
4057   1: <def>   1: <def>
4058   2: <def>   2: <def>
4059      <abc<>def>      <abc<>def>
4060   0: <abc<>def>   0: <abc<>def>
4061   1: <abc<>def>   1: <abc<>def>
4062   2: <abc<>def>   2: <abc<>def>
4063      <abc<>      <abc<>
4064   0: <>   0: <>
4065   1: <>   1: <>
4066   2: <>   2: <>
# Line 4085  No match Line 4069  No match
4069      <abc      <abc
4070  No match  No match
4071    
4072  /(?1)/  /(?1)/I
4073  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4074    
4075  /((?2)(abc)/  /((?2)(abc)/I
4076  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4077    
4078  /^(abc)def(?1)/  /^(abc)def(?1)/I
4079  Capturing subpattern count = 1  Capturing subpattern count = 1
4080  Options: anchored  Options: anchored
4081  No first char  No first char
# Line 4100  No need char Line 4084  No need char
4084   0: abcdefabc   0: abcdefabc
4085   1: abc   1: abc
4086    
4087  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4088  Capturing subpattern count = 1  Capturing subpattern count = 1
4089  Options: anchored  Options: anchored
4090  No first char  No first char
# Line 4111  No need char Line 4095  No need char
4095      a=b      a=b
4096   0: a=b   0: a=b
4097   1: a   1: a
4098      a=bc      a=bc
4099   0: a=bc   0: a=bc
4100   1: a   1: a
4101    
4102  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4103  Capturing subpattern count = 2  Capturing subpattern count = 2
4104  Options: anchored  Options: anchored
4105  No first char  No first char
# Line 4128  No need char Line 4112  No need char
4112   0: a=b   0: a=b
4113   1: a   1: a
4114   2: b   2: b
4115      a=bc      a=bc
4116   0: a=bc   0: a=bc
4117   1: a   1: a
4118   2: c   2: c
4119    
4120  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4121  ------------------------------------------------------------------  ------------------------------------------------------------------
4122    0  28 Bra 0          Bra
4123    3     a          a
4124    5   5 Bra 1          CBra 1
4125    8     b          b
4126   10   5 Alt          Alt
4127   13     c          c
4128   15  10 Ket          Ket
4129   18     d          d
4130   20   5 Bra 2          CBra 2
4131   23     e          e
4132   25   5 Ket          Ket
4133   28  28 Ket          Ket
4134   31     End          End
4135  ------------------------------------------------------------------  ------------------------------------------------------------------
4136  Capturing subpattern count = 2  Capturing subpattern count = 2
4137  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4160  Need char = 'e' Line 4144  Need char = 'e'
4144   0: abde   0: abde
4145   1: b   1: b
4146   2: e   2: e
4147      acde      acde
4148   0: acde   0: acde
4149   1: c   1: c
4150   2: e   2: e
4151    
4152  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4153  ------------------------------------------------------------------  ------------------------------------------------------------------
4154    0  35 Bra 0          Bra
4155    3  21 Bra 0          Bra
4156    6     a          a
4157    8  13 Bra 1          CBra 1
4158   11     c          c
4159   13   5 Bra 2          CBra 2
4160   16     d          d
4161   18   5 Ket          Ket
4162   21  13 Ket          Ket
4163   24  21 Ket          Ket
4164   27   5 Bra 3          CBra 3
4165   30     a          a
4166   32   5 Ket          Ket
4167   35  35 Ket          Ket
4168   38     End          End
4169  ------------------------------------------------------------------  ------------------------------------------------------------------
4170  Capturing subpattern count = 3  Capturing subpattern count = 3
4171  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4192  No options Line 4176  No options
4176  First char = 'a'  First char = 'a'
4177  Need char = 'a'  Need char = 'a'
4178    
4179  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4180  ------------------------------------------------------------------  ------------------------------------------------------------------
4181    0  28 Bra 0          Bra
4182    3   5 Bra 1          CBra 1
4183    6     a          a
4184    8   5 Ket          Ket
4185   11     Any          Any
4186   12     Any          Any
4187   13     Any          Any
4188   14     \1          \1
4189   17     bbb          bbb
4190   23   3 Recurse          Once
4191   26     d          Recurse
4192   28  28 Ket          Ket
4193   31     End          d
4194            Ket
4195            End
4196  ------------------------------------------------------------------  ------------------------------------------------------------------
4197  Capturing subpattern count = 1  Capturing subpattern count = 1
4198  Max back reference = 1  Max back reference = 1
# Line 4216  No options Line 4202  No options
4202  First char = 'a'  First char = 'a'
4203  Need char = 'd'  Need char = 'd'
4204    
4205  /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/i  /^\W*(?:(?P<one>(?P<two>.)\W*(?P>one)\W*(?P=two)|)|(?P<three>(?P<four>.)\W*(?P>three)\W*(?P=four)|\W*.\W*))\W*$/Ii
4206  Capturing subpattern count = 4  Capturing subpattern count = 4
4207  Max back reference = 4  Max back reference = 4
4208  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4224  Named capturing subpatterns: Line 4210  Named capturing subpatterns:
4210    one     1    one     1
4211    three   3    three   3
4212    two     2    two     2
 Partial matching not supported  
4213  Options: anchored caseless  Options: anchored caseless
4214  No first char  No first char
4215  No need char  No need char