/[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 87 by nigel, Sat Feb 24 21:41:21 2007 UTC revision 567 by ph10, Sat Nov 6 17:10:00 2010 UTC
# Line 1  Line 1 
1  /(a)b|/  /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is a possible Perl
6        bug. --/
7    
8    /-- Originally, the Perl >= 5.10 things were in here too, but now I have
9        separated many (most?) of them out into test 11. However, there may still
10        be some that were overlooked. --/
11    
12    /(a)b|/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 22  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 38  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 78  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 96  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 109  Failed: missing ) at offset 4 Line 146  Failed: missing ) at offset 4
146  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
147    
148  /(?z)abc/  /(?z)abc/
149  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
150    
151  /.*b/  /.*b/I
152  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
153  No options  No options
154  First char at start or follows \n  First char at start or follows newline
155  Need char = 'b'  Need char = 'b'
156    
157  /.*?b/  /.*?b/I
158  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
159  No options  No options
160  First char at start or follows \n  First char at start or follows newline
161  Need char = 'b'  Need char = 'b'
162    
163  /cat|dog|elephant/  /cat|dog|elephant/I
164  Capturing subpattern count = 0  Capturing subpattern count = 0
165  No options  No options
166  No first char  No first char
# Line 135  No need char Line 170  No need char
170      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
171   0: elephant   0: elephant
172    
173  /cat|dog|elephant/S  /cat|dog|elephant/IS
174  Capturing subpattern count = 0  Capturing subpattern count = 0
175  No options  No options
176  No first char  No first char
177  No need char  No need char
178    Subject length lower bound = 3
179  Starting byte set: c d e  Starting byte set: c d e
180      this sentence eventually mentions a cat      this sentence eventually mentions a cat
181   0: cat   0: cat
182      this sentences rambles on and on for a while and then reaches elephant      this sentences rambles on and on for a while and then reaches elephant
183   0: elephant   0: elephant
184    
185  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
186  Capturing subpattern count = 0  Capturing subpattern count = 0
187  Options: caseless  Options: caseless
188  No first char  No first char
189  No need char  No need char
190    Subject length lower bound = 3
191  Starting byte set: C D E c d e  Starting byte set: C D E c d e
192      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
193   0: CAT   0: CAT
194      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
195   0: elephant   0: elephant
196    
197  /a|[bcd]/S  /a|[bcd]/IS
198  Capturing subpattern count = 0  Capturing subpattern count = 0
199  No options  No options
200  No first char  No first char
201  No need char  No need char
202    Subject length lower bound = 1
203  Starting byte set: a b c d  Starting byte set: a b c d
204    
205  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
206  Capturing subpattern count = 1  Capturing subpattern count = 1
207  No options  No options
208  No first char  No first char
209  No need char  No need char
210    Subject length lower bound = 1
211  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
212    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
213    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 184  Starting byte set: \x00 \x01 \x02 \x03 \ Line 223  Starting byte set: \x00 \x01 \x02 \x03 \
223    \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb    \xed \xee \xef \xf0 \xf1 \xf2 \xf3 \xf4 \xf5 \xf6 \xf7 \xf8 \xf9 \xfa \xfb
224    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
225    
226  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
227  Capturing subpattern count = 1  Capturing subpattern count = 1
228  No options  No options
229  No first char  No first char
230  No need char  No need char
231    Subject length lower bound = 1
232  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
233    
234  /(ab\2)/  /(ab\2)/
# Line 197  Failed: reference to non-existent subpat Line 237  Failed: reference to non-existent subpat
237  /{4,5}abc/  /{4,5}abc/
238  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
239    
240  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
241  Capturing subpattern count = 3  Capturing subpattern count = 3
242  Max back reference = 2  Max back reference = 2
243  No options  No options
# Line 222  Matched, but too many substrings Line 262  Matched, but too many substrings
262   0: abcb   0: abcb
263   1: a   1: a
264   2: b   2: b
265      \O12abcb      \O12abcb
266   0: abcb   0: abcb
267   1: a   1: a
268   2: b   2: b
269   3: c   3: c
270    
271  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
272  Capturing subpattern count = 3  Capturing subpattern count = 3
273  Max back reference = 2  Max back reference = 2
274  No options  No options
# Line 270  Matched, but too many substrings Line 310  Matched, but too many substrings
310   2: a   2: a
311   3: b   3: b
312    
313  /abc$/E  /abc$/IE
314  Capturing subpattern count = 0  Capturing subpattern count = 0
315  Options: dollar_endonly  Options: dollar_endonly
316  First char = 'a'  First char = 'a'
# Line 287  No match Line 327  No match
327  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
328  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
329    
330  /the quick brown fox/  /the quick brown fox/I
331  Capturing subpattern count = 0  Capturing subpattern count = 0
332  No options  No options
333  First char = 't'  First char = 't'
# Line 297  Need char = 'x' Line 337  Need char = 'x'
337      this is a line with the quick brown fox      this is a line with the quick brown fox
338   0: the quick brown fox   0: the quick brown fox
339    
340  /the quick brown fox/A  /the quick brown fox/IA
341  Capturing subpattern count = 0  Capturing subpattern count = 0
342  Options: anchored  Options: anchored
343  No first char  No first char
# Line 310  No match Line 350  No match
350  No match  No match
351    
352  /ab(?z)cd/  /ab(?z)cd/
353  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
354    
355  /^abc|def/  /^abc|def/I
356  Capturing subpattern count = 0  Capturing subpattern count = 0
357  No options  No options
358  No first char  No first char
# Line 322  No need char Line 362  No need char
362      abcdef\B      abcdef\B
363   0: def   0: def
364    
365  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
366  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
367  No options  No options
368  First char at start or follows \n  First char at start or follows newline
369  No need char  No need char
370      defabc      defabc
371   0: defabc   0: defabc
# Line 343  No need char Line 382  No need char
382   0: abc   0: abc
383      *** Failers      *** Failers
384  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
385    
386  /^abc|def/P  /^abc|def/P
387      abcdef      abcdef
388   0: abc   0: abc
# Line 359  No match: POSIX code 17: match failed Line 398  No match: POSIX code 17: match failed
398   0: def   0: def
399   1: def   1: def
400   3: def   3: def
401    
402  /the quick brown fox/P  /the quick brown fox/P
403      the quick brown fox      the quick brown fox
404   0: the quick brown fox   0: the quick brown fox
405      *** Failers      *** Failers
406  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
407      The Quick Brown Fox      The Quick Brown Fox
408  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
409    
410  /the quick brown fox/Pi  /the quick brown fox/Pi
411      the quick brown fox      the quick brown fox
412   0: the quick brown fox   0: the quick brown fox
413      The Quick Brown Fox      The Quick Brown Fox
414   0: The Quick Brown Fox   0: The Quick Brown Fox
415    
416  /abc.def/P  /abc.def/P
# Line 379  No match: POSIX code 17: match failed Line 418  No match: POSIX code 17: match failed
418  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
419      abc\ndef      abc\ndef
420  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
421    
422  /abc$/P  /abc$/P
423      abc      abc
424   0: abc   0: abc
425      abc\n      abc\n
426   0: abc   0: abc
427    
428  /(abc)\2/P  /(abc)\2/P
# Line 399  Failed: unmatched parentheses at offset Line 438  Failed: unmatched parentheses at offset
438  /a[]b/  /a[]b/
439  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
440    
441  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
442  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
443  No options  No options
444  No first char  No first char
445  No need char  No need char
446      co-processors, and for      co-processors, and for
447   0: -pr   0: -pr
448    
449  /<.*>/  /<.*>/I
450  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
451  No options  No options
452  First char = '<'  First char = '<'
453  Need char = '>'  Need char = '>'
454      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
455   0: <def>ghi<klm>   0: <def>ghi<klm>
456    
457  /<.*?>/  /<.*?>/I
458  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
459  No options  No options
460  First char = '<'  First char = '<'
461  Need char = '>'  Need char = '>'
462      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
463   0: <def>   0: <def>
464    
465  /<.*>/U  /<.*>/IU
466  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
467  Options: ungreedy  Options: ungreedy
468  First char = '<'  First char = '<'
469  Need char = '>'  Need char = '>'
470      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
471   0: <def>   0: <def>
472    
473  /(?U)<.*>/  /(?U)<.*>/I
474  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
475  Options: ungreedy  Options: ungreedy
476  First char = '<'  First char = '<'
477  Need char = '>'  Need char = '>'
478      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
479   0: <def>   0: <def>
480    
481  /<.*?>/U  /<.*?>/IU
482  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
483  Options: ungreedy  Options: ungreedy
484  First char = '<'  First char = '<'
485  Need char = '>'  Need char = '>'
486      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
487   0: <def>ghi<klm>   0: <def>ghi<klm>
488    
489  /={3,}/U  /={3,}/IU
490  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
491  Options: ungreedy  Options: ungreedy
492  First char = '='  First char = '='
493  Need char = '='  Need char = '='
494      abc========def      abc========def
495   0: ===   0: ===
496    
497  /(?U)={3,}?/  /(?U)={3,}?/I
498  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
499  Options: ungreedy  Options: ungreedy
500  First char = '='  First char = '='
501  Need char = '='  Need char = '='
502      abc========def      abc========def
503   0: ========   0: ========
504    
505  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
506  Capturing subpattern count = 0  Capturing subpattern count = 0
507  No options  No options
508  First char = 'f'  First char = 'f'
509  Need char = 'o'  Need char = 'o'
510      foo      foo
511   0: foo   0: foo
512      catfoo      catfoo
513   0: foo   0: foo
514      *** Failers      *** Failers
515  No match  No match
516      the barfoo      the barfoo
517  No match  No match
518      and cattlefoo      and cattlefoo
519  No match  No match
520    
521  /(?<=a+)b/  /(?<=a+)b/
# Line 496  Failed: lookbehind assertion is not fixe Line 527  Failed: lookbehind assertion is not fixe
527  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
528  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
529    
530  /(?i)abc/  /(?i)abc/I
531  Capturing subpattern count = 0  Capturing subpattern count = 0
532  Options: caseless  Options: caseless
533  First char = 'a' (caseless)  First char = 'a' (caseless)
534  Need char = 'c' (caseless)  Need char = 'c' (caseless)
535    
536  /(a|(?m)a)/  /(a|(?m)a)/I
537  Capturing subpattern count = 1  Capturing subpattern count = 1
538  No options  No options
539  First char = 'a'  First char = 'a'
540  No need char  No need char
541    
542  /(?i)^1234/  /(?i)^1234/I
543  Capturing subpattern count = 0  Capturing subpattern count = 0
544  Options: anchored caseless  Options: anchored caseless
545  No first char  No first char
546  No need char  No need char
547    
548  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
549  Capturing subpattern count = 1  Capturing subpattern count = 1
550  Options: anchored  Options: anchored
 Case state changes  
551  No first char  No first char
552  No need char  No need char
553    
554  /(?s).*/  /(?s).*/I
555  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
556  Options: anchored dotall  Options: anchored dotall
557  No first char  No first char
558  No need char  No need char
559    
560  /[abcd]/S  /[abcd]/IS
561  Capturing subpattern count = 0  Capturing subpattern count = 0
562  No options  No options
563  No first char  No first char
564  No need char  No need char
565    Subject length lower bound = 1
566  Starting byte set: a b c d  Starting byte set: a b c d
567    
568  /(?i)[abcd]/S  /(?i)[abcd]/IS
569  Capturing subpattern count = 0  Capturing subpattern count = 0
570  Options: caseless  Options: caseless
571  No first char  No first char
572  No need char  No need char
573    Subject length lower bound = 1
574  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
575    
576  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
577  Capturing subpattern count = 1  Capturing subpattern count = 1
578  Options: multiline  Options: multiline
579  No first char  No first char
580  No need char  No need char
581    Subject length lower bound = 1
582  Starting byte set: b c x y  Starting byte set: b c x y
583    
584  /(^a|^b)/m  /(^a|^b)/Im
585  Capturing subpattern count = 1  Capturing subpattern count = 1
586  Options: multiline  Options: multiline
587  First char at start or follows \n  First char at start or follows newline
588  No need char  No need char
589    
590  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
591  Capturing subpattern count = 1  Capturing subpattern count = 1
592  Options: caseless multiline  Options: caseless multiline
593  First char at start or follows \n  First char at start or follows newline
594  No need char  No need char
595    
596  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 568  Failed: conditional group contains more Line 600  Failed: conditional group contains more
600  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
601    
602  /(?(1a)/  /(?(1a)/
603  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
604    
605    /(?(1a))/
606    Failed: reference to non-existent subpattern at offset 6
607    
608  /(?(?i))/  /(?(?i))/
609  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
610    
611  /(?(abc))/  /(?(abc))/
612  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
613    
614  /(?(?<ab))/  /(?(?<ab))/
615  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
616    
617  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
618  Capturing subpattern count = 1  Capturing subpattern count = 1
619  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
620  No options  No options
621  First char = 'b'  First char = 'b'
622  Need char = 'h'  Need char = 'h'
623    
624  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
625  Capturing subpattern count = 1  Capturing subpattern count = 1
626  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
627  No options  No options
 Case state changes  
628  First char = 'b' (caseless)  First char = 'b' (caseless)
629  Need char = 'h' (caseless)  Need char = 'h' (caseless)
630    
631  /((?i)b)/DS  /((?i)b)/IDZS
632  ------------------------------------------------------------------  ------------------------------------------------------------------
633    0  15 Bra 0          Bra
634    3   7 Bra 1          CBra 1
635    6  01 Opt       01 Opt
636    8  NC b       NC b
637   10   7 Ket          Ket
638   13  00 Opt       00 Opt
639   15  15 Ket          Ket
640   18     End          End
641  ------------------------------------------------------------------  ------------------------------------------------------------------
642  Capturing subpattern count = 1  Capturing subpattern count = 1
643  No options  No options
 Case state changes  
644  First char = 'b' (caseless)  First char = 'b' (caseless)
645  No need char  No need char
646  Study returned NULL  Subject length lower bound = 1
647    No set of starting bytes
648    
649  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
650  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
651  No options  No options
 Case state changes  
652  No first char  No first char
653  No need char  No need char
654    Subject length lower bound = 1
655  Starting byte set: C a b c d  Starting byte set: C a b c d
656    
657  /a$/  /a$/I
658  Capturing subpattern count = 0  Capturing subpattern count = 0
659  No options  No options
660  First char = 'a'  First char = 'a'
# Line 632  No need char Line 663  No need char
663   0: a   0: a
664      a\n      a\n
665   0: a   0: a
666      *** Failers      *** Failers
667  No match  No match
668      \Za      \Za
669  No match  No match
670      \Za\n      \Za\n
671  No match  No match
672    
673  /a$/m  /a$/Im
674  Capturing subpattern count = 0  Capturing subpattern count = 0
675  Options: multiline  Options: multiline
676  First char = 'a'  First char = 'a'
# Line 648  No need char Line 679  No need char
679   0: a   0: a
680      a\n      a\n
681   0: a   0: a
682      \Za\n      \Za\n
683   0: a   0: a
684      *** Failers      *** Failers
685  No match  No match
686      \Za      \Za
687  No match  No match
688    
689  /\Aabc/m  /\Aabc/Im
690  Capturing subpattern count = 0  Capturing subpattern count = 0
691  Options: anchored multiline  Options: anchored multiline
692  No first char  No first char
693  No need char  No need char
694    
695  /^abc/m  /^abc/Im
696  Capturing subpattern count = 0  Capturing subpattern count = 0
697  Options: multiline  Options: multiline
698  First char at start or follows \n  First char at start or follows newline
699  Need char = 'c'  Need char = 'c'
700    
701  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
702  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
703  Options: anchored  Options: anchored
704  No first char  No first char
705  No need char  No need char
# Line 681  No need char Line 711  No need char
711   4: bbbbccccc   4: bbbbccccc
712   5: def   5: def
713    
714  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
715  Capturing subpattern count = 0  Capturing subpattern count = 0
716  No options  No options
717  No first char  No first char
718  No need char  No need char
719    Subject length lower bound = 1
720  Starting byte set: a b  Starting byte set: a b
721    
722  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
723  Capturing subpattern count = 1  Capturing subpattern count = 1
724  No options  No options
725  No first char  No first char
726  Need char = 'a'  Need char = 'a'
727    Subject length lower bound = 5
728  Starting byte set: a o  Starting byte set: a o
729    
730  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
731  Capturing subpattern count = 0  Capturing subpattern count = 0
732  No options  No options
733  No first char  No first char
734  No need char  No need char
735    Subject length lower bound = 1
736  Starting byte set: a b  Starting byte set: a b
737    
738  /(?<=foo\n)^bar/m  /(?<=foo\n)^bar/Im
739  Capturing subpattern count = 0  Capturing subpattern count = 0
740    Contains explicit CR or LF match
741  Options: multiline  Options: multiline
742  No first char  No first char
743  Need char = 'r'  Need char = 'r'
744      foo\nbarbar      foo\nbarbar
745   0: bar   0: bar
746      ***Failers      ***Failers
747  No match  No match
748      rhubarb      rhubarb
749  No match  No match
750      barbell      barbell
751  No match  No match
752      abc\nbarton      abc\nbarton
753  No match  No match
754    
755  /^(?<=foo\n)bar/m  /^(?<=foo\n)bar/Im
756  Capturing subpattern count = 0  Capturing subpattern count = 0
757    Contains explicit CR or LF match
758  Options: multiline  Options: multiline
759  First char at start or follows \n  First char at start or follows newline
760  Need char = 'r'  Need char = 'r'
761      foo\nbarbar      foo\nbarbar
762   0: bar   0: bar
763      ***Failers      ***Failers
764  No match  No match
765      rhubarb      rhubarb
766  No match  No match
767      barbell      barbell
768  No match  No match
769      abc\nbarton      abc\nbarton
770  No match  No match
771    
772  /(?>^abc)/m  /(?>^abc)/Im
773  Capturing subpattern count = 0  Capturing subpattern count = 0
774  Options: multiline  Options: multiline
775  First char at start or follows \n  First char at start or follows newline
776  Need char = 'c'  Need char = 'c'
777      abc      abc
778   0: abc   0: abc
# Line 745  Need char = 'c' Line 780  Need char = 'c'
780   0: abc   0: abc
781      *** Failers      *** Failers
782  No match  No match
783      defabc      defabc
784  No match  No match
785    
786  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 758  Failed: lookbehind assertion is not fixe Line 793  Failed: lookbehind assertion is not fixe
793  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
794    
795  /The next three are in testinput2 because they have variable length branches/  /The next three are in testinput2 because they have variable length branches/
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 's'  
796    
797  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
798  Capturing subpattern count = 0  Capturing subpattern count = 0
799  No options  No options
800  First char = '-'  First char = '-'
# Line 776  Need char = 't' Line 807  Need char = 't'
807  No match  No match
808      cart      cart
809  No match  No match
810      horse-and-cart      horse-and-cart
811  No match  No match
812    
813  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
814  Capturing subpattern count = 0  Capturing subpattern count = 0
815  No options  No options
 Case state changes  
816  No first char  No first char
817  No need char  No need char
818    
819  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
820  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
821  No options  No options
822  First char at start or follows \n  First char at start or follows newline
823  No need char  No need char
824      alphabetabcd      alphabetabcd
825   0: alphabetabcd   0: alphabetabcd
# Line 800  No need char Line 829  No need char
829   1: <unset>   1: <unset>
830   2: xyz   2: xyz
831    
832  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
833  Capturing subpattern count = 0  Capturing subpattern count = 0
834  No options  No options
 Case state changes  
835  First char = 'Z'  First char = 'Z'
836  Need char = 'Z'  Need char = 'Z'
837      abxyZZ      abxyZZ
# Line 816  Need char = 'Z' Line 844  Need char = 'Z'
844   0: ZZ   0: ZZ
845      bZZ      bZZ
846   0: ZZ   0: ZZ
847      BZZ      BZZ
848   0: ZZ   0: ZZ
849      *** Failers      *** Failers
850  No match  No match
851      ZZ      ZZ
852  No match  No match
853      abXYZZ      abXYZZ
854  No match  No match
855      zzz      zzz
856  No match  No match
857      bzz      bzz
858  No match  No match
859    
860  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
861  Capturing subpattern count = 1  Capturing subpattern count = 1
862  No options  No options
863  First char = 'b'  First char = 'b'
864  Need char = 'r'  Need char = 'r'
865      bar      bar
866   0: bar   0: bar
867      foobbar      foobbar
868   0: bar   0: bar
869      *** Failers      *** Failers
870  No match  No match
871      fooabar      fooabar
872  No match  No match
873    
874  /This one is here because Perl 5.005_02 doesn't fail it/  /This one is here because Perl 5.005_02 doesn't fail it/I
875  Capturing subpattern count = 0  Capturing subpattern count = 0
876  No options  No options
877  First char = 'T'  First char = 'T'
878  Need char = 't'  Need char = 't'
879    
880  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
881  Capturing subpattern count = 1  Capturing subpattern count = 1
882  Options: anchored  Options: anchored
883  No first char  No first char
884  No need char  No need char
885      *** Failers      *** Failers
886  No match  No match
887      a      a
888  No match  No match
889    
890  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/  /This one is here because Perl behaves differently; see also the following/I
891  Capturing subpattern count = 0  Capturing subpattern count = 0
892  No options  No options
893  First char = 'T'  First char = 'T'
894  Need char = 'g'  Need char = 'g'
895    
896  /^(a\1?){4}$/  /^(a\1?){4}$/I
897  Capturing subpattern count = 1  Capturing subpattern count = 1
898  Max back reference = 1  Max back reference = 1
899  Options: anchored  Options: anchored
900  No first char  No first char
901  No need char  No need char
902        aaaa
903    No match
904      aaaaaa      aaaaaa
905   0: aaaaaa  No match
  1: aa  
906    
907  /These are syntax tests from Perl 5.005/  /Perl does not fail these two for the final subjects. Neither did PCRE until/
908    /release 8.01. The problem is in backtracking into a subpattern that contains/
909    No match
910    /a recursive reference to itself. PCRE has now made these into atomic patterns./
911    No match
912    
913    /^(xa|=?\1a){2}$/
914        xa=xaa
915     0: xa=xaa
916     1: =xaa
917        ** Failers
918    No match
919        xa=xaaa
920    No match
921    
922    /^(xa|=?\1a)+$/
923        xa=xaa
924     0: xa=xaa
925     1: =xaa
926        ** Failers
927    No match
928        xa=xaaa
929    No match
930    
931    /These are syntax tests from Perl 5.005/I
932  Capturing subpattern count = 0  Capturing subpattern count = 0
933  No options  No options
934  First char = 'T'  First char = 'T'
# Line 917  Failed: reference to non-existent subpat Line 970  Failed: reference to non-existent subpat
970  /(a)|\2/  /(a)|\2/
971  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
972    
973  /a[b-a]/i  /a[b-a]/Ii
974  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
975    
976  /a[]b/i  /a[]b/Ii
977  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
978    
979  /a[/i  /a[/Ii
980  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
981    
982  /*a/i  /*a/Ii
983  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
984    
985  /(*)b/i  /(*)b/Ii
986  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
987    
988  /abc)/i  /abc)/Ii
989  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
990    
991  /(abc/i  /(abc/Ii
992  Failed: missing ) at offset 4  Failed: missing ) at offset 4
993    
994  /a**/i  /a**/Ii
995  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
996    
997  /)(/i  /)(/Ii
998  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
999    
1000  /:(?:/  /:(?:/
# Line 951  Failed: missing ) at offset 4 Line 1004  Failed: missing ) at offset 4
1004  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
1005    
1006  /a(?{)b/  /a(?{)b/
1007  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1008    
1009  /a(?{{})b/  /a(?{{})b/
1010  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1011    
1012  /a(?{}})b/  /a(?{}})b/
1013  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1014    
1015  /a(?{"{"})b/  /a(?{"{"})b/
1016  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1017    
1018  /a(?{"{"}})b/  /a(?{"{"}})b/
1019  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
1020    
1021  /(?(1?)a|b)/  /(?(1?)a|b)/
1022  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
   
 /(?(1)a|b|c)/  
 Failed: conditional group contains more than two branches at offset 10  
1023    
1024  /[a[:xyz:/  /[a[:xyz:/
1025  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
# Line 989  Failed: POSIX code 9: bad escape sequenc Line 1039  Failed: POSIX code 9: bad escape sequenc
1039  /abc/\i  /abc/\i
1040  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
1041    
1042  /(a)bc(d)/  /(a)bc(d)/I
1043  Capturing subpattern count = 2  Capturing subpattern count = 2
1044  No options  No options
1045  First char = 'a'  First char = 'a'
# Line 1008  Need char = 'd' Line 1058  Need char = 'd'
1058   1: a   1: a
1059   2: d   2: d
1060  copy substring 5 failed -7  copy substring 5 failed -7
1061    
1062  /(.{20})/  /(.{20})/I
1063  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1064  No options  No options
1065  No first char  No first char
1066  No need char  No need char
# Line 1021  No need char Line 1070  No need char
1070      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1071   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1072   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1073  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1074      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1075   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1076   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1077   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1078    
1079  /(.{15})/  /(.{15})/I
1080  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1081  No options  No options
1082  No first char  No first char
1083  No need char  No need char
# Line 1042  No need char Line 1090  No need char
1090   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1091   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1092    
1093  /(.{16})/  /(.{16})/I
1094  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1095  No options  No options
1096  No first char  No first char
1097  No need char  No need char
# Line 1054  No need char Line 1101  No need char
1101      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1102   0: abcdefghijklmnop   0: abcdefghijklmnop
1103   1: abcdefghijklmnop   1: abcdefghijklmnop
1104  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1105   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1106   0L abcdefghijklmnop   0L abcdefghijklmnop
1107   1L abcdefghijklmnop   1L abcdefghijklmnop
1108    
1109  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1110  Capturing subpattern count = 3  Capturing subpattern count = 3
1111  Options: anchored  Options: anchored
1112  No first char  No first char
1113  No need char  No need char
1114      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1115   0: adef   0: adef
1116   1: a   1: a
1117   2: <unset>   2: <unset>
# Line 1077  get substring 4 failed -7 Line 1124  get substring 4 failed -7
1124   1L a   1L a
1125   2L   2L
1126   3L f   3L f
1127      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1128   0: bcdef   0: bcdef
1129   1: bc   1: bc
1130   2: bc   2: bc
# Line 1090  get substring 4 failed -7 Line 1137  get substring 4 failed -7
1137   1L bc   1L bc
1138   2L bc   2L bc
1139   3L f   3L f
1140      adefghijk\C0      adefghijk\C0
1141   0: adef   0: adef
1142   1: a   1: a
1143   2: <unset>   2: <unset>
1144   3: f   3: f
1145   0C adef (4)   0C adef (4)
1146    
1147  /^abc\00def/  /^abc\00def/I
1148  Capturing subpattern count = 0  Capturing subpattern count = 0
1149  Options: anchored  Options: anchored
1150  No first char  No first char
1151  No need char  No need char
1152      abc\00def\L\C0      abc\00def\L\C0
1153   0: abc\x00def   0: abc\x00def
1154   0C abc (7)   0C abc (7)
1155   0L abc   0L abc
1156    
1157  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1158  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
1159  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 432  
1160  Capturing subpattern count = 8  Capturing subpattern count = 8
1161  Partial matching not supported  Contains explicit CR or LF match
1162  No options  No options
1163  First char = 'w'  First char = 'w'
1164  Need char = 'd'  Need char = 'd'
1165    
1166  /.*X/D  /.*X/IDZ
1167  ------------------------------------------------------------------  ------------------------------------------------------------------
1168    0   7 Bra 0          Bra
1169    3     Any*          Any*
1170    5     X          X
1171    7   7 Ket          Ket
1172   10     End          End
1173  ------------------------------------------------------------------  ------------------------------------------------------------------
1174  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1175  No options  No options
1176  First char at start or follows \n  First char at start or follows newline
1177  Need char = 'X'  Need char = 'X'
1178    
1179  /.*X/Ds  /.*X/IDZs
1180  ------------------------------------------------------------------  ------------------------------------------------------------------
1181    0   7 Bra 0          Bra
1182    3     Any*          AllAny*
1183    5     X          X
1184    7   7 Ket          Ket
1185   10     End          End
1186  ------------------------------------------------------------------  ------------------------------------------------------------------
1187  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1188  Options: anchored dotall  Options: anchored dotall
1189  No first char  No first char
1190  Need char = 'X'  Need char = 'X'
1191    
1192  /(.*X|^B)/D  /(.*X|^B)/IDZ
1193  ------------------------------------------------------------------  ------------------------------------------------------------------
1194    0  19 Bra 0          Bra
1195    3   7 Bra 1          CBra 1
1196    6     Any*          Any*
1197    8     X          X
1198   10   6 Alt          Alt
1199   13     ^          ^
1200   14     B          B
1201   16  13 Ket          Ket
1202   19  19 Ket          Ket
1203   22     End          End
1204  ------------------------------------------------------------------  ------------------------------------------------------------------
1205  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1206  No options  No options
1207  First char at start or follows \n  First char at start or follows newline
1208  No need char  No need char
1209    
1210  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1211  ------------------------------------------------------------------  ------------------------------------------------------------------
1212    0  19 Bra 0          Bra
1213    3   7 Bra 1          CBra 1
1214    6     Any*          AllAny*
1215    8     X          X
1216   10   6 Alt          Alt
1217   13     ^          ^
1218   14     B          B
1219   16  13 Ket          Ket
1220   19  19 Ket          Ket
1221   22     End          End
1222  ------------------------------------------------------------------  ------------------------------------------------------------------
1223  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1224  Options: anchored dotall  Options: anchored dotall
1225  No first char  No first char
1226  No need char  No need char
1227    
1228  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1229  ------------------------------------------------------------------  ------------------------------------------------------------------
1230    0  19 Bra 0          Bra
1231    3   7 Bra 1          CBra 1
1232    6     Any*          AllAny*
1233    8     X          X
1234   10   6 Alt          Alt
1235   13     ^          ^
1236   14     B          B
1237   16  13 Ket          Ket
1238   19  19 Ket          Ket
1239   22     End          End
1240  ------------------------------------------------------------------  ------------------------------------------------------------------
1241  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1242  Options: anchored dotall  Options: anchored dotall
1243  No first char  No first char
1244  No need char  No need char
1245    
1246  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1247  ------------------------------------------------------------------  ------------------------------------------------------------------
1248    0  25 Bra 0          Bra
1249    3   9 Bra 0          Bra
1250    6  04 Opt       04 Opt
1251    8     Any*          AllAny*
1252   10     X          X
1253   12   8 Alt          Alt
1254   15  04 Opt       04 Opt
1255   17     ^          ^
1256   18     B          B
1257   20  17 Ket          Ket
1258   23  00 Opt       00 Opt
1259   25  25 Ket          Ket
1260   28     End          End
1261  ------------------------------------------------------------------  ------------------------------------------------------------------
1262  Capturing subpattern count = 0  Capturing subpattern count = 0
1263  Partial matching not supported  Options: anchored
1264  No options  No first char
 First char at start or follows \n  
1265  No need char  No need char
1266    
1267  /\Biss\B/+  /\Biss\B/I+
1268  Capturing subpattern count = 0  Capturing subpattern count = 0
1269  No options  No options
1270  First char = 'i'  First char = 'i'
# Line 1233  Need char = 's' Line 1273  Need char = 's'
1273   0: iss   0: iss
1274   0+ issippi   0+ issippi
1275    
1276  /\Biss\B/+P  /\Biss\B/I+P
1277      Mississippi      Mississippi
1278   0: iss   0: iss
1279   0+ issippi   0+ issippi
1280    
1281  /iss/G+  /iss/IG+
1282  Capturing subpattern count = 0  Capturing subpattern count = 0
1283  No options  No options
1284  First char = 'i'  First char = 'i'
# Line 1249  Need char = 's' Line 1289  Need char = 's'
1289   0: iss   0: iss
1290   0+ ippi   0+ ippi
1291    
1292  /\Biss\B/G+  /\Biss\B/IG+
1293  Capturing subpattern count = 0  Capturing subpattern count = 0
1294  No options  No options
1295  First char = 'i'  First char = 'i'
# Line 1258  Need char = 's' Line 1298  Need char = 's'
1298   0: iss   0: iss
1299   0+ issippi   0+ issippi
1300    
1301  /\Biss\B/g+  /\Biss\B/Ig+
1302  Capturing subpattern count = 0  Capturing subpattern count = 0
1303  No options  No options
1304  First char = 'i'  First char = 'i'
# Line 1273  No match Line 1313  No match
1313      Mississippi\A      Mississippi\A
1314  No match  No match
1315    
1316  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1317  Capturing subpattern count = 0  Capturing subpattern count = 0
1318  No options  No options
1319  First char = 'i'  First char = 'i'
# Line 1284  Need char = 's' Line 1324  Need char = 's'
1324   0: iss   0: iss
1325   0+ ippi   0+ ippi
1326    
1327  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1328  Capturing subpattern count = 0  Capturing subpattern count = 0
1329  No options  No options
1330  First char = 'i'  First char = 'i'
# Line 1293  Need char = 's' Line 1333  Need char = 's'
1333   0: iss   0: iss
1334   0+ issippi   0+ issippi
1335    
1336  /^iss/g+  /^iss/Ig+
1337  Capturing subpattern count = 0  Capturing subpattern count = 0
1338  Options: anchored  Options: anchored
1339  No first char  No first char
# Line 1301  No need char Line 1341  No need char
1341      ississippi      ississippi
1342   0: iss   0: iss
1343   0+ issippi   0+ issippi
1344    
1345  /.*iss/g+  /.*iss/Ig+
1346  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1347  No options  No options
1348  First char at start or follows \n  First char at start or follows newline
1349  Need char = 's'  Need char = 's'
1350      abciss\nxyzisspqr      abciss\nxyzisspqr
1351   0: abciss   0: abciss
1352   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1353   0: xyziss   0: xyziss
1354   0+ pqr   0+ pqr
1355    
1356  /.i./+g  /.i./I+g
1357  Capturing subpattern count = 0  Capturing subpattern count = 0
1358  No options  No options
1359  No first char  No first char
# Line 1340  Need char = 'i' Line 1379  Need char = 'i'
1379   0+ river   0+ river
1380   0: riv   0: riv
1381   0+ er   0+ er
1382      Missouri river\A      Missouri river\A
1383   0: Mis   0: Mis
1384   0+ souri river   0+ souri river
1385    
1386  /^.is/+g  /^.is/I+g
1387  Capturing subpattern count = 0  Capturing subpattern count = 0
1388  Options: anchored  Options: anchored
1389  No first char  No first char
# Line 1353  No need char Line 1392  No need char
1392   0: Mis   0: Mis
1393   0+ sissippi   0+ sissippi
1394    
1395  /^ab\n/g+  /^ab\n/Ig+
1396  Capturing subpattern count = 0  Capturing subpattern count = 0
1397    Contains explicit CR or LF match
1398  Options: anchored  Options: anchored
1399  No first char  No first char
1400  No need char  No need char
# Line 1362  No need char Line 1402  No need char
1402   0: ab\x0a   0: ab\x0a
1403   0+ ab\x0acd   0+ ab\x0acd
1404    
1405  /^ab\n/mg+  /^ab\n/Img+
1406  Capturing subpattern count = 0  Capturing subpattern count = 0
1407    Contains explicit CR or LF match
1408  Options: multiline  Options: multiline
1409  First char at start or follows \n  First char at start or follows newline
1410  Need char = 10  Need char = 10
1411      ab\nab\ncd      ab\nab\ncd
1412   0: ab\x0a   0: ab\x0a
# Line 1373  Need char = 10 Line 1414  Need char = 10
1414   0: ab\x0a   0: ab\x0a
1415   0+ cd   0+ cd
1416    
1417  /abc/  /abc/I
1418  Capturing subpattern count = 0  Capturing subpattern count = 0
1419  No options  No options
1420  First char = 'a'  First char = 'a'
1421  Need char = 'c'  Need char = 'c'
1422    
1423  /abc|bac/  /abc|bac/I
1424  Capturing subpattern count = 0  Capturing subpattern count = 0
1425  No options  No options
1426  No first char  No first char
1427  Need char = 'c'  Need char = 'c'
1428    
1429  /(abc|bac)/  /(abc|bac)/I
1430  Capturing subpattern count = 1  Capturing subpattern count = 1
1431  No options  No options
1432  No first char  No first char
1433  Need char = 'c'  Need char = 'c'
1434    
1435  /(abc|(c|dc))/  /(abc|(c|dc))/I
1436  Capturing subpattern count = 2  Capturing subpattern count = 2
1437  No options  No options
1438  No first char  No first char
1439  Need char = 'c'  Need char = 'c'
1440    
1441  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1442  Capturing subpattern count = 2  Capturing subpattern count = 2
1443  No options  No options
1444  No first char  No first char
1445  Need char = 'c'  Need char = 'c'
1446    
1447  /a*/  /a*/I
1448  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1449  No options  No options
1450  No first char  No first char
1451  No need char  No need char
1452    
1453  /a+/  /a+/I
1454  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1455  No options  No options
1456  First char = 'a'  First char = 'a'
1457  No need char  No need char
1458    
1459  /(baa|a+)/  /(baa|a+)/I
1460  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1461  No options  No options
1462  No first char  No first char
1463  Need char = 'a'  Need char = 'a'
1464    
1465  /a{0,3}/  /a{0,3}/I
1466  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1467  No options  No options
1468  No first char  No first char
1469  No need char  No need char
1470    
1471  /baa{3,}/  /baa{3,}/I
1472  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1473  No options  No options
1474  First char = 'b'  First char = 'b'
1475  Need char = 'a'  Need char = 'a'
1476    
1477  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1478  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1479  No options  No options
1480  First char = '"'  First char = '"'
1481  Need char = '"'  Need char = '"'
1482    
1483  /(abc|ab[cd])/  /(abc|ab[cd])/I
1484  Capturing subpattern count = 1  Capturing subpattern count = 1
1485  No options  No options
1486  First char = 'a'  First char = 'a'
1487  No need char  No need char
1488    
1489  /(a|.)/  /(a|.)/I
1490  Capturing subpattern count = 1  Capturing subpattern count = 1
1491  No options  No options
1492  No first char  No first char
1493  No need char  No need char
1494    
1495  /a|ba|\w/  /a|ba|\w/I
1496  Capturing subpattern count = 0  Capturing subpattern count = 0
1497  No options  No options
1498  No first char  No first char
1499  No need char  No need char
1500    
1501  /abc(?=pqr)/  /abc(?=pqr)/I
1502  Capturing subpattern count = 0  Capturing subpattern count = 0
1503  No options  No options
1504  First char = 'a'  First char = 'a'
1505  Need char = 'r'  Need char = 'r'
1506    
1507  /...(?<=abc)/  /...(?<=abc)/I
1508  Capturing subpattern count = 0  Capturing subpattern count = 0
1509  No options  No options
1510  No first char  No first char
1511  No need char  No need char
1512    
1513  /abc(?!pqr)/  /abc(?!pqr)/I
1514  Capturing subpattern count = 0  Capturing subpattern count = 0
1515  No options  No options
1516  First char = 'a'  First char = 'a'
1517  Need char = 'c'  Need char = 'c'
1518    
1519  /ab./  /ab./I
1520  Capturing subpattern count = 0  Capturing subpattern count = 0
1521  No options  No options
1522  First char = 'a'  First char = 'a'
1523  Need char = 'b'  Need char = 'b'
1524    
1525  /ab[xyz]/  /ab[xyz]/I
1526  Capturing subpattern count = 0  Capturing subpattern count = 0
1527  No options  No options
1528  First char = 'a'  First char = 'a'
1529  Need char = 'b'  Need char = 'b'
1530    
1531  /abc*/  /abc*/I
1532  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1533  No options  No options
1534  First char = 'a'  First char = 'a'
1535  Need char = 'b'  Need char = 'b'
1536    
1537  /ab.c*/  /ab.c*/I
1538  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1539  No options  No options
1540  First char = 'a'  First char = 'a'
1541  Need char = 'b'  Need char = 'b'
1542    
1543  /a.c*/  /a.c*/I
1544  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1545  No options  No options
1546  First char = 'a'  First char = 'a'
1547  No need char  No need char
1548    
1549  /.c*/  /.c*/I
1550  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1551  No options  No options
1552  No first char  No first char
1553  No need char  No need char
1554    
1555  /ac*/  /ac*/I
1556  Capturing subpattern count = 0  Capturing subpattern count = 0
 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.c*|b.c*)/  /(a.c*|b.c*)/I
1562  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1563  No options  No options
1564  No first char  No first char
1565  No need char  No need char
1566    
1567  /a.c*|aba/  /a.c*|aba/I
1568  Capturing subpattern count = 0  Capturing subpattern count = 0
 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  /.+a/  /.+a/I
1574  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1575  No options  No options
1576  No first char  No first char
1577  Need char = 'a'  Need char = 'a'
1578    
1579  /(?=abcda)a.*/  /(?=abcda)a.*/I
1580  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1581  No options  No options
1582  First char = 'a'  First char = 'a'
1583  Need char = 'a'  Need char = 'a'
1584    
1585  /(?=a)a.*/  /(?=a)a.*/I
1586  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1587  No options  No options
1588  First char = 'a'  First char = 'a'
1589  No need char  No need char
1590    
1591  /a(b)*/  /a(b)*/I
1592  Capturing subpattern count = 1  Capturing subpattern count = 1
1593  No options  No options
1594  First char = 'a'  First char = 'a'
1595  No need char  No need char
1596    
1597  /a\d*/  /a\d*/I
1598  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1599  No options  No options
1600  First char = 'a'  First char = 'a'
1601  No need char  No need char
1602    
1603  /ab\d*/  /ab\d*/I
1604  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1605  No options  No options
1606  First char = 'a'  First char = 'a'
1607  Need char = 'b'  Need char = 'b'
1608    
1609  /a(\d)*/  /a(\d)*/I
1610  Capturing subpattern count = 1  Capturing subpattern count = 1
1611  No options  No options
1612  First char = 'a'  First char = 'a'
1613  No need char  No need char
1614    
1615  /abcde{0,0}/  /abcde{0,0}/I
1616  Capturing subpattern count = 0  Capturing subpattern count = 0
1617  No options  No options
1618  First char = 'a'  First char = 'a'
1619  Need char = 'd'  Need char = 'd'
1620    
1621  /ab\d+/  /ab\d+/I
1622  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1623  No options  No options
1624  First char = 'a'  First char = 'a'
1625  Need char = 'b'  Need char = 'b'
1626    
1627  /a(?(1)b)/  /a(?(1)b)(.)/I
1628  Capturing subpattern count = 0  Capturing subpattern count = 1
1629  No options  No options
1630  First char = 'a'  First char = 'a'
1631  No need char  No need char
1632    
1633  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1634  Capturing subpattern count = 0  Capturing subpattern count = 1
1635  No options  No options
1636  First char = 'a'  First char = 'a'
1637  Need char = 'g'  Need char = 'g'
1638    
1639  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1640  Capturing subpattern count = 0  Capturing subpattern count = 1
1641  No options  No options
1642  First char = 'a'  First char = 'a'
1643  No need char  No need char
1644    
1645  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1646  Capturing subpattern count = 0  Capturing subpattern count = 1
1647  No options  No options
1648  First char = 'a'  First char = 'a'
1649  Need char = 'g'  Need char = 'g'
1650    
1651  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1652  Capturing subpattern count = 0  Capturing subpattern count = 1
1653  No options  No options
1654  First char = 'a'  First char = 'a'
1655  Need char = 'b'  Need char = 'b'
1656    
1657  /ab\d{0}e/  /ab\d{0}e/I
1658  Capturing subpattern count = 0  Capturing subpattern count = 0
1659  No options  No options
1660  First char = 'a'  First char = 'a'
1661  Need char = 'e'  Need char = 'e'
1662    
1663  /a?b?/  /a?b?/I
1664  Capturing subpattern count = 0  Capturing subpattern count = 0
1665  No options  No options
1666  No first char  No first char
# Line 1653  No need char Line 1675  No need char
1675   0:   0:
1676      *** Failers      *** Failers
1677   0:   0:
1678      \N      \N
1679  No match  No match
1680    
1681  /|-/  /|-/I
1682  Capturing subpattern count = 0  Capturing subpattern count = 0
1683  No options  No options
1684  No first char  No first char
# Line 1669  No need char Line 1691  No need char
1691   0: -   0: -
1692      *** Failers      *** Failers
1693   0:   0:
1694      \Nabc      \Nabc
1695  No match  No match
1696    
1697  /a*(b+)(z)(z)/P  /a*(b+)(z)(z)/P
# Line 1698  No match Line 1720  No match
1720   1: bbbb   1: bbbb
1721   2: z   2: z
1722   3: z   3: z
1723    
1724  /^.?abcd/S  /^.?abcd/IS
1725  Capturing subpattern count = 0  Capturing subpattern count = 0
1726  Options: anchored  Options: anchored
1727  No first char  No first char
1728  Need char = 'd'  Need char = 'd'
1729  Study returned NULL  Subject length lower bound = 4
1730    No set of starting bytes
1731    
1732  /\(             # ( at start  /\(             # ( at start
1733    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1713  Study returned NULL Line 1736  Study returned NULL
1736    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1737    )*            # Zero or more contents    )*            # Zero or more contents
1738    \)            # Closing )    \)            # Closing )
1739    /x    /Ix
1740  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1741  Options: extended  Options: extended
1742  First char = '('  First char = '('
1743  Need char = ')'  Need char = ')'
# Line 1725  Need char = ')' Line 1747  Need char = ')'
1747   0: (abcd)   0: (abcd)
1748      xyz(abcd)      xyz(abcd)
1749   0: (abcd)   0: (abcd)
1750      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1751   0: (ab(xy)cd)   0: (ab(xy)cd)
1752      (ab(xycd)pqr      (ab(xycd)pqr
1753   0: (xycd)   0: (xycd)
1754      () abc ()      () abc ()
1755   0: ()   0: ()
1756      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1757   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1758      *** Failers      *** Failers
1759  No match  No match
1760      abcd      abcd
1761  No match  No match
1762      abcd)      abcd)
1763  No match  No match
1764      (abcd      (abcd
1765  No match  No match
1766    
1767  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1768  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1769  Options: extended  Options: extended
1770  First char = '('  First char = '('
1771  Need char = ')'  Need char = ')'
1772      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1773   0: (ab(xy)cd)   0: (ab(xy)cd)
1774   1: cd   1: cd
1775      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1757  Need char = ')' Line 1778  Need char = ')'
1778   0: (x(y)z)   0: (x(y)z)
1779   1: z   1: z
1780    
1781  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1782  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1783  Options: extended  Options: extended
1784  First char = '('  First char = '('
1785  Need char = ')'  Need char = ')'
# Line 1767  Need char = ')' Line 1787  Need char = ')'
1787   0: (abcd)   0: (abcd)
1788      (ab(xy)cd)      (ab(xy)cd)
1789   0: (xy)   0: (xy)
1790      (a(b(c)d)e)      (a(b(c)d)e)
1791   0: (c)   0: (c)
1792      ((ab))      ((ab))
1793   0: ((ab))   0: ((ab))
1794      *** Failers      *** Failers
1795  No match  No match
1796      ()      ()
1797  No match  No match
1798    
1799  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1800  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1801  Options: extended  Options: extended
1802  First char = '('  First char = '('
1803  Need char = ')'  Need char = ')'
# Line 1787  Need char = ')' Line 1806  Need char = ')'
1806      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1807   0: (fsh)   0: (fsh)
1808    
1809  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1810  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1811  Options: extended  Options: extended
1812  First char = '('  First char = '('
1813  Need char = ')'  Need char = ')'
# Line 1797  Need char = ')' Line 1815  Need char = ')'
1815   0: (ab(xy)cd)   0: (ab(xy)cd)
1816   1: cd   1: cd
1817    
1818  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1819  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1820  Options: extended  Options: extended
1821  First char = '('  First char = '('
1822  Need char = ')'  Need char = ')'
# Line 1808  Need char = ')' Line 1825  Need char = ')'
1825   1: ab(xy)cd   1: ab(xy)cd
1826   2: cd   2: cd
1827    
1828  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1829  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1830  Options: extended  Options: extended
1831  First char = '('  First char = '('
1832  Need char = ')'  Need char = ')'
# Line 1825  Need char = ')' Line 1841  Need char = ')'
1841   2: ab(xy)cd   2: ab(xy)cd
1842   3: cd   3: cd
1843    
1844  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1845  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1846  Options: extended  Options: extended
1847  First char = '('  First char = '('
1848  Need char = ')'  Need char = ')'
# Line 1842  Need char = ')' Line 1857  Need char = ')'
1857   2: 123   2: 123
1858   3: cd   3: cd
1859    
1860  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1861  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1862  Options: extended  Options: extended
1863  First char = '('  First char = '('
1864  Need char = ')'  Need char = ')'
# Line 1862  Need char = ')' Line 1876  Need char = ')'
1876  10: ab(xy)cd  10: ab(xy)cd
1877  11: cd  11: cd
1878    
1879  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1880  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1881  Options: extended  Options: extended
1882  First char = '('  First char = '('
1883  Need char = ')'  Need char = ')'
# Line 1872  Need char = ')' Line 1885  Need char = ')'
1885   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1886   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1887   2: 123   2: 123
  3: <unset>  
1888    
1889  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1890  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1891  Options: extended  Options: extended
1892  First char = '('  First char = '('
1893  Need char = ')'  Need char = ')'
# Line 1891  Need char = ')' Line 1902  Need char = ')'
1902   2: ij   2: ij
1903   3: (cd(ef)gh)   3: (cd(ef)gh)
1904    
1905  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1906  ------------------------------------------------------------------  ------------------------------------------------------------------
1907    0  37 Bra 0          Bra
1908    3     ^          ^
1909    4     [0-9A-Za-z]          [0-9A-Za-z]
1910   37  37 Ket          Ket
1911   40     End          End
1912  ------------------------------------------------------------------  ------------------------------------------------------------------
1913  Capturing subpattern count = 0  Capturing subpattern count = 0
1914  Options: anchored  Options: anchored
1915  No first char  No first char
1916  No need char  No need char
1917    
1918  /^[[:^alnum:]]/D  /^[[:^alnum:]]/DZ
1919  ------------------------------------------------------------------  ------------------------------------------------------------------
1920    0  37 Bra 0          Bra
1921    3     ^          ^
1922    4     [\x00-/:-@[-`{-\xff]          [\x00-/:-@[-`{-\xff] (neg)
1923   37  37 Ket          Ket
1924   40     End          End
1925  ------------------------------------------------------------------  ------------------------------------------------------------------
1926  Capturing subpattern count = 0  Capturing subpattern count = 0
1927  Options: anchored  Options: anchored
1928  No first char  No first char
1929  No need char  No need char
1930    
1931  /^[[:alpha:]]/D  /^[[:alpha:]]/DZ
1932  ------------------------------------------------------------------  ------------------------------------------------------------------
1933    0  37 Bra 0          Bra
1934    3     ^          ^
1935    4     [A-Za-z]          [A-Za-z]
1936   37  37 Ket          Ket
1937   40     End          End
1938  ------------------------------------------------------------------  ------------------------------------------------------------------
1939  Capturing subpattern count = 0  Capturing subpattern count = 0
1940  Options: anchored  Options: anchored
1941  No first char  No first char
1942  No need char  No need char
1943    
1944  /^[[:^alpha:]]/D  /^[[:^alpha:]]/DZ
1945  ------------------------------------------------------------------  ------------------------------------------------------------------
1946    0  37 Bra 0          Bra
1947    3     ^          ^
1948    4     [\x00-@[-`{-\xff]          [\x00-@[-`{-\xff] (neg)
1949   37  37 Ket          Ket
1950   40     End          End
1951  ------------------------------------------------------------------  ------------------------------------------------------------------
1952  Capturing subpattern count = 0  Capturing subpattern count = 0
1953  Options: anchored  Options: anchored
1954  No first char  No first char
1955  No need char  No need char
1956    
1957  /[_[:alpha:]]/IS  /[_[:alpha:]]/IS
1958  Capturing subpattern count = 0  Capturing subpattern count = 0
1959  No options  No options
1960  No first char  No first char
1961  No need char  No need char
1962    Subject length lower bound = 1
1963  Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1964    _ a b c d e f g h i j k l m n o p q r s t u v w x y z    _ a b c d e f g h i j k l m n o p q r s t u v w x y z
1965    
1966  /^[[:ascii:]]/D  /^[[:ascii:]]/DZ
1967  ------------------------------------------------------------------  ------------------------------------------------------------------
1968    0  37 Bra 0          Bra
1969    3     ^          ^
1970    4     [\x00-\x7f]          [\x00-\x7f]
1971   37  37 Ket          Ket
1972   40     End          End
1973  ------------------------------------------------------------------  ------------------------------------------------------------------
1974  Capturing subpattern count = 0  Capturing subpattern count = 0
1975  Options: anchored  Options: anchored
1976  No first char  No first char
1977  No need char  No need char
1978    
1979  /^[[:^ascii:]]/D  /^[[:^ascii:]]/DZ
1980  ------------------------------------------------------------------  ------------------------------------------------------------------
1981    0  37 Bra 0          Bra
1982    3     ^          ^
1983    4     [\x80-\xff]          [\x80-\xff] (neg)
1984   37  37 Ket          Ket
1985   40     End          End
1986  ------------------------------------------------------------------  ------------------------------------------------------------------
1987  Capturing subpattern count = 0  Capturing subpattern count = 0
1988  Options: anchored  Options: anchored
1989  No first char  No first char
1990  No need char  No need char
1991    
1992  /^[[:blank:]]/D  /^[[:blank:]]/DZ
1993  ------------------------------------------------------------------  ------------------------------------------------------------------
1994    0  37 Bra 0          Bra
1995    3     ^          ^
1996    4     [\x09 ]          [\x09 ]
1997   37  37 Ket          Ket
1998   40     End          End
1999  ------------------------------------------------------------------  ------------------------------------------------------------------
2000  Capturing subpattern count = 0  Capturing subpattern count = 0
2001  Options: anchored  Options: anchored
2002  No first char  No first char
2003  No need char  No need char
2004    
2005  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2006  ------------------------------------------------------------------  ------------------------------------------------------------------
2007    0  37 Bra 0          Bra
2008    3     ^          ^
2009    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2010   37  37 Ket          Ket
2011   40     End          End
2012  ------------------------------------------------------------------  ------------------------------------------------------------------
2013  Capturing subpattern count = 0  Capturing subpattern count = 0
2014  Options: anchored  Options: anchored
# Line 2005  No need char Line 2017  No need char
2017    
2018  /[\n\x0b\x0c\x0d[:blank:]]/IS  /[\n\x0b\x0c\x0d[:blank:]]/IS
2019  Capturing subpattern count = 0  Capturing subpattern count = 0
2020    Contains explicit CR or LF match
2021  No options  No options
2022  No first char  No first char
2023  No need char  No need char
2024    Subject length lower bound = 1
2025  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2026    
2027  /^[[:cntrl:]]/D  /^[[:cntrl:]]/DZ
2028  ------------------------------------------------------------------  ------------------------------------------------------------------
2029    0  37 Bra 0          Bra
2030    3     ^          ^
2031    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
2032   37  37 Ket          Ket
2033   40     End          End
2034  ------------------------------------------------------------------  ------------------------------------------------------------------
2035  Capturing subpattern count = 0  Capturing subpattern count = 0
2036  Options: anchored  Options: anchored
2037  No first char  No first char
2038  No need char  No need char
2039    
2040  /^[[:digit:]]/D  /^[[:digit:]]/DZ
2041  ------------------------------------------------------------------  ------------------------------------------------------------------
2042    0  37 Bra 0          Bra
2043    3     ^          ^
2044    4     [0-9]          [0-9]
2045   37  37 Ket          Ket
2046   40     End          End
2047  ------------------------------------------------------------------  ------------------------------------------------------------------
2048  Capturing subpattern count = 0  Capturing subpattern count = 0
2049  Options: anchored  Options: anchored
2050  No first char  No first char
2051  No need char  No need char
2052    
2053  /^[[:graph:]]/D  /^[[:graph:]]/DZ
2054  ------------------------------------------------------------------  ------------------------------------------------------------------
2055    0  37 Bra 0          Bra
2056    3     ^          ^
2057    4     [!-~]          [!-~]
2058   37  37 Ket          Ket
2059   40     End          End
2060  ------------------------------------------------------------------  ------------------------------------------------------------------
2061  Capturing subpattern count = 0  Capturing subpattern count = 0
2062  Options: anchored  Options: anchored
2063  No first char  No first char
2064  No need char  No need char
2065    
2066  /^[[:lower:]]/D  /^[[:lower:]]/DZ
2067  ------------------------------------------------------------------  ------------------------------------------------------------------
2068    0  37 Bra 0          Bra
2069    3     ^          ^
2070    4     [a-z]          [a-z]
2071   37  37 Ket          Ket
2072   40     End          End
2073  ------------------------------------------------------------------  ------------------------------------------------------------------
2074  Capturing subpattern count = 0  Capturing subpattern count = 0
2075  Options: anchored  Options: anchored
2076  No first char  No first char
2077  No need char  No need char
2078    
2079  /^[[:print:]]/D  /^[[:print:]]/DZ
2080  ------------------------------------------------------------------  ------------------------------------------------------------------
2081    0  37 Bra 0          Bra
2082    3     ^          ^
2083    4     [ -~]          [ -~]
2084   37  37 Ket          Ket
2085   40     End          End
2086  ------------------------------------------------------------------  ------------------------------------------------------------------
2087  Capturing subpattern count = 0  Capturing subpattern count = 0
2088  Options: anchored  Options: anchored
2089  No first char  No first char
2090  No need char  No need char
2091    
2092  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2093  ------------------------------------------------------------------  ------------------------------------------------------------------
2094    0  37 Bra 0          Bra
2095    3     ^          ^
2096    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2097   37  37 Ket          Ket
2098   40     End          End
2099  ------------------------------------------------------------------  ------------------------------------------------------------------
2100  Capturing subpattern count = 0  Capturing subpattern count = 0
2101  Options: anchored  Options: anchored
2102  No first char  No first char
2103  No need char  No need char
2104    
2105  /^[[:space:]]/D  /^[[:space:]]/DZ
2106  ------------------------------------------------------------------  ------------------------------------------------------------------
2107    0  37 Bra 0          Bra
2108    3     ^          ^
2109    4     [\x09-\x0d ]          [\x09-\x0d ]
2110   37  37 Ket          Ket
2111   40     End          End
2112  ------------------------------------------------------------------  ------------------------------------------------------------------
2113  Capturing subpattern count = 0  Capturing subpattern count = 0
2114  Options: anchored  Options: anchored
2115  No first char  No first char
2116  No need char  No need char
2117    
2118  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2119  ------------------------------------------------------------------  ------------------------------------------------------------------
2120    0  37 Bra 0          Bra
2121    3     ^          ^
2122    4     [A-Z]          [A-Z]
2123   37  37 Ket          Ket
2124   40     End          End
2125  ------------------------------------------------------------------  ------------------------------------------------------------------
2126  Capturing subpattern count = 0  Capturing subpattern count = 0
2127  Options: anchored  Options: anchored
2128  No first char  No first char
2129  No need char  No need char
2130    
2131  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2132  ------------------------------------------------------------------  ------------------------------------------------------------------
2133    0  37 Bra 0          Bra
2134    3     ^          ^
2135    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2136   37  37 Ket          Ket
2137   40     End          End
2138  ------------------------------------------------------------------  ------------------------------------------------------------------
2139  Capturing subpattern count = 0  Capturing subpattern count = 0
2140  Options: anchored  Options: anchored
2141  No first char  No first char
2142  No need char  No need char
2143    
2144  /^[[:word:]]/D  /^[[:word:]]/DZ
2145  ------------------------------------------------------------------  ------------------------------------------------------------------
2146    0  37 Bra 0          Bra
2147    3     ^          ^
2148    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2149   37  37 Ket          Ket
2150   40     End          End
2151  ------------------------------------------------------------------  ------------------------------------------------------------------
2152  Capturing subpattern count = 0  Capturing subpattern count = 0
2153  Options: anchored  Options: anchored
2154  No first char  No first char
2155  No need char  No need char
2156    
2157  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2158  ------------------------------------------------------------------  ------------------------------------------------------------------
2159    0  37 Bra 0          Bra
2160    3     ^          ^
2161    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2162   37  37 Ket          Ket
2163   40     End          End
2164  ------------------------------------------------------------------  ------------------------------------------------------------------
2165  Capturing subpattern count = 0  Capturing subpattern count = 0
2166  Options: anchored  Options: anchored
2167  No first char  No first char
2168  No need char  No need char
2169    
2170  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2171  ------------------------------------------------------------------  ------------------------------------------------------------------
2172    0  37 Bra 0          Bra
2173    3     ^          ^
2174    4     [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2175   37  37 Ket          Ket
2176   40     End          End
2177  ------------------------------------------------------------------  ------------------------------------------------------------------
2178  Capturing subpattern count = 0  Capturing subpattern count = 0
2179  Options: anchored  Options: anchored
2180  No first char  No first char
2181  No need char  No need char
2182    
2183  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2184  ------------------------------------------------------------------  ------------------------------------------------------------------
2185    0  37 Bra 0          Bra
2186    3     ^          ^
2187    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2188   37  37 Ket          Ket
2189   40     End          End
2190  ------------------------------------------------------------------  ------------------------------------------------------------------
2191  Capturing subpattern count = 0  Capturing subpattern count = 0
2192  Options: anchored  Options: anchored
2193  No first char  No first char
2194  No need char  No need char
2195    
2196  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2197  ------------------------------------------------------------------  ------------------------------------------------------------------
2198    0  36 Bra 0          Bra
2199    3     [%01A-Za-z]          [%01A-Za-z]
2200   36  36 Ket          Ket
2201   39     End          End
2202  ------------------------------------------------------------------  ------------------------------------------------------------------
2203  Capturing subpattern count = 0  Capturing subpattern count = 0
2204  No options  No options
2205  No first char  No first char
2206  No need char  No need char
2207    
2208  /[[.ch.]]/  /[[.ch.]]/I
2209  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2210    
2211  /[[=ch=]]/  /[[=ch=]]/I
2212  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2213    
2214  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2215  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2216    
2217  /[[:upper:]]/i  /[[:upper:]]/Ii
2218  Capturing subpattern count = 0  Capturing subpattern count = 0
2219  Options: caseless  Options: caseless
2220  No first char  No first char
2221  No need char  No need char
2222      A      A
2223   0: A   0: A
2224      a      a
2225   0: a   0: a
2226    
2227  /[[:lower:]]/i  /[[:lower:]]/Ii
2228  Capturing subpattern count = 0  Capturing subpattern count = 0
2229  Options: caseless  Options: caseless
2230  No first char  No first char
2231  No need char  No need char
2232      A      A
2233   0: A   0: A
2234      a      a
2235   0: a   0: a
2236    
2237  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2238  Capturing subpattern count = 1  Capturing subpattern count = 1
2239  Options: caseless  Options: caseless
 Case state changes  
2240  No first char  No first char
2241  No need char  No need char
2242      ab      ab
# Line 2237  No need char Line 2250  No need char
2250   1: a   1: a
2251      Ab      Ab
2252  No match  No match
2253      AB      AB
2254  No match  No match
2255    
2256  /[\200-\410]/  /[\200-\110]/I
2257  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2258    
2259  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2260  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2261    
2262  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2263  Capturing subpattern count = 0  Capturing subpattern count = 0
2264  No options  No options
2265  First char = 'T'  First char = 'T'
2266  Need char = 'd'  Need char = 'd'
2267    
2268  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\w+)\s+(\270)/I
2269  Capturing subpattern count = 271  Capturing subpattern count = 271
2270  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2271  No options  No options
2272  No first char  No first char
2273  No need char  No need char
# Line 2533  No need char Line 2545  No need char
2545  270: ABC  270: ABC
2546  271: ABC  271: ABC
2547    
2548  /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
2549  Capturing subpattern count = 0  Capturing subpattern count = 0
2550  No options  No options
2551  First char = 'T'  First char = 'T'
2552  Need char = 't'  Need char = 't'
2553    
2554  /(main(O)?)+/  /(main(O)?)+/I
2555  Capturing subpattern count = 2  Capturing subpattern count = 2
2556  No options  No options
2557  First char = 'm'  First char = 'm'
# Line 2551  Need char = 'n' Line 2563  Need char = 'n'
2563   0: mainOmain   0: mainOmain
2564   1: main   1: main
2565   2: O   2: O
2566    
2567  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2568  Capturing subpattern count = 1  Capturing subpattern count = 1
2569  No options  No options
2570  First char = 'T'  First char = 'T'
2571  Need char = 's'  Need char = 's'
2572    
2573  /^(a(b)?)+$/  /^(a(b)?)+$/I
2574  Capturing subpattern count = 2  Capturing subpattern count = 2
2575  Options: anchored  Options: anchored
2576  No first char  No first char
# Line 2567  No need char Line 2579  No need char
2579   0: aba   0: aba
2580   1: a   1: a
2581   2: b   2: b
2582    
2583  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2584  Capturing subpattern count = 2  Capturing subpattern count = 2
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: aa   1: aa
2591   2: bb   2: bb
2592    
2593  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2594  Capturing subpattern count = 2  Capturing subpattern count = 2
2595  Options: anchored  Options: anchored
2596  No first char  No first char
2597  No need char  No need char
2598      aabbaa      aabbaa
2599   0: aabbaa   0: aabbaa
2600   1: aa   1: aa
2601   2: bb   2: bb
2602    
2603  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/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: aa   1: aa
2611   2: bb   2: bb
2612    
2613  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/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(b(b))?)+$/  /^(aa(b(b))?)+$/I
2623  Capturing subpattern count = 3  Capturing subpattern count = 3
2624  Options: anchored  Options: anchored
2625  No first char  No first char
2626  No need char  No need char
2627      aabbaa      aabbaa
2628   0: aabbaa   0: aabbaa
2629   1: aa   1: aa
2630   2: bb   2: bb
2631   3: b   3: b
2632    
2633  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2634  Capturing subpattern count = 2  Capturing subpattern count = 2
2635  Options: anchored  Options: anchored
2636  No first char  No first char
2637  No need char  No need char
2638      aabbaa      aabbaa
2639   0: aabbaa   0: aabbaa
2640   1: bb   1: bb
2641   2: b   2: b
2642    
2643  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2644  Capturing subpattern count = 1  Capturing subpattern count = 1
2645  Options: anchored  Options: anchored
2646  No first char  No first char
2647  No need char  No need char
2648      aabbaa      aabbaa
2649   0: aabbaa   0: aabbaa
2650   1: bb   1: bb
2651    
2652  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2653  Capturing subpattern count = 1  Capturing subpattern count = 1
2654  Options: anchored  Options: anchored
2655  No first char  No first char
2656  No need char  No need char
2657      aabbbaa      aabbbaa
2658   0: aabbbaa   0: aabbbaa
2659   1: bbb   1: bbb
2660    
2661  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2662  Capturing subpattern count = 1  Capturing subpattern count = 1
2663  Options: anchored  Options: anchored
2664  No first char  No first char
2665  No need char  No need char
2666      aabbbaa      aabbbaa
2667   0: aabbbaa   0: aabbbaa
2668   1: bbb   1: bbb
2669    
2670  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2671  Capturing subpattern count = 1  Capturing subpattern count = 1
2672  Options: anchored  Options: anchored
2673  No first char  No first char
2674  No need char  No need char
2675      aabbaa      aabbaa
2676   0: aabbaa   0: aabbaa
2677   1: b   1: b
2678    
2679  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2680  Capturing subpattern count = 1  Capturing subpattern count = 1
2681  Options: anchored  Options: anchored
2682  No first char  No first char
2683  No need char  No need char
2684      aabbbaa      aabbbaa
2685   0: aabbbaa   0: aabbbaa
2686   1: bb   1: bb
2687    
2688  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2689  Capturing subpattern count = 3  Capturing subpattern count = 3
2690  Options: anchored  Options: anchored
2691  No first char  No first char
2692  No need char  No need char
2693      aabbbaa      aabbbaa
2694   0: aabbbaa   0: aabbbaa
2695   1: aa   1: aa
2696   2: bbb   2: bbb
2697   3: bb   3: bb
2698    
2699  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2700  Capturing subpattern count = 3  Capturing subpattern count = 3
2701  Options: anchored  Options: anchored
2702  No first char  No first char
2703  No need char  No need char
2704      aabbbbaa      aabbbbaa
2705   0: aabbbbaa   0: aabbbbaa
2706   1: aa   1: aa
2707   2: bbbb   2: bbbb
2708   3: bb   3: bb
2709    
2710  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2711  Capturing subpattern count = 0  Capturing subpattern count = 0
2712  No options  No options
2713  First char = '-'  First char = '-'
2714  Need char = '-'  Need char = '-'
2715    
2716  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2717  ------------------------------------------------------------------  ------------------------------------------------------------------
2718    0   3 Bra 0          Bra
2719    3   3 Ket          Ket
2720    6     End          End
2721  ------------------------------------------------------------------  ------------------------------------------------------------------
2722  Capturing subpattern count = 0  Capturing subpattern count = 0
2723  Options: extended  Options: extended
2724  No first char  No first char
2725  No need char  No need char
2726    
2727  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2728  ------------------------------------------------------------------  ------------------------------------------------------------------
2729    0   5 Bra 0          Bra
2730    3     a          a
2731    5   5 Ket          Ket
2732    8     End          End
2733  ------------------------------------------------------------------  ------------------------------------------------------------------
2734  Capturing subpattern count = 0  Capturing subpattern count = 0
2735  Options: extended  Options: extended
2736  First char = 'a'  First char = 'a'
2737  No need char  No need char
2738    
2739  /[\s]/D  /[\s]/DZ
2740  ------------------------------------------------------------------  ------------------------------------------------------------------
2741    0  36 Bra 0          Bra
2742    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
2743   36  36 Ket          Ket
2744   39     End          End
2745  ------------------------------------------------------------------  ------------------------------------------------------------------
2746  Capturing subpattern count = 0  Capturing subpattern count = 0
2747  No options  No options
2748  No first char  No first char
2749  No need char  No need char
2750    
2751  /[\S]/D  /[\S]/DZ
2752  ------------------------------------------------------------------  ------------------------------------------------------------------
2753    0  36 Bra 0          Bra
2754    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2755   36  36 Ket          Ket
2756   39     End          End
2757  ------------------------------------------------------------------  ------------------------------------------------------------------
2758  Capturing subpattern count = 0  Capturing subpattern count = 0
2759  No options  No options
2760  No first char  No first char
2761  No need char  No need char
2762    
2763  /a(?i)b/D  /a(?i)b/DZ
2764  ------------------------------------------------------------------  ------------------------------------------------------------------
2765    0   9 Bra 0          Bra
2766    3     a          a
2767    5  01 Opt       01 Opt
2768    7  NC b       NC b
2769    9   9 Ket          Ket
2770   12     End          End
2771  ------------------------------------------------------------------  ------------------------------------------------------------------
2772  Capturing subpattern count = 0  Capturing subpattern count = 0
2773  No options  No options
 Case state changes  
2774  First char = 'a'  First char = 'a'
2775  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2776      ab      ab
2777   0: ab   0: ab
2778      aB      aB
2779   0: aB   0: aB
2780      *** Failers      *** Failers
2781  No match  No match
2782      AB      AB
2783  No match  No match
2784    
2785  /(a(?i)b)/D  /(a(?i)b)/DZ
2786  ------------------------------------------------------------------  ------------------------------------------------------------------
2787    0  17 Bra 0          Bra
2788    3   9 Bra 1          CBra 1
2789    6     a          a
2790    8  01 Opt       01 Opt
2791   10  NC b       NC b
2792   12   9 Ket          Ket
2793   15  00 Opt       00 Opt
2794   17  17 Ket          Ket
2795   20     End          End
2796  ------------------------------------------------------------------  ------------------------------------------------------------------
2797  Capturing subpattern count = 1  Capturing subpattern count = 1
2798  No options  No options
 Case state changes  
2799  First char = 'a'  First char = 'a'
2800  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2801      ab      ab
# Line 2796  Need char = 'b' (caseless) Line 2804  Need char = 'b' (caseless)
2804      aB      aB
2805   0: aB   0: aB
2806   1: aB   1: aB
2807      *** Failers      *** Failers
2808  No match  No match
2809      AB      AB
2810  No match  No match
2811    
2812  /   (?i)abc/xD  /   (?i)abc/IxDZ
2813  ------------------------------------------------------------------  ------------------------------------------------------------------
2814    0   9 Bra 0          Bra
2815    3  NC abc       NC abc
2816    9   9 Ket          Ket
2817   12     End          End
2818  ------------------------------------------------------------------  ------------------------------------------------------------------
2819  Capturing subpattern count = 0  Capturing subpattern count = 0
2820  Options: caseless extended  Options: caseless extended
# Line 2814  First char = 'a' (caseless) Line 2822  First char = 'a' (caseless)
2822  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2823    
2824  /#this is a comment  /#this is a comment
2825    (?i)abc/xD    (?i)abc/IxDZ
2826  ------------------------------------------------------------------  ------------------------------------------------------------------
2827    0   9 Bra 0          Bra
2828    3  NC abc       NC abc
2829    9   9 Ket          Ket
2830   12     End          End
2831  ------------------------------------------------------------------  ------------------------------------------------------------------
2832  Capturing subpattern count = 0  Capturing subpattern count = 0
2833  Options: caseless extended  Options: caseless extended
2834  First char = 'a' (caseless)  First char = 'a' (caseless)
2835  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2836    
2837  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2838  ------------------------------------------------------------------  ------------------------------------------------------------------
2839    0 603 Bra 0          Bra
2840    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2841  603 603 Ket          Ket
2842  606     End          End
2843  ------------------------------------------------------------------  ------------------------------------------------------------------
2844  Capturing subpattern count = 0  Capturing subpattern count = 0
2845  No options  No options
2846  First char = '1'  First char = '1'
2847  Need char = '0'  Need char = '0'
2848    
2849  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2850  ------------------------------------------------------------------  ------------------------------------------------------------------
2851    0 603 Bra 0          Bra
2852    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2853  603 603 Ket          Ket
2854  606     End          End
2855  ------------------------------------------------------------------  ------------------------------------------------------------------
2856  Capturing subpattern count = 0  Capturing subpattern count = 0
2857  No options  No options
2858  First char = '1'  First char = '1'
2859  Need char = '0'  Need char = '0'
2860    
2861  /\Q\E/D  /\Q\E/DZ
2862  ------------------------------------------------------------------  ------------------------------------------------------------------
2863    0   3 Bra 0          Bra
2864    3   3 Ket          Ket
2865    6     End          End
2866  ------------------------------------------------------------------  ------------------------------------------------------------------
2867  Capturing subpattern count = 0  Capturing subpattern count = 0
2868  No options  No options
# Line 2863  No need char Line 2871  No need char
2871      \      \
2872   0:   0:
2873    
2874  /\Q\Ex/D  /\Q\Ex/DZ
2875  ------------------------------------------------------------------  ------------------------------------------------------------------
2876    0   5 Bra 0          Bra
2877    3     x          x
2878    5   5 Ket          Ket
2879    8     End          End
2880  ------------------------------------------------------------------  ------------------------------------------------------------------
2881  Capturing subpattern count = 0  Capturing subpattern count = 0
2882  No options  No options
2883  First char = 'x'  First char = 'x'
2884  No need char  No need char
2885    
2886  / \Q\E/D  / \Q\E/DZ
2887  ------------------------------------------------------------------  ------------------------------------------------------------------
2888    0   5 Bra 0          Bra
2889    3  
2890    5   5 Ket          Ket
2891    8     End          End
2892  ------------------------------------------------------------------  ------------------------------------------------------------------
2893  Capturing subpattern count = 0  Capturing subpattern count = 0
2894  No options  No options
2895  First char = ' '  First char = ' '
2896  No need char  No need char
2897    
2898  /a\Q\E/D  /a\Q\E/DZ
2899  ------------------------------------------------------------------  ------------------------------------------------------------------
2900    0   5 Bra 0          Bra
2901    3     a          a
2902    5   5 Ket          Ket
2903    8     End          End
2904  ------------------------------------------------------------------  ------------------------------------------------------------------
2905  Capturing subpattern count = 0  Capturing subpattern count = 0
2906  No options  No options
# Line 2902  No need char Line 2910  No need char
2910   0: a   0: a
2911    bca    bca
2912   0: a   0: a
2913    bac    bac
2914   0: a   0: a
2915    
2916  /a\Q\Eb/D  /a\Q\Eb/DZ
2917  ------------------------------------------------------------------  ------------------------------------------------------------------
2918    0   7 Bra 0          Bra
2919    3     ab          ab
2920    7   7 Ket          Ket
2921   10     End          End
2922  ------------------------------------------------------------------  ------------------------------------------------------------------
2923  Capturing subpattern count = 0  Capturing subpattern count = 0
2924  No options  No options
# Line 2919  Need char = 'b' Line 2927  Need char = 'b'
2927    abc    abc
2928   0: ab   0: ab
2929    
2930  /\Q\Eabc/D  /\Q\Eabc/DZ
2931  ------------------------------------------------------------------  ------------------------------------------------------------------
2932    0   9 Bra 0          Bra
2933    3     abc          abc
2934    9   9 Ket          Ket
2935   12     End          End
2936  ------------------------------------------------------------------  ------------------------------------------------------------------
2937  Capturing subpattern count = 0  Capturing subpattern count = 0
2938  No options  No options
2939  First char = 'a'  First char = 'a'
2940  Need char = 'c'  Need char = 'c'
2941    
2942  /x*+\w/D  /x*+\w/DZ
2943  ------------------------------------------------------------------  ------------------------------------------------------------------
2944    0  12 Bra 0          Bra
2945    3   5 Once          x*+
2946    6     x*          \w
2947    8   5 Ket          Ket
2948   11     \w          End
  12  12 Ket  
  15     End  
2949  ------------------------------------------------------------------  ------------------------------------------------------------------
2950  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2951  No options  No options
2952  No first char  No first char
2953  No need char  No need char
# Line 2950  No need char Line 2955  No need char
2955   0: F   0: F
2956      xxxxx      xxxxx
2957  No match  No match
2958    
2959  /x?+/D  /x?+/DZ
2960  ------------------------------------------------------------------  ------------------------------------------------------------------
2961    0  11 Bra 0          Bra
2962    3   5 Once          x?+
2963    6     x?          Ket
2964    8   5 Ket          End
  11  11 Ket  
  14     End  
2965  ------------------------------------------------------------------  ------------------------------------------------------------------
2966  Capturing subpattern count = 0  Capturing subpattern count = 0
2967  No options  No options
2968  No first char  No first char
2969  No need char  No need char
2970    
2971  /x++/D  /x++/DZ
2972  ------------------------------------------------------------------  ------------------------------------------------------------------
2973    0  11 Bra 0          Bra
2974    3   5 Once          x++
2975    6     x+          Ket
2976    8   5 Ket          End
  11  11 Ket  
  14     End  
2977  ------------------------------------------------------------------  ------------------------------------------------------------------
2978  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2979  No options  No options
2980  First char = 'x'  First char = 'x'
2981  No need char  No need char
2982    
2983  /x{1,3}+/D  /x{1,3}+/DZ
2984  ------------------------------------------------------------------  ------------------------------------------------------------------
2985    0  15 Bra 0          Bra
2986    3   9 Once          Once
2987    6     x          x
2988    8     x{,2}          x{0,2}
2989   12   9 Ket          Ket
2990   15  15 Ket          Ket
2991   18     End          End
2992  ------------------------------------------------------------------  ------------------------------------------------------------------
2993  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2994  No options  No options
2995  First char = 'x'  First char = 'x'
2996  No need char  No need char
2997    
2998  /(x)*+/D  /(x)*+/DZ
2999  ------------------------------------------------------------------  ------------------------------------------------------------------
3000    0  18 Bra 0          Bra
3001    3  12 Once          Once
3002    6     Brazero          Brazero
3003    7   5 Bra 1          CBra 1
3004   10     x          x
3005   12   5 KetRmax          KetRmax
3006   15  12 Ket          Ket
3007   18  18 Ket          Ket
3008   21     End          End
3009  ------------------------------------------------------------------  ------------------------------------------------------------------
3010  Capturing subpattern count = 1  Capturing subpattern count = 1
3011  No options  No options
3012  No first char  No first char
3013  No need char  No need char
3014    
3015  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
3016  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3017  Options: anchored  Options: anchored
3018  No first char  No first char
3019  No need char  No need char
# Line 3026  No need char Line 3024  No need char
3024  No match  No match
3025      this is not a line with only words and spaces!      this is not a line with only words and spaces!
3026  No match  No match
3027    
3028  /(\d++)(\w)/  /(\d++)(\w)/I
3029  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3030  No options  No options
3031  No first char  No first char
3032  No need char  No need char
# Line 3039  No need char Line 3036  No need char
3036   2: a   2: a
3037      *** Failers      *** Failers
3038  No match  No match
3039      12345+      12345+
3040  No match  No match
3041    
3042  /a++b/  /a++b/I
3043  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3044  No options  No options
3045  First char = 'a'  First char = 'a'
3046  Need char = 'b'  Need char = 'b'
3047      aaab      aaab
3048   0: aaab   0: aaab
3049    
3050  /(a++b)/  /(a++b)/I
3051  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3052  No options  No options
3053  First char = 'a'  First char = 'a'
3054  Need char = 'b'  Need char = 'b'
# Line 3061  Need char = 'b' Line 3056  Need char = 'b'
3056   0: aaab   0: aaab
3057   1: aaab   1: aaab
3058    
3059  /(a++)b/  /(a++)b/I
3060  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3061  No options  No options
3062  First char = 'a'  First char = 'a'
3063  Need char = 'b'  Need char = 'b'
# Line 3071  Need char = 'b' Line 3065  Need char = 'b'
3065   0: aaab   0: aaab
3066   1: aaa   1: aaa
3067    
3068  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3069  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3070  No options  No options
3071  No first char  No first char
3072  No need char  No need char
3073      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3074   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3075   1: x   1: x
3076    
3077  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3078  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3079  No options  No options
3080  First char = '('  First char = '('
3081  Need char = ')'  Need char = ')'
# Line 3095  Need char = ')' Line 3087  Need char = ')'
3087   1: xyz   1: xyz
3088      *** Failers      *** Failers
3089  No match  No match
3090      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3091  No match  No match
3092    
3093  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3094  ------------------------------------------------------------------  ------------------------------------------------------------------
3095    0  53 Bra 0          Bra
3096    3  47 Once          Once
3097    6   9 Bra 1          CBra 1
3098    9     abc          abc
3099   15   9 Ket          Ket
3100   18     Brazero          Brazero
3101   19  28 Bra 0          Bra
3102   22   9 Bra 1          CBra 1
3103   25     abc          abc
3104   31   9 Ket          Ket
3105   34     Brazero          Brazero
3106   35   9 Bra 1          CBra 1
3107   38     abc          abc
3108   44   9 Ket          Ket
3109   47  28 Ket          Ket
3110   50  47 Ket          Ket
3111   53  53 Ket          Ket
3112   56     End          End
3113  ------------------------------------------------------------------  ------------------------------------------------------------------
3114  Capturing subpattern count = 1  Capturing subpattern count = 1
3115  No options  No options
3116  First char = 'a'  First char = 'a'
3117  Need char = 'c'  Need char = 'c'
3118    
3119  /a+?+/  /a+?+/I
3120  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3121    
3122  /a{2,3}?+b/  /a{2,3}?+b/I
3123  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3124    
3125  /(?U)a+?+/  /(?U)a+?+/I
3126  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3127    
3128  /a{2,3}?+b/U  /a{2,3}?+b/IU
3129  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3130    
3131  /x(?U)a++b/D  /x(?U)a++b/DZ
3132  ------------------------------------------------------------------  ------------------------------------------------------------------
3133    0  15 Bra 0          Bra
3134    3     x          x
3135    5   5 Once          a++
3136    8     a+          b
3137   10   5 Ket          Ket
3138   13     b          End
  15  15 Ket  
  18     End  
3139  ------------------------------------------------------------------  ------------------------------------------------------------------
3140  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3141  No options  No options
3142  First char = 'x'  First char = 'x'
3143  Need char = 'b'  Need char = 'b'
3144      xaaaab      xaaaab
3145   0: xaaaab   0: xaaaab
3146    
3147  /(?U)xa++b/D  /(?U)xa++b/DZ
3148  ------------------------------------------------------------------  ------------------------------------------------------------------
3149    0  15 Bra 0          Bra
3150    3     x          x
3151    5   5 Once          a++
3152    8     a+          b
3153   10   5 Ket          Ket
3154   13     b          End
  15  15 Ket  
  18     End  
3155  ------------------------------------------------------------------  ------------------------------------------------------------------
3156  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3157  Options: ungreedy  Options: ungreedy
3158  First char = 'x'  First char = 'x'
3159  Need char = 'b'  Need char = 'b'
3160      xaaaab      xaaaab
3161   0: xaaaab   0: xaaaab
3162    
3163  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3164  ------------------------------------------------------------------  ------------------------------------------------------------------
3165    0 106 Bra 0          Bra
3166    3     ^          ^
3167    4  99 Bra 1          CBra 1
3168    7   5 Bra 2          CBra 2
3169   10     a+          a+
3170   12   5 Ket          Ket
3171   15  37 Bra 3          CBra 3
3172   18     [ab]+?          [ab]+?
3173   52  37 Ket          Ket
3174   55  37 Bra 4          CBra 4
3175   58     [bc]+          [bc]+
3176   92  37 Ket          Ket
3177   95   5 Bra 5          CBra 5
3178   98     \w*          \w*
3179  100   5 Ket          Ket
3180  103  99 Ket          Ket
3181  106 106 Ket          Ket
3182  109     End          End
3183  ------------------------------------------------------------------  ------------------------------------------------------------------
3184  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3185  Options: anchored  Options: anchored
3186  No first char  No first char
3187  No need char  No need char
3188    
3189  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3190  ------------------------------------------------------------------  ------------------------------------------------------------------
3191    0  10 Bra 0          Bra
3192    3     ^          ^
3193    4     x          x
3194    6     a+?          a++
3195    8     b          b
3196   10  10 Ket          Ket
3197   13     End          End
3198  ------------------------------------------------------------------  ------------------------------------------------------------------
3199  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3200  Options: anchored  Options: anchored
3201  No first char  No first char
3202  Need char = 'b'  Need char = 'b'
3203    
3204  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3205  ------------------------------------------------------------------  ------------------------------------------------------------------
3206    0  16 Bra 0          Bra
3207    3     ^          ^
3208    4     x          x
3209    6   5 Bra 1          CBra 1
3210    9     a+?          a+?
3211   11   5 Ket          Ket
3212   14     b          b
3213   16  16 Ket          Ket
3214   19     End          End
3215  ------------------------------------------------------------------  ------------------------------------------------------------------
3216  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3217  Options: anchored  Options: anchored
3218  No first char  No first char
3219  Need char = 'b'  Need char = 'b'
3220    
3221  /[.x.]/  /[.x.]/I
3222  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3223    
3224  /[=x=]/  /[=x=]/I
3225  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3226    
3227  /[:x:]/  /[:x:]/I
3228  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
3229    
3230  /\l/  /\l/I
3231  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3232    
3233  /\L/  /\L/I
3234  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3235    
3236  /\N{name}/  /\N{name}/I
3237  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3238    
3239  /\u/  /\u/I
3240  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3241    
3242  /\U/  /\U/I
3243  Failed: PCRE does not support \L, \l, \N, \U, or \u at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3244    
3245  /[/  /[/I
3246  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3247    
3248  /[a-/  /[a-/I
3249  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3250    
3251  /[[:space:]/  /[[:space:]/I
3252  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3253    
3254  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3255  ------------------------------------------------------------------  ------------------------------------------------------------------
3256    0  36 Bra 0          Bra
3257    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
3258   36  36 Ket          Ket
3259   39     End          End
3260  ------------------------------------------------------------------  ------------------------------------------------------------------
3261  Capturing subpattern count = 0  Capturing subpattern count = 0
3262  No options  No options
3263  No first char  No first char
3264  No need char  No need char
3265    
3266  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3267  ------------------------------------------------------------------  ------------------------------------------------------------------
3268    0  36 Bra 0          Bra
3269    3     [\x09-\x0d ]          [\x09-\x0d ]
3270   36  36 Ket          Ket
3271   39     End          End
3272  ------------------------------------------------------------------  ------------------------------------------------------------------
3273  Capturing subpattern count = 0  Capturing subpattern count = 0
3274  No options  No options
3275  No first char  No first char
3276  No need char  No need char
3277    
3278  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3279  ------------------------------------------------------------------  ------------------------------------------------------------------
3280    0  36 Bra 0          Bra
3281    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3282   36  36 Ket          Ket
3283   39     End          End
3284  ------------------------------------------------------------------  ------------------------------------------------------------------
3285  Capturing subpattern count = 0  Capturing subpattern count = 0
3286  No options  No options
3287  No first char  No first char
3288  No need char  No need char
3289    
3290  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3291  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3292  Options: extended  Options: extended
3293  First char = '<'  First char = '<'
3294  Need char = '>'  Need char = '>'
# Line 3321  Need char = '>' Line 3300  Need char = '>'
3300   0: <abc <123> hij>   0: <abc <123> hij>
3301      <abc <def> hij>      <abc <def> hij>
3302   0: <def>   0: <def>
3303      <abc<>def>      <abc<>def>
3304   0: <abc<>def>   0: <abc<>def>
3305      <abc<>      <abc<>
3306   0: <>   0: <>
3307      *** Failers      *** Failers
3308  No match  No match
3309      <abc      <abc
3310  No match  No match
3311    
3312  |8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|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  
3313  ------------------------------------------------------------------  ------------------------------------------------------------------
3314    0 822 Bra 0          Bra
3315    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
3316  821     \b          \b
3317  822 822 Ket          Ket
3318  825     End          End
3319  ------------------------------------------------------------------  ------------------------------------------------------------------
3320  Capturing subpattern count = 0  Capturing subpattern count = 0
3321  No options  No options
3322  First char = '8'  First char = '8'
3323  Need char = 'X'  Need char = 'X'
3324    
3325  |\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\<EjmhUZ\?\.akp2dF\>qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|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  
3326  ------------------------------------------------------------------  ------------------------------------------------------------------
3327    0 812 Bra 0          Bra
3328    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
3329  811     \b          \b
3330  812 812 Ket          Ket
3331  815     End          End
3332  ------------------------------------------------------------------  ------------------------------------------------------------------
3333  Capturing subpattern count = 0  Capturing subpattern count = 0
3334  No options  No options
# Line 3361  Need char = 'X' Line 3338  Need char = 'X'
3338  /(.*)\d+\1/I  /(.*)\d+\1/I
3339  Capturing subpattern count = 1  Capturing subpattern count = 1
3340  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3341  No options  No options
3342  No first char  No first char
3343  No need char  No need char
3344    
3345  /(.*)\d+/I  /(.*)\d+/I
3346  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3347  No options  No options
3348  First char at start or follows \n  First char at start or follows newline
3349  No need char  No need char
3350    
3351  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3352  Capturing subpattern count = 1  Capturing subpattern count = 1
3353  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3354  Options: dotall  Options: dotall
3355  No first char  No first char
3356  No need char  No need char
3357    
3358  /(.*)\d+/Is  /(.*)\d+/Is
3359  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3360  Options: anchored dotall  Options: anchored dotall
3361  No first char  No first char
3362  No need char  No need char
# Line 3391  No need char Line 3364  No need char
3364  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3365  Capturing subpattern count = 2  Capturing subpattern count = 2
3366  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3367  No options  No options
3368  First char at start or follows \n  First char at start or follows newline
3369  Need char = 'z'  Need char = 'z'
3370    
3371  /((.*))\d+\1/I  /((.*))\d+\1/I
3372  Capturing subpattern count = 2  Capturing subpattern count = 2
3373  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3374  No options  No options
3375  No first char  No first char
3376  No need char  No need char
# Line 3407  No need char Line 3378  No need char
3378   0: bc123bc   0: bc123bc
3379   1: bc   1: bc
3380   2: bc   2: bc
3381    
3382  /a[b]/I  /a[b]/I
3383  Capturing subpattern count = 0  Capturing subpattern count = 0
3384  No options  No options
# Line 3416  Need char = 'b' Line 3387  Need char = 'b'
3387    
3388  /(?=a).*/I  /(?=a).*/I
3389  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3390  No options  No options
3391  First char = 'a'  First char = 'a'
3392  No need char  No need char
3393    
3394  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3395  Capturing subpattern count = 0  Capturing subpattern count = 0
3396  Options: caseless  Options: caseless
3397  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3430  Need char = 'z' (caseless) Line 3400  Need char = 'z' (caseless)
3400  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3401  Capturing subpattern count = 0  Capturing subpattern count = 0
3402  No options  No options
 Case state changes  
3403  First char = 'a'  First char = 'a'
3404  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3405    
# Line 3464  No options Line 3433  No options
3433  No first char  No first char
3434  Need char = 'a'  Need char = 'a'
3435    
3436  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3437  Capturing subpattern count = 0  Capturing subpattern count = 1
3438  No options  No options
3439  First char = 'a'  First char = 'a'
3440  No need char  No need char
3441    
3442  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3443  Capturing subpattern count = 0  Capturing subpattern count = 1
3444  No options  No options
3445  First char = 'a'  First char = 'a'
3446  Need char = 'z'  Need char = 'z'
3447    
3448  /(?(1)abz)/I  /(?(1)abz)(.)/I
3449  Capturing subpattern count = 0  Capturing subpattern count = 1
3450  No options  No options
3451  No first char  No first char
3452  No need char  No need char
3453    
3454  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3455  Capturing subpattern count = 0  Capturing subpattern count = 1
3456  No options  No options
3457  No first char  No first char
3458  Need char = '3'  Need char = '3'
# Line 3523  Capturing subpattern count = 0 Line 3492  Capturing subpattern count = 0
3492  No options  No options
3493  No first char  No first char
3494  No need char  No need char
3495    Subject length lower bound = 1
3496  Starting byte set: a b  Starting byte set: a b
3497    
3498  /[^a]/I  /[^a]/I
# Line 3542  Capturing subpattern count = 0 Line 3512  Capturing subpattern count = 0
3512  No options  No options
3513  No first char  No first char
3514  Need char = '6'  Need char = '6'
3515    Subject length lower bound = 4
3516  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
3517    
3518  /a^b/I  /a^b/I
# Line 3550  No options Line 3521  No options
3521  First char = 'a'  First char = 'a'
3522  Need char = 'b'  Need char = 'b'
3523    
3524  /^a/mI  /^a/Im
3525  Capturing subpattern count = 0  Capturing subpattern count = 0
3526  Options: multiline  Options: multiline
3527  First char at start or follows \n  First char at start or follows newline
3528  Need char = 'a'  Need char = 'a'
3529    abcde    abcde
3530   0: a   0: a
3531    xy\nabc    xy\nabc
3532   0: a   0: a
3533    *** Failers    *** Failers
3534  No match  No match
3535    xyabc    xyabc
3536  No match  No match
3537    
3538  /c|abc/I  /c|abc/I
# Line 3575  Capturing subpattern count = 0 Line 3546  Capturing subpattern count = 0
3546  Options: caseless  Options: caseless
3547  No first char  No first char
3548  No need char  No need char
3549    Subject length lower bound = 1
3550  Starting byte set: A B a b  Starting byte set: A B a b
3551    
3552  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3553  Capturing subpattern count = 0  Capturing subpattern count = 0
3554  No options  No options
 Case state changes  
3555  No first char  No first char
3556  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3557    Subject length lower bound = 3
3558  Starting byte set: a b  Starting byte set: a b
3559    
3560  /abc(?C)def/  /abc(?C)def/I
3561  Capturing subpattern count = 0  Capturing subpattern count = 0
3562  No options  No options
3563  First char = 'a'  First char = 'a'
# Line 3594  Need char = 'f' Line 3566  Need char = 'f'
3566  --->abcdef  --->abcdef
3567    0 ^  ^       d    0 ^  ^       d
3568   0: abcdef   0: abcdef
3569      1234abcdef      1234abcdef
3570  --->1234abcdef  --->1234abcdef
3571    0     ^  ^       d    0     ^  ^       d
3572   0: abcdef   0: abcdef
# Line 3602  Need char = 'f' Line 3574  Need char = 'f'
3574  No match  No match
3575      abcxyz      abcxyz
3576  No match  No match
3577      abcxyzf      abcxyzf
3578  --->abcxyzf  --->abcxyzf
3579    0 ^  ^        d    0 ^  ^        d
3580  No match  No match
3581    
3582  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3583  Capturing subpattern count = 0  Capturing subpattern count = 0
3584  No options  No options
3585  First char = 'a'  First char = 'a'
# Line 3617  Need char = 'f' Line 3589  Need char = 'f'
3589    0    ^  ^       d    0    ^  ^       d
3590    1    ^    ^     f    1    ^    ^     f
3591   0: abcdef   0: abcdef
3592    
3593  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/I
3594  Capturing subpattern count = 0  Capturing subpattern count = 0
3595  No options  No options
3596  No first char  No first char
# Line 3633  Need char = 'f' Line 3605  Need char = 'f'
3605   0: 4abcdef   0: 4abcdef
3606      *** Failers      *** Failers
3607  No match  No match
3608      abcdef      abcdef
3609  --->abcdef  --->abcdef
3610    1 ^          \d    1 ^          \d
3611    1  ^         \d    1  ^         \d
# Line 3642  No match Line 3614  No match
3614    1     ^      \d    1     ^      \d
3615    1      ^     \d    1      ^     \d
3616  No match  No match
3617    
3618  /(?C255)ab/  /(?C255)ab/I
3619  Capturing subpattern count = 0  Capturing subpattern count = 0
3620  No options  No options
3621  First char = 'a'  First char = 'a'
3622  Need char = 'b'  Need char = 'b'
3623    
3624  /(?C256)ab/  /(?C256)ab/I
3625  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3626    
3627  /(?Cab)xx/  /(?Cab)xx/I
3628  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3629    
3630  /(?C12vr)x/  /(?C12vr)x/I
3631  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3632    
3633  /abc(?C)def/  /abc(?C)def/I
3634  Capturing subpattern count = 0  Capturing subpattern count = 0
3635  No options  No options
3636  First char = 'a'  First char = 'a'
# Line 3670  No match Line 3642  No match
3642    0         ^  ^       d    0         ^  ^       d
3643   0: abcdef   0: abcdef
3644    
3645  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3646  Capturing subpattern count = 1  Capturing subpattern count = 1
3647  No options  No options
3648  First char = 'a'  First char = 'a'
# Line 3681  Need char = 'f' Line 3653  Need char = 'f'
3653    1    ^    ^     f    1    ^    ^     f
3654   0: abcdef   0: abcdef
3655   1: abc   1: abc
3656      123abcdef\C+      123abcdef\C+
3657  Callout 0: last capture = 1  Callout 0: last capture = 1
3658   0: <unset>   0: <unset>
3659   1: abc   1: abc
# Line 3694  Callout 1: last capture = 1 Line 3666  Callout 1: last capture = 1
3666         ^    ^     f         ^    ^     f
3667   0: abcdef   0: abcdef
3668   1: abc   1: abc
3669      123abcdef\C-      123abcdef\C-
3670   0: abcdef   0: abcdef
3671   1: abc   1: abc
3672      *** Failers      *** Failers
3673  No match  No match
3674      123abcdef\C!1      123abcdef\C!1
3675  --->123abcdef  --->123abcdef
3676    0    ^  ^       d    0    ^  ^       d
3677    1    ^    ^     f    1    ^    ^     f
3678  No match  No match
3679    
3680  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3681  Capturing subpattern count = 1  Capturing subpattern count = 1
3682  No options  No options
3683  No first char  No first char
# Line 3718  No need char Line 3690  No need char
3690    1 ^        ^    )    1 ^        ^    )
3691   0: abcabcabc   0: abcabcabc
3692   1: abc   1: abc
3693      abcabc\C!1!3      abcabc\C!1!3
3694  --->abcabc  --->abcabc
3695    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3696    1 ^  ^       )    1 ^  ^       )
# Line 3729  No need char Line 3701  No need char
3701  --->*** Failers  --->*** Failers
3702    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3703   0:   0:
3704      abcabcabc\C!1!3      abcabcabc\C!1!3
3705  --->abcabcabc  --->abcabcabc
3706    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3707    1 ^  ^          )    1 ^  ^          )
# Line 3738  No need char Line 3710  No need char
3710   0: abcabc   0: abcabc
3711   1: abc   1: abc
3712    
3713  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3714  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3715  No options  No options
3716  No first char  No first char
3717  No need char  No need char
# Line 3763  Callout 0: last capture = 1 Line 3734  Callout 0: last capture = 1
3734      ^     ^    )      ^     ^    )
3735   0: 123456   0: 123456
3736   1: 456   1: 456
3737      123456789\C+      123456789\C+
3738  Callout 0: last capture = -1  Callout 0: last capture = -1
3739   0: <unset>   0: <unset>
3740  --->123456789  --->123456789
# Line 3781  Callout 0: last capture = 1 Line 3752  Callout 0: last capture = 1
3752   0: 123456789   0: 123456789
3753   1: 789   1: 789
3754    
3755  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3756  Capturing subpattern count = 2  Capturing subpattern count = 2
3757  No options  No options
3758  First char = 'x'  First char = 'x'
# Line 3800  Callout 1: last capture = -1 Line 3771  Callout 1: last capture = -1
3771   0: xyzabc   0: xyzabc
3772   1: xyzabc   1: xyzabc
3773    
3774  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3775  Capturing subpattern count = 3  Capturing subpattern count = 3
3776  No options  No options
3777  First char = 'X'  First char = 'X'
# Line 3822  Callout 1: last capture = 1 Line 3793  Callout 1: last capture = 1
3793   1: X   1: X
3794   2: xyzabc   2: xyzabc
3795    
3796  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3797  Capturing subpattern count = 1  Capturing subpattern count = 1
3798  No options  No options
3799  First char = 'a'  First char = 'a'
# Line 3835  Callout 0: last capture = 1 Line 3806  Callout 0: last capture = 1
3806      ^          a      ^          a
3807   0: abcdef   0: abcdef
3808   1: abc   1: abc
3809    
3810  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3811  Capturing subpattern count = 1  Capturing subpattern count = 1
3812  No options  No options
3813  First char = 'a'  First char = 'a'
3814  Need char = 'z'  Need char = 'z'
3815      abcxyz\C+      abcxyz\C+
3816  Callout 1: last capture = 1  Callout 1: last capture = 1
3817   0: <unset>   0: <unset>
3818   1: abc   1: abc
# Line 3853  Callout 2: last capture = -1 Line 3824  Callout 2: last capture = -1
3824      ^          a      ^          a
3825   0: abcxyz   0: abcxyz
3826    
3827  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3828  Capturing subpattern count = 1  Capturing subpattern count = 1
3829  No options  No options
3830  First char = 'x'  First char = 'x'
# Line 3866  Callout 0: last capture = 1 Line 3837  Callout 0: last capture = 1
3837         ^       )         ^       )
3838   0: xyz   0: xyz
3839   1: abc   1: abc
3840    
3841  /a(b+)(c*)(?C1)/  /a(b+)(c*)(?C1)/I
3842  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3843  No options  No options
3844  First char = 'a'  First char = 'a'
3845  Need char = 'b'  Need char = 'b'
# Line 3893  Callout data = 1 Line 3863  Callout data = 1
3863  Callout data = 1  Callout data = 1
3864  No match  No match
3865    
3866  /a(b+?)(c*?)(?C1)/  /a(b+?)(c*?)(?C1)/I
3867  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3868  No options  No options
3869  First char = 'a'  First char = 'a'
3870  Need char = 'b'  Need char = 'b'
# Line 3918  Callout data = 1 Line 3887  Callout data = 1
3887    1 ^        ^    1 ^        ^
3888  Callout data = 1  Callout data = 1
3889  No match  No match
3890    
3891  /(?C)abc/  /(?C)abc/I
3892  Capturing subpattern count = 0  Capturing subpattern count = 0
3893  No options  No options
3894  First char = 'a'  First char = 'a'
3895  Need char = 'c'  Need char = 'c'
3896    
3897  /(?C)^abc/  /(?C)^abc/I
3898  Capturing subpattern count = 0  Capturing subpattern count = 0
3899  Options: anchored  Options: anchored
3900  No first char  No first char
3901  No need char  No need char
3902    
3903  /(?C)a|b/S  /(?C)a|b/IS
3904  Capturing subpattern count = 0  Capturing subpattern count = 0
3905  No options  No options
3906  No first char  No first char
3907  No need char  No need char
3908    Subject length lower bound = 1
3909  Starting byte set: a b  Starting byte set: a b
3910    
3911  /(?R)/  /(?R)/I
3912  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3913    
3914  /(a|(?R))/  /(a|(?R))/I
3915  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3916    
3917  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3918  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3919    
3920  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3921  Capturing subpattern count = 3  Capturing subpattern count = 3
3922  No options  No options
3923  First char = 'x'  First char = 'x'
# Line 3976  No need char Line 3946  No need char
3946   3: xxab   3: xxab
3947      *** Failers      *** Failers
3948  No match  No match
3949      xyab      xyab
3950  No match  No match
3951    
3952  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3953  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3954    
3955  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3956  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3957    
3958  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3959  Capturing subpattern count = 1  Capturing subpattern count = 1
3960  Options: anchored  Options: anchored
3961  No first char  No first char
# Line 3996  No need char Line 3966  No need char
3966      a(b)c      a(b)c
3967   0: a(b)c   0: a(b)c
3968   1: c   1: c
3969      a(b(c))d      a(b(c))d
3970   0: a(b(c))d   0: a(b(c))d
3971   1: d   1: d
3972      *** Failers)      *** Failers)
3973  No match  No match
3974      a(b(c)d      a(b(c)d
3975  No match  No match
3976    
3977  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3978  Capturing subpattern count = 1  Capturing subpattern count = 1
3979  Options: anchored  Options: anchored
3980  No first char  No first char
# Line 4019  Need char = '<' Line 3989  Need char = '<'
3989   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3990   1: (1(2)3)   1: (1(2)3)
3991    
3992  /(a(?1)b)/D  /(a(?1)b)/DZ
3993  ------------------------------------------------------------------  ------------------------------------------------------------------
3994    0  22 Bra 0          Bra
3995    3  16 Bra 1          CBra 1
3996    6     a          a
3997    8   6 Once          Once
3998   11   3 Recurse          Recurse
3999   14   6 Ket          Ket
4000   17     b          b
4001   19  16 Ket          Ket
4002   22  22 Ket          Ket
4003   25     End          End
4004  ------------------------------------------------------------------  ------------------------------------------------------------------
4005  Capturing subpattern count = 1  Capturing subpattern count = 1
4006  No options  No options
4007  First char = 'a'  First char = 'a'
4008  Need char = 'b'  Need char = 'b'
4009    
4010  /(a(?1)+b)/D  /(a(?1)+b)/DZ
4011  ------------------------------------------------------------------  ------------------------------------------------------------------
4012    0  22 Bra 0          Bra
4013    3  16 Bra 1          CBra 1
4014    6     a          a
4015    8   6 Once          Once
4016   11   3 Recurse          Recurse
4017   14   6 KetRmax          KetRmax
4018   17     b          b
4019   19  16 Ket          Ket
4020   22  22 Ket          Ket
4021   25     End          End
4022  ------------------------------------------------------------------  ------------------------------------------------------------------
4023  Capturing subpattern count = 1  Capturing subpattern count = 1
4024  No options  No options
4025  First char = 'a'  First char = 'a'
4026  Need char = 'b'  Need char = 'b'
4027    
4028  /^\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))$/  
4029  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4030  Options: anchored  Options: anchored
4031  No first char  No first char
4032  No need char  No need char
# Line 4109  No need char Line 4044  No need char
4044  No match  No match
4045      ((2+2)*-3)-7)      ((2+2)*-3)-7)
4046  No match  No match
4047    
4048  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
4049  Capturing subpattern count = 2  Capturing subpattern count = 2
4050  Options: anchored  Options: anchored
4051  No first char  No first char
# Line 4119  No need char Line 4054  No need char
4054   0: xyz   0: xyz
4055   1: xyz   1: xyz
4056   2: y   2: y
4057      xxyzxyzz      xxyzxyzz
4058   0: xxyzxyzz   0: xxyzxyzz
4059   1: xxyzxyzz   1: xxyzxyzz
4060   2: xyzxyz   2: xyzxyz
# Line 4127  No need char Line 4062  No need char
4062  No match  No match
4063      xxyzz      xxyzz
4064  No match  No match
4065      xxyzxyzxyzz      xxyzxyzxyzz
4066  No match  No match
4067    
4068  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4069  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4070  Options: extended  Options: extended
4071  First char = '<'  First char = '<'
4072  Need char = '>'  Need char = '>'
# Line 4152  Need char = '>' Line 4086  Need char = '>'
4086   0: <def>   0: <def>
4087   1: <def>   1: <def>
4088   2: <def>   2: <def>
4089      <abc<>def>      <abc<>def>
4090   0: <abc<>def>   0: <abc<>def>
4091   1: <abc<>def>   1: <abc<>def>
4092   2: <abc<>def>   2: <abc<>def>
4093      <abc<>      <abc<>
4094   0: <>   0: <>
4095   1: <>   1: <>
4096   2: <>   2: <>
# Line 4165  No match Line 4099  No match
4099      <abc      <abc
4100  No match  No match
4101    
4102  /(?1)/  /(?1)/I
4103  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4104    
4105  /((?2)(abc)/  /((?2)(abc)/I
4106  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4107    
4108  /^(abc)def(?1)/  /^(abc)def(?1)/I
4109  Capturing subpattern count = 1  Capturing subpattern count = 1
4110  Options: anchored  Options: anchored
4111  No first char  No first char
# Line 4180  No need char Line 4114  No need char
4114   0: abcdefabc   0: abcdefabc
4115   1: abc   1: abc
4116    
4117  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4118  Capturing subpattern count = 1  Capturing subpattern count = 1
4119  Options: anchored  Options: anchored
4120  No first char  No first char
# Line 4191  No need char Line 4125  No need char
4125      a=b      a=b
4126   0: a=b   0: a=b
4127   1: a   1: a
4128      a=bc      a=bc
4129   0: a=bc   0: a=bc
4130   1: a   1: a
4131    
4132  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4133  Capturing subpattern count = 2  Capturing subpattern count = 2
4134  Options: anchored  Options: anchored
4135  No first char  No first char
# Line 4208  No need char Line 4142  No need char
4142   0: a=b   0: a=b
4143   1: a   1: a
4144   2: b   2: b
4145      a=bc      a=bc
4146   0: a=bc   0: a=bc
4147   1: a   1: a
4148   2: c   2: c
4149    
4150  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4151  ------------------------------------------------------------------  ------------------------------------------------------------------
4152    0  28 Bra 0          Bra
4153    3     a          a
4154    5   5 Bra 1          CBra 1
4155    8     b          b
4156   10   5 Alt          Alt
4157   13     c          c
4158   15  10 Ket          Ket
4159   18     d          d
4160   20   5 Bra 2          CBra 2
4161   23     e          e
4162   25   5 Ket          Ket
4163   28  28 Ket          Ket
4164   31     End          End
4165  ------------------------------------------------------------------  ------------------------------------------------------------------
4166  Capturing subpattern count = 2  Capturing subpattern count = 2
4167  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4240  Need char = 'e' Line 4174  Need char = 'e'
4174   0: abde   0: abde
4175   1: b   1: b
4176   2: e   2: e
4177      acde      acde
4178   0: acde   0: acde
4179   1: c   1: c
4180   2: e   2: e
4181    
4182  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4183  ------------------------------------------------------------------  ------------------------------------------------------------------
4184    0  35 Bra 0          Bra
4185    3  21 Bra 0          Bra
4186    6     a          a
4187    8  13 Bra 1          CBra 1
4188   11     c          c
4189   13   5 Bra 2          CBra 2
4190   16     d          d
4191   18   5 Ket          Ket
4192   21  13 Ket          Ket
4193   24  21 Ket          Ket
4194   27   5 Bra 3          CBra 3
4195   30     a          a
4196   32   5 Ket          Ket
4197   35  35 Ket          Ket
4198   38     End          End
4199  ------------------------------------------------------------------  ------------------------------------------------------------------
4200  Capturing subpattern count = 3  Capturing subpattern count = 3
4201  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4272  No options Line 4206  No options
4206  First char = 'a'  First char = 'a'
4207  Need char = 'a'  Need char = 'a'
4208    
4209  /(?P<a>a)...(?P=a)bbb(?P>a)d/D  /(?P<a>a)...(?P=a)bbb(?P>a)d/DZ
4210  ------------------------------------------------------------------  ------------------------------------------------------------------
4211    0  34 Bra 0          Bra
4212    3   5 Bra 1          CBra 1
4213    6     a          a
4214    8   5 Ket          Ket
4215   11     Any          Any
4216   12     Any          Any
4217   13     Any          Any
4218   14     \1          \1
4219   17     bbb          bbb
4220   23   6 Once          Once
4221   26   3 Recurse          Recurse
4222   29   6 Ket          Ket
4223   32     d          d
4224   34  34 Ket          Ket
4225   37     End          End
4226  ------------------------------------------------------------------  ------------------------------------------------------------------
4227  Capturing subpattern count = 1  Capturing subpattern count = 1
4228  Max back reference = 1  Max back reference = 1
# Line 4298  No options Line 4232  No options
4232  First char = 'a'  First char = 'a'
4233  Need char = 'd'  Need char = 'd'
4234    
4235  /^\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
4236  Capturing subpattern count = 4  Capturing subpattern count = 4
4237  Max back reference = 4  Max back reference = 4
4238  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4306  Named capturing subpatterns: Line 4240  Named capturing subpatterns:
4240    one     1    one     1
4241    three   3    three   3
4242    two     2    two     2
 Partial matching not supported  
4243  Options: anchored caseless  Options: anchored caseless
4244  No first char  No first char
4245  No need char  No need char
# Line 4326  No need char Line 4259  No need char
4259   2: <unset>   2: <unset>
4260   3: A man, a plan, a canal: Panama   3: A man, a plan, a canal: Panama
4261   4: A   4: A
4262      Able was I ere I saw Elba.      Able was I ere I saw Elba.
4263   0: Able was I ere I saw Elba.   0: Able was I ere I saw Elba.
4264   1: <unset>   1: <unset>
4265   2: <unset>   2: <unset>
# Line 4334  No need char Line 4267  No need char
4267   4: A   4: A
4268      *** Failers      *** Failers
4269  No match  No match
4270      The quick brown fox      The quick brown fox
4271  No match  No match
4272    
4273  /((?(R)a|b))\1(?1)?/  /((?(R)a|b))\1(?1)?/I
4274  Capturing subpattern count = 1  Capturing subpattern count = 1
4275  Max back reference = 1  Max back reference = 1
4276  No options  No options
# Line 4346  No need char Line 4279  No need char
4279    bb    bb
4280   0: bb   0: bb
4281   1: b   1: b
4282    bbaa    bbaa
4283   0: bba   0: bba
4284   1: b   1: b
4285    
4286  /(.*)a/sI  /(.*)a/Is
4287  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4288  Options: anchored dotall  Options: anchored dotall
4289  No first char  No first char
4290  Need char = 'a'  Need char = 'a'
4291    
4292  /(.*)a\1/sI  /(.*)a\1/Is
4293  Capturing subpattern count = 1  Capturing subpattern count = 1
4294  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4295  Options: dotall  Options: dotall
4296  No first char  No first char
4297  Need char = 'a'  Need char = 'a'
4298    
4299  /(.*)a(b)\2/sI  /(.*)a(b)\2/Is
4300  Capturing subpattern count = 2  Capturing subpattern count = 2
4301  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4302  Options: anchored dotall  Options: anchored dotall
4303  No first char  No first char
4304  Need char = 'b'  Need char = 'b'
4305    
4306  /((.*)a|(.*)b)z/sI  /((.*)a|(.*)b)z/Is
4307  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
4308  Options: anchored dotall  Options: anchored dotall
4309  No first char  No first char
4310  Need char = 'z'  Need char = 'z'
4311    
4312  /((.*)a|(.*)b)z\1/sI  /((.*)a|(.*)b)z\1/Is
4313  Capturing subpattern count = 3  Capturing subpattern count = 3
4314  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
4315  Options: dotall  Options: dotall
4316  No first char  No first char
4317  Need char = 'z'  Need char = 'z'
4318    
4319  /((.*)a|(.*)b)z\2/sI  /((.*)a|(.*)b)z\2/Is
4320  Capturing subpattern count = 3  Capturing subpattern count = 3
4321  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
4322  Options: dotall  Options: dotall
4323  No first char  No first char
4324  Need char = 'z'  Need char = 'z'
4325    
4326  /((.*)a|(.*)b)z\3/sI  /((.*)a|(.*)b)z\3/Is
4327  Capturing subpattern count = 3  Capturing subpattern count = 3
4328  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4329  Options: dotall  Options: dotall
4330  No first char  No first char
4331  Need char = 'z'  Need char = 'z'
4332    
4333  /((.*)a|^(.*)b)z\3/sI  /((.*)a|^(.*)b)z\3/Is
4334  Capturing subpattern count = 3  Capturing subpattern count = 3
4335  Max back reference = 3  Max back reference = 3
 Partial matching not supported  
4336  Options: anchored dotall  Options: anchored dotall
4337  No first char  No first char
4338  Need char = 'z'  Need char = 'z'
4339    
4340  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a/Is
4341  Capturing subpattern count = 31  Capturing subpattern count = 31
 Partial matching not supported  
4342  Options: anchored dotall  Options: anchored dotall
4343  No first char  No first char
4344  No need char  No need char
4345    
4346  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\31/Is
4347  Capturing subpattern count = 31  Capturing subpattern count = 31
4348  Max back reference = 31  Max back reference = 31
 Partial matching not supported  
4349  Options: dotall  Options: dotall
4350  No first char  No first char
4351  No need char  No need char
4352    
4353  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/sI  /(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)|(.*)a\32/Is
4354  Capturing subpattern count = 32  Capturing subpattern count = 32
4355  Max back reference = 32  Max back reference = 32
 Partial matching not supported  
4356  Options: dotall  Options: dotall
4357  No first char  No first char
4358  No need char  No need char
4359    
4360  /(a)(bc)/ND  /(a)(bc)/INDZ
4361  ------------------------------------------------------------------  ------------------------------------------------------------------
4362    0  21 Bra 0          Bra
4363    3   5 Bra 0          Bra
4364    6     a          a
4365    8   5 Ket          Ket
4366   11   7 Bra 0          Bra
4367   14     bc          bc
4368   18   7 Ket          Ket
4369   21  21 Ket          Ket
4370   24     End          End
4371  ------------------------------------------------------------------  ------------------------------------------------------------------
4372  Capturing subpattern count = 0  Capturing subpattern count = 0
4373  Options: no_auto_capture  Options: no_auto_capture
# Line 4454  Need char = 'c' Line 4376  Need char = 'c'
4376    abc    abc
4377   0: abc   0: abc
4378    
4379  /(?P<one>a)(bc)/ND  /(?P<one>a)(bc)/INDZ
4380  ------------------------------------------------------------------  ------------------------------------------------------------------
4381    0  21 Bra 0          Bra
4382    3   5 Bra 1          CBra 1
4383    6     a          a
4384    8   5 Ket          Ket
4385   11   7 Bra 0          Bra
4386   14     bc          bc
4387   18   7 Ket          Ket
4388   21  21 Ket          Ket
4389   24     End          End
4390  ------------------------------------------------------------------  ------------------------------------------------------------------
4391  Capturing subpattern count = 1  Capturing subpattern count = 1
4392  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4476  Need char = 'c' Line 4398  Need char = 'c'
4398   0: abc   0: abc
4399   1: a   1: a
4400    
4401  /(a)(?P<named>bc)/ND  /(a)(?P<named>bc)/INDZ
4402  ------------------------------------------------------------------  ------------------------------------------------------------------
4403    0  21 Bra 0          Bra
4404    3   5 Bra 0          Bra
4405    6     a          a
4406    8   5 Ket          Ket
4407   11   7 Bra 1          CBra 1
4408   14     bc          bc
4409   18   7 Ket          Ket
4410   21  21 Ket          Ket
4411   24     End          End
4412  ------------------------------------------------------------------  ------------------------------------------------------------------
4413  Capturing subpattern count = 1  Capturing subpattern count = 1
4414  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4495  Options: no_auto_capture Line 4417  Options: no_auto_capture
4417  First char = 'a'  First char = 'a'
4418  Need char = 'c'  Need char = 'c'
4419    
4420  /(a+)*zz/  /(a+)*zz/I
4421  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
4422  No options  No options
4423  No first char  No first char
4424  Need char = 'z'  Need char = 'z'
4425    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M    aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazzbbbbbb\M
4426  Minimum match() limit = 8  Minimum match() limit = 8
4427  Minimum match() recursion limit = 7  Minimum match() recursion limit = 6
4428   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz   0: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaazz
4429   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa   1: aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
4430    aaaaaaaaaaaaaz\M    aaaaaaaaaaaaaz\M
4431  Minimum match() limit = 32768  Minimum match() limit = 32768
4432  Minimum match() recursion limit = 43  Minimum match() recursion limit = 42
4433  No match  No match
4434    
4435  /(aaa(?C1)bbb|ab)/  /(aaa(?C1)bbb|ab)/I
4436  Capturing subpattern count = 1  Capturing subpattern count = 1
4437  No options  No options
4438  First char = 'a'  First char = 'a'
# Line 4538  Callout data = 1 Line 4459  Callout data = 1
4459  Callout data = -1  Callout data = -1
4460  No match  No match
4461    
4462  /ab(?P<one>cd)ef(?P<two>gh)/  /ab(?P<one>cd)ef(?P<two>gh)/I
4463  Capturing subpattern count = 2  Capturing subpattern count = 2
4464  Named capturing subpatterns:  Named capturing subpatterns:
4465    one   1    one   1
# Line 4555  Need char = 'h' Line 4476  Need char = 'h'
4476   1: cd   1: cd
4477   2: gh   2: gh
4478   1C cd (2)   1C cd (2)
4479   2G gh (2)    G gh (2) two
4480      abcdefgh\Cone\Ctwo      abcdefgh\Cone\Ctwo
4481   0: abcdefgh   0: abcdefgh
4482   1: cd   1: cd
4483   2: gh   2: gh
4484   1C cd (2)    C cd (2) one