/[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 65 by nigel, Sat Feb 24 21:40:08 2007 UTC revision 882 by ph10, Sun Jan 15 18:45:27 2012 UTC
# Line 1  Line 1 
1  PCRE version 4.1 12-Mar-2003  /-- 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  /(a)b|/      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        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
11    /(a)b|/I
12  Capturing subpattern count = 1  Capturing subpattern count = 1
13  No options  No options
14  No first char  No first char
15  No need char  No need char
16    
17  /abc/  /abc/I
18  Capturing subpattern count = 0  Capturing subpattern count = 0
19  No options  No options
20  First char = 'a'  First char = 'a'
# Line 24  No match Line 32  No match
32      ABC      ABC
33  No match  No match
34    
35  /^abc/  /^abc/I
36  Capturing subpattern count = 0  Capturing subpattern count = 0
37  Options: anchored  Options: anchored
38  No first char  No first char
# Line 40  No match Line 48  No match
48      \Adefabc      \Adefabc
49  No match  No match
50    
51  /a+bc/  /a+bc/I
52  Capturing subpattern count = 0  Capturing subpattern count = 0
53  No options  No options
54  First char = 'a'  First char = 'a'
55  Need char = 'c'  Need char = 'c'
56    
57  /a*bc/  /a*bc/I
58  Capturing subpattern count = 0  Capturing subpattern count = 0
59  No options  No options
60  No first char  No first char
61  Need char = 'c'  Need char = 'c'
62    
63  /a{3}bc/  /a{3}bc/I
64  Capturing subpattern count = 0  Capturing subpattern count = 0
65  No options  No options
66  First char = 'a'  First char = 'a'
67  Need char = 'c'  Need char = 'c'
68    
69  /(abc|a+z)/  /(abc|a+z)/I
70  Capturing subpattern count = 1  Capturing subpattern count = 1
71  No options  No options
72  First char = 'a'  First char = 'a'
73  No need char  No need char
74    
75  /^abc$/  /^abc$/I
76  Capturing subpattern count = 0  Capturing subpattern count = 0
77  Options: anchored  Options: anchored
78  No first char  No first char
# Line 76  No match Line 84  No match
84      def\nabc      def\nabc
85  No match  No match
86    
87  /ab\gdef/X  /ab\idef/X
88  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
89    
90  /(?X)ab\gdef/X  /(?X)ab\idef/X
91  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
92    
93  /x{5,4}/  /x{5,4}/
# Line 94  Failed: missing terminating ] for charac Line 102  Failed: missing terminating ] for charac
102  /(?X)[\B]/  /(?X)[\B]/
103  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
104    
105    /(?X)[\R]/
106    Failed: invalid escape sequence in character class at offset 6
107    
108    /(?X)[\X]/
109    Failed: invalid escape sequence in character class at offset 6
110    
111    /[\B]/BZ
112    ------------------------------------------------------------------
113            Bra
114            B
115            Ket
116            End
117    ------------------------------------------------------------------
118    
119    /[\R]/BZ
120    ------------------------------------------------------------------
121            Bra
122            R
123            Ket
124            End
125    ------------------------------------------------------------------
126    
127    /[\X]/BZ
128    ------------------------------------------------------------------
129            Bra
130            X
131            Ket
132            End
133    ------------------------------------------------------------------
134    
135  /[z-a]/  /[z-a]/
136  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
137    
# Line 107  Failed: missing ) at offset 4 Line 145  Failed: missing ) at offset 4
145  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
146    
147  /(?z)abc/  /(?z)abc/
148  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
149    
150  /.*b/  /.*b/I
151  Capturing subpattern count = 0  Capturing subpattern count = 0
152  No options  No options
153  First char at start or follows \n  First char at start or follows newline
154  Need char = 'b'  Need char = 'b'
155    
156  /.*?b/  /.*?b/I
157  Capturing subpattern count = 0  Capturing subpattern count = 0
158  No options  No options
159  First char at start or follows \n  First char at start or follows newline
160  Need char = 'b'  Need char = 'b'
161    
162  /cat|dog|elephant/  /cat|dog|elephant/I
163  Capturing subpattern count = 0  Capturing subpattern count = 0
164  No options  No options
165  No first char  No first char
# Line 131  No need char Line 169  No need char
169      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
170   0: elephant   0: elephant
171    
172  /cat|dog|elephant/S  /cat|dog|elephant/IS
173  Capturing subpattern count = 0  Capturing subpattern count = 0
174  No options  No options
175  No first char  No first char
176  No need char  No need char
177  Study size = 40  Subject length lower bound = 3
178  Starting character set: c d e  Starting byte set: c d e
179      this sentence eventually mentions a cat      this sentence eventually mentions a cat
180   0: cat   0: cat
181      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
182   0: elephant   0: elephant
183    
184  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
185  Capturing subpattern count = 0  Capturing subpattern count = 0
186  Options: caseless  Options: caseless
187  No first char  No first char
188  No need char  No need char
189  Study size = 40  Subject length lower bound = 3
190  Starting character set: C D E c d e  Starting byte set: C D E c d e
191      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
192   0: CAT   0: CAT
193      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
194   0: elephant   0: elephant
195    
196  /a|[bcd]/S  /a|[bcd]/IS
197  Capturing subpattern count = 0  Capturing subpattern count = 0
198  No options  No options
199  No first char  No first char
200  No need char  No need char
201  Study size = 40  Subject length lower bound = 1
202  Starting character set: a b c d  Starting byte set: a b c d
203    
204  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
205  Capturing subpattern count = 1  Capturing subpattern count = 1
206  No options  No options
207  No first char  No first char
208  No need char  No need char
209  Study size = 40  Subject length lower bound = 1
210  Starting character set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
211    \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
212    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
213    ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d    ? @ A B C D E F G H I J K L M N O P Q R S T U V W X Y [ \ ] ^ _ ` a b c d
# Line 184  Starting character set: \x00 \x01 \x02 \ Line 222  Starting character set: \x00 \x01 \x02 \
222    \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
223    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
224    
225  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
226  Capturing subpattern count = 1  Capturing subpattern count = 1
227  No options  No options
228  No first char  No first char
229  No need char  No need char
230  Study size = 40  Subject length lower bound = 1
231  Starting character set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
232    
233  /(ab\2)/  /(ab\2)/
234  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
# Line 198  Failed: reference to non-existent subpat Line 236  Failed: reference to non-existent subpat
236  /{4,5}abc/  /{4,5}abc/
237  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
238    
239  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
240  Capturing subpattern count = 3  Capturing subpattern count = 3
241  Max back reference = 2  Max back reference = 2
242  No options  No options
# Line 223  Matched, but too many substrings Line 261  Matched, but too many substrings
261   0: abcb   0: abcb
262   1: a   1: a
263   2: b   2: b
264      \O12abcb      \O12abcb
265   0: abcb   0: abcb
266   1: a   1: a
267   2: b   2: b
268   3: c   3: c
269    
270  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
271  Capturing subpattern count = 3  Capturing subpattern count = 3
272  Max back reference = 2  Max back reference = 2
273  No options  No options
# Line 271  Matched, but too many substrings Line 309  Matched, but too many substrings
309   2: a   2: a
310   3: b   3: b
311    
312  /abc$/E  /abc$/IE
313  Capturing subpattern count = 0  Capturing subpattern count = 0
314  Options: dollar_endonly  Options: dollar_endonly
315  First char = 'a'  First char = 'a'
# Line 288  No match Line 326  No match
326  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
327  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
328    
329  /the quick brown fox/  /the quick brown fox/I
330  Capturing subpattern count = 0  Capturing subpattern count = 0
331  No options  No options
332  First char = 't'  First char = 't'
# Line 298  Need char = 'x' Line 336  Need char = 'x'
336      this is a line with the quick brown fox      this is a line with the quick brown fox
337   0: the quick brown fox   0: the quick brown fox
338    
339  /the quick brown fox/A  /the quick brown fox/IA
340  Capturing subpattern count = 0  Capturing subpattern count = 0
341  Options: anchored  Options: anchored
342  No first char  No first char
# Line 311  No match Line 349  No match
349  No match  No match
350    
351  /ab(?z)cd/  /ab(?z)cd/
352  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
353    
354  /^abc|def/  /^abc|def/I
355  Capturing subpattern count = 0  Capturing subpattern count = 0
356  No options  No options
357  No first char  No first char
# Line 323  No need char Line 361  No need char
361      abcdef\B      abcdef\B
362   0: def   0: def
363    
364  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
365  Capturing subpattern count = 3  Capturing subpattern count = 3
366  No options  No options
367  First char at start or follows \n  First char at start or follows newline
368  No need char  No need char
369      defabc      defabc
370   0: defabc   0: defabc
# Line 338  No need char Line 376  No need char
376   2: <unset>   2: <unset>
377   3: def   3: def
378    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
379  /)/  /)/
380  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
381    
382  /a[]b/  /a[]b/
383  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
384    
385  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
386  Capturing subpattern count = 0  Capturing subpattern count = 0
387  No options  No options
388  No first char  No first char
389  No need char  No need char
390      co-processors, and for      co-processors, and for
391   0: -pr   0: -pr
392    
393  /<.*>/  /<.*>/I
394  Capturing subpattern count = 0  Capturing subpattern count = 0
395  No options  No options
396  First char = '<'  First char = '<'
# Line 415  Need char = '>' Line 398  Need char = '>'
398      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
399   0: <def>ghi<klm>   0: <def>ghi<klm>
400    
401  /<.*?>/  /<.*?>/I
402  Capturing subpattern count = 0  Capturing subpattern count = 0
403  No options  No options
404  First char = '<'  First char = '<'
# Line 423  Need char = '>' Line 406  Need char = '>'
406      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
407   0: <def>   0: <def>
408    
409  /<.*>/U  /<.*>/IU
410  Capturing subpattern count = 0  Capturing subpattern count = 0
411  Options: ungreedy  Options: ungreedy
412  First char = '<'  First char = '<'
413  Need char = '>'  Need char = '>'
414      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
415   0: <def>   0: <def>
416    
417  /(?U)<.*>/  /(?U)<.*>/I
418  Capturing subpattern count = 0  Capturing subpattern count = 0
419  Options: ungreedy  Options: ungreedy
420  First char = '<'  First char = '<'
# Line 439  Need char = '>' Line 422  Need char = '>'
422      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
423   0: <def>   0: <def>
424    
425  /<.*?>/U  /<.*?>/IU
426  Capturing subpattern count = 0  Capturing subpattern count = 0
427  Options: ungreedy  Options: ungreedy
428  First char = '<'  First char = '<'
429  Need char = '>'  Need char = '>'
430      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
431   0: <def>ghi<klm>   0: <def>ghi<klm>
432    
433  /={3,}/U  /={3,}/IU
434  Capturing subpattern count = 0  Capturing subpattern count = 0
435  Options: ungreedy  Options: ungreedy
436  First char = '='  First char = '='
437  Need char = '='  Need char = '='
438      abc========def      abc========def
439   0: ===   0: ===
440    
441  /(?U)={3,}?/  /(?U)={3,}?/I
442  Capturing subpattern count = 0  Capturing subpattern count = 0
443  Options: ungreedy  Options: ungreedy
444  First char = '='  First char = '='
445  Need char = '='  Need char = '='
446      abc========def      abc========def
447   0: ========   0: ========
448    
449  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
450  Capturing subpattern count = 0  Capturing subpattern count = 0
451  No options  No options
452  First char = 'f'  First char = 'f'
453  Need char = 'o'  Need char = 'o'
454      foo      foo
455   0: foo   0: foo
456      catfoo      catfoo
457   0: foo   0: foo
458      *** Failers      *** Failers
459  No match  No match
460      the barfoo      the barfoo
461  No match  No match
462      and cattlefoo      and cattlefoo
463  No match  No match
464    
465  /(?<=a+)b/  /(?<=a+)b/
# Line 488  Failed: lookbehind assertion is not fixe Line 471  Failed: lookbehind assertion is not fixe
471  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
472  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
473    
474  /(?i)abc/  /(?i)abc/I
475  Capturing subpattern count = 0  Capturing subpattern count = 0
476  Options: caseless  Options: caseless
477  First char = 'a' (caseless)  First char = 'a' (caseless)
478  Need char = 'c' (caseless)  Need char = 'c' (caseless)
479    
480  /(a|(?m)a)/  /(a|(?m)a)/I
481  Capturing subpattern count = 1  Capturing subpattern count = 1
482  No options  No options
483  First char = 'a'  First char = 'a'
484  No need char  No need char
485    
486  /(?i)^1234/  /(?i)^1234/I
487  Capturing subpattern count = 0  Capturing subpattern count = 0
488  Options: anchored caseless  Options: anchored caseless
489  No first char  No first char
490  No need char  No need char
491    
492  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
493  Capturing subpattern count = 1  Capturing subpattern count = 1
494  Options: anchored  Options: anchored
 Case state changes  
495  No first char  No first char
496  No need char  No need char
497    
498  /(?s).*/  /(?s).*/I
499  Capturing subpattern count = 0  Capturing subpattern count = 0
500  Options: anchored dotall  Options: anchored dotall
501  No first char  No first char
502  No need char  No need char
503    
504  /[abcd]/S  /[abcd]/IS
505  Capturing subpattern count = 0  Capturing subpattern count = 0
506  No options  No options
507  No first char  No first char
508  No need char  No need char
509  Study size = 40  Subject length lower bound = 1
510  Starting character set: a b c d  Starting byte set: a b c d
511    
512  /(?i)[abcd]/S  /(?i)[abcd]/IS
513  Capturing subpattern count = 0  Capturing subpattern count = 0
514  Options: caseless  Options: caseless
515  No first char  No first char
516  No need char  No need char
517  Study size = 40  Subject length lower bound = 1
518  Starting character set: A B C D a b c d  Starting byte set: A B C D a b c d
519    
520  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
521  Capturing subpattern count = 1  Capturing subpattern count = 1
522  Options: multiline  Options: multiline
523  No first char  No first char
524  No need char  No need char
525  Study size = 40  Subject length lower bound = 1
526  Starting character set: b c x y  Starting byte set: b c x y
527    
528  /(^a|^b)/m  /(^a|^b)/Im
529  Capturing subpattern count = 1  Capturing subpattern count = 1
530  Options: multiline  Options: multiline
531  First char at start or follows \n  First char at start or follows newline
532  No need char  No need char
533    
534  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
535  Capturing subpattern count = 1  Capturing subpattern count = 1
536  Options: caseless multiline  Options: caseless multiline
537  First char at start or follows \n  First char at start or follows newline
538  No need char  No need char
539    
540  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 562  Failed: conditional group contains more Line 544  Failed: conditional group contains more
544  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
545    
546  /(?(1a)/  /(?(1a)/
547  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
548    
549    /(?(1a))/
550    Failed: reference to non-existent subpattern at offset 6
551    
552  /(?(?i))/  /(?(?i))/
553  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
554    
555  /(?(abc))/  /(?(abc))/
556  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
557    
558  /(?(?<ab))/  /(?(?<ab))/
559  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
560    
561  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
562  Capturing subpattern count = 1  Capturing subpattern count = 1
563  Max back reference = 1  Max back reference = 1
564  No options  No options
565  First char = 'b'  First char = 'b'
566  Need char = 'h'  Need char = 'h'
567    
568  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
569  Capturing subpattern count = 1  Capturing subpattern count = 1
570  Max back reference = 1  Max back reference = 1
571  No options  No options
 Case state changes  
572  First char = 'b' (caseless)  First char = 'b' (caseless)
573  Need char = 'h' (caseless)  Need char = 'h' (caseless)
574    
575  /((?i)b)/DS  /((?i)b)/IDZS
576  ------------------------------------------------------------------  ------------------------------------------------------------------
577    0  16 Bra 0          Bra
578    3   8 Bra 1          CBra 1
579    6  01 Opt       /i b
580    8   1 b          Ket
581   11   8 Ket          Ket
582   14  00 Opt          End
  16  16 Ket  
  19     End  
583  ------------------------------------------------------------------  ------------------------------------------------------------------
584  Capturing subpattern count = 1  Capturing subpattern count = 1
585  No options  No options
 Case state changes  
586  First char = 'b' (caseless)  First char = 'b' (caseless)
587  No need char  No need char
588  Study returned NULL  Subject length lower bound = 1
589    No set of starting bytes
590    
591  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
592  Capturing subpattern count = 1  Capturing subpattern count = 1
593  No options  No options
 Case state changes  
594  No first char  No first char
595  No need char  No need char
596  Study size = 40  Subject length lower bound = 1
597  Starting character set: C a b c d  Starting byte set: C a b c d
598    
599  /a$/  /a$/I
600  Capturing subpattern count = 0  Capturing subpattern count = 0
601  No options  No options
602  First char = 'a'  First char = 'a'
# Line 624  No need char Line 605  No need char
605   0: a   0: a
606      a\n      a\n
607   0: a   0: a
608      *** Failers      *** Failers
609  No match  No match
610      \Za      \Za
611  No match  No match
612      \Za\n      \Za\n
613  No match  No match
614    
615  /a$/m  /a$/Im
616  Capturing subpattern count = 0  Capturing subpattern count = 0
617  Options: multiline  Options: multiline
618  First char = 'a'  First char = 'a'
# Line 640  No need char Line 621  No need char
621   0: a   0: a
622      a\n      a\n
623   0: a   0: a
624      \Za\n      \Za\n
625   0: a   0: a
626      *** Failers      *** Failers
627  No match  No match
628      \Za      \Za
629  No match  No match
630    
631  /\Aabc/m  /\Aabc/Im
632  Capturing subpattern count = 0  Capturing subpattern count = 0
633  Options: anchored multiline  Options: anchored multiline
634  No first char  No first char
635  No need char  No need char
636    
637  /^abc/m  /^abc/Im
638  Capturing subpattern count = 0  Capturing subpattern count = 0
639  Options: multiline  Options: multiline
640  First char at start or follows \n  First char at start or follows newline
641  Need char = 'c'  Need char = 'c'
642    
643  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
644  Capturing subpattern count = 5  Capturing subpattern count = 5
645  Options: anchored  Options: anchored
646  No first char  No first char
# Line 672  No need char Line 653  No need char
653   4: bbbbccccc   4: bbbbccccc
654   5: def   5: def
655    
656  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
657  Capturing subpattern count = 0  Capturing subpattern count = 0
658  No options  No options
659  No first char  No first char
660  No need char  No need char
661  Study size = 40  Subject length lower bound = 1
662  Starting character set: a b  Starting byte set: a b
663    
664  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
665  Capturing subpattern count = 1  Capturing subpattern count = 1
666  No options  No options
667  No first char  No first char
668  Need char = 'a'  Need char = 'a'
669  Study size = 40  Subject length lower bound = 5
670  Starting character set: a o  Starting byte set: a o
671    
672  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
673  Capturing subpattern count = 0  Capturing subpattern count = 0
674  No options  No options
675  No first char  No first char
676  No need char  No need char
677  Study size = 40  Subject length lower bound = 1
678  Starting character set: a b  Starting byte set: a b
679    
680    /(?<=foo\n)^bar/Im
681    Capturing subpattern count = 0
682    Contains explicit CR or LF match
683    Options: multiline
684    No first char
685    Need char = 'r'
686        foo\nbarbar
687     0: bar
688        ***Failers
689    No match
690        rhubarb
691    No match
692        barbell
693    No match
694        abc\nbarton
695    No match
696    
697  /(?<=foo\n)^bar/m  /^(?<=foo\n)bar/Im
698  Capturing subpattern count = 0  Capturing subpattern count = 0
699    Contains explicit CR or LF match
700  Options: multiline  Options: multiline
701  First char at start or follows \n  First char at start or follows newline
702  Need char = 'r'  Need char = 'r'
703        foo\nbarbar
704     0: bar
705        ***Failers
706    No match
707        rhubarb
708    No match
709        barbell
710    No match
711        abc\nbarton
712    No match
713    
714  /(?>^abc)/m  /(?>^abc)/Im
715  Capturing subpattern count = 0  Capturing subpattern count = 0
716  Options: multiline  Options: multiline
717  First char at start or follows \n  First char at start or follows newline
718  Need char = 'c'  Need char = 'c'
719      abc      abc
720   0: abc   0: abc
# Line 713  Need char = 'c' Line 722  Need char = 'c'
722   0: abc   0: abc
723      *** Failers      *** Failers
724  No match  No match
725      defabc      defabc
726  No match  No match
727    
728  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 726  Failed: lookbehind assertion is not fixe Line 735  Failed: lookbehind assertion is not fixe
735  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
736    
737  /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'  
738    
739  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
740  Capturing subpattern count = 0  Capturing subpattern count = 0
741  No options  No options
742  First char = '-'  First char = '-'
# Line 744  Need char = 't' Line 749  Need char = 't'
749  No match  No match
750      cart      cart
751  No match  No match
752      horse-and-cart      horse-and-cart
753  No match  No match
754    
755  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
756  Capturing subpattern count = 0  Capturing subpattern count = 0
757  No options  No options
 Case state changes  
758  No first char  No first char
759  No need char  No need char
760    
761  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
762  Capturing subpattern count = 2  Capturing subpattern count = 2
763  No options  No options
764  First char at start or follows \n  First char at start or follows newline
765  No need char  No need char
766      alphabetabcd      alphabetabcd
767   0: alphabetabcd   0: alphabetabcd
# Line 767  No need char Line 771  No need char
771   1: <unset>   1: <unset>
772   2: xyz   2: xyz
773    
774  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
775  Capturing subpattern count = 0  Capturing subpattern count = 0
776  No options  No options
 Case state changes  
777  First char = 'Z'  First char = 'Z'
778  Need char = 'Z'  Need char = 'Z'
779      abxyZZ      abxyZZ
# Line 783  Need char = 'Z' Line 786  Need char = 'Z'
786   0: ZZ   0: ZZ
787      bZZ      bZZ
788   0: ZZ   0: ZZ
789      BZZ      BZZ
790   0: ZZ   0: ZZ
791      *** Failers      *** Failers
792  No match  No match
793      ZZ      ZZ
794  No match  No match
795      abXYZZ      abXYZZ
796  No match  No match
797      zzz      zzz
798  No match  No match
799      bzz      bzz
800  No match  No match
801    
802  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
803  Capturing subpattern count = 1  Capturing subpattern count = 1
804  No options  No options
805  First char = 'b'  First char = 'b'
806  Need char = 'r'  Need char = 'r'
807      bar      bar
808   0: bar   0: bar
809      foobbar      foobbar
810   0: bar   0: bar
811      *** Failers      *** Failers
812  No match  No match
813      fooabar      fooabar
814  No match  No match
815    
816  /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
817  Capturing subpattern count = 0  Capturing subpattern count = 0
818  No options  No options
819  First char = 'T'  First char = 'T'
820  Need char = 't'  Need char = 't'
821    
822  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
823  Capturing subpattern count = 1  Capturing subpattern count = 1
824  Options: anchored  Options: anchored
825  No first char  No first char
826  No need char  No need char
827      *** Failers      *** Failers
828  No match  No match
829      a      a
830  No match  No match
831    
832  /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
833  Capturing subpattern count = 0  Capturing subpattern count = 0
834  No options  No options
835  First char = 'T'  First char = 'T'
836  Need char = 'g'  Need char = 'g'
837    
838  /^(a\1?){4}$/  /^(a\1?){4}$/I
839  Capturing subpattern count = 1  Capturing subpattern count = 1
840  Max back reference = 1  Max back reference = 1
841  Options: anchored  Options: anchored
842  No first char  No first char
843  No need char  No need char
844        aaaa
845    No match
846      aaaaaa      aaaaaa
847   0: aaaaaa  No match
  1: aa  
848    
849  /These are syntax tests from Perl 5.005/  /Perl does not fail these two for the final subjects. Neither did PCRE until/
850    /release 8.01. The problem is in backtracking into a subpattern that contains/
851    No match
852    /a recursive reference to itself. PCRE has now made these into atomic patterns./
853    No match
854    
855    /^(xa|=?\1a){2}$/
856        xa=xaa
857     0: xa=xaa
858     1: =xaa
859        ** Failers
860    No match
861        xa=xaaa
862    No match
863    
864    /^(xa|=?\1a)+$/
865        xa=xaa
866     0: xa=xaa
867     1: =xaa
868        ** Failers
869    No match
870        xa=xaaa
871    No match
872    
873    /These are syntax tests from Perl 5.005/I
874  Capturing subpattern count = 0  Capturing subpattern count = 0
875  No options  No options
876  First char = 'T'  First char = 'T'
# Line 884  Failed: reference to non-existent subpat Line 912  Failed: reference to non-existent subpat
912  /(a)|\2/  /(a)|\2/
913  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
914    
915  /a[b-a]/i  /a[b-a]/Ii
916  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
917    
918  /a[]b/i  /a[]b/Ii
919  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
920    
921  /a[/i  /a[/Ii
922  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
923    
924  /*a/i  /*a/Ii
925  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
926    
927  /(*)b/i  /(*)b/Ii
928  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
929    
930  /abc)/i  /abc)/Ii
931  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
932    
933  /(abc/i  /(abc/Ii
934  Failed: missing ) at offset 4  Failed: missing ) at offset 4
935    
936  /a**/i  /a**/Ii
937  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
938    
939  /)(/i  /)(/Ii
940  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
941    
942  /:(?:/  /:(?:/
# Line 918  Failed: missing ) at offset 4 Line 946  Failed: missing ) at offset 4
946  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
947    
948  /a(?{)b/  /a(?{)b/
949  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
950    
951  /a(?{{})b/  /a(?{{})b/
952  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
953    
954  /a(?{}})b/  /a(?{}})b/
955  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
956    
957  /a(?{"{"})b/  /a(?{"{"})b/
958  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
959    
960  /a(?{"{"}})b/  /a(?{"{"}})b/
961  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
962    
963  /(?(1?)a|b)/  /(?(1?)a|b)/
964  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  
965    
966  /[a[:xyz:/  /[a[:xyz:/
967  Failed: missing terminating ] for character class at offset 8  Failed: missing terminating ] for character class at offset 8
# Line 950  Failed: numbers out of order in {} quant Line 975  Failed: numbers out of order in {} quant
975  /abc/\  /abc/\
976  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
977    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
978  /abc/\i  /abc/\i
979  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
980    
981  /(a)bc(d)/  /(a)bc(d)/I
982  Capturing subpattern count = 2  Capturing subpattern count = 2
983  No options  No options
984  First char = 'a'  First char = 'a'
# Line 975  Need char = 'd' Line 997  Need char = 'd'
997   1: a   1: a
998   2: d   2: d
999  copy substring 5 failed -7  copy substring 5 failed -7
1000    
1001  /(.{20})/  /(.{20})/I
1002  Capturing subpattern count = 1  Capturing subpattern count = 1
1003  No options  No options
1004  No first char  No first char
# Line 987  No need char Line 1009  No need char
1009      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1010   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1011   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1012  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1013      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1014   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1015   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1016   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1017    
1018  /(.{15})/  /(.{15})/I
1019  Capturing subpattern count = 1  Capturing subpattern count = 1
1020  No options  No options
1021  No first char  No first char
# Line 1007  No need char Line 1029  No need char
1029   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1030   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1031    
1032  /(.{16})/  /(.{16})/I
1033  Capturing subpattern count = 1  Capturing subpattern count = 1
1034  No options  No options
1035  No first char  No first char
# Line 1018  No need char Line 1040  No need char
1040      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1041   0: abcdefghijklmnop   0: abcdefghijklmnop
1042   1: abcdefghijklmnop   1: abcdefghijklmnop
1043  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1044   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1045   0L abcdefghijklmnop   0L abcdefghijklmnop
1046   1L abcdefghijklmnop   1L abcdefghijklmnop
1047    
1048  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1049  Capturing subpattern count = 3  Capturing subpattern count = 3
1050  Options: anchored  Options: anchored
1051  No first char  No first char
1052  No need char  No need char
1053      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1054   0: adef   0: adef
1055   1: a   1: a
1056   2: <unset>   2: <unset>
# Line 1041  get substring 4 failed -7 Line 1063  get substring 4 failed -7
1063   1L a   1L a
1064   2L   2L
1065   3L f   3L f
1066      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1067   0: bcdef   0: bcdef
1068   1: bc   1: bc
1069   2: bc   2: bc
# Line 1054  get substring 4 failed -7 Line 1076  get substring 4 failed -7
1076   1L bc   1L bc
1077   2L bc   2L bc
1078   3L f   3L f
1079      adefghijk\C0      adefghijk\C0
1080   0: adef   0: adef
1081   1: a   1: a
1082   2: <unset>   2: <unset>
1083   3: f   3: f
1084   0C adef (4)   0C adef (4)
1085    
1086  /^abc\00def/  /^abc\00def/I
1087  Capturing subpattern count = 0  Capturing subpattern count = 0
1088  Options: anchored  Options: anchored
1089  No first char  No first char
1090  No need char  No need char
1091      abc\00def\L\C0      abc\00def\L\C0
1092   0: abc\x00def   0: abc\x00def
1093   0C abc (7)   0C abc\x00def (7)
1094   0L abc   0L abc
1095    
1096  /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]+
1097  )((?:[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]+
1098  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 428  
1099  Capturing subpattern count = 8  Capturing subpattern count = 8
1100    Contains explicit CR or LF match
1101  No options  No options
1102  First char = 'w'  First char = 'w'
1103  Need char = 'd'  Need char = 'd'
1104    
1105  /.*X/D  /.*X/IDZ
1106  ------------------------------------------------------------------  ------------------------------------------------------------------
1107    0   8 Bra 0          Bra
1108    3     Any*          Any*
1109    5   1 X          X
1110    8   8 Ket          Ket
1111   11     End          End
1112  ------------------------------------------------------------------  ------------------------------------------------------------------
1113  Capturing subpattern count = 0  Capturing subpattern count = 0
1114  No options  No options
1115  First char at start or follows \n  First char at start or follows newline
1116  Need char = 'X'  Need char = 'X'
1117    
1118  /.*X/Ds  /.*X/IDZs
1119  ------------------------------------------------------------------  ------------------------------------------------------------------
1120    0   8 Bra 0          Bra
1121    3     Any*          AllAny*
1122    5   1 X          X
1123    8   8 Ket          Ket
1124   11     End          End
1125  ------------------------------------------------------------------  ------------------------------------------------------------------
1126  Capturing subpattern count = 0  Capturing subpattern count = 0
1127  Options: anchored dotall  Options: anchored dotall
1128  No first char  No first char
1129  Need char = 'X'  Need char = 'X'
1130    
1131  /(.*X|^B)/D  /(.*X|^B)/IDZ
1132  ------------------------------------------------------------------  ------------------------------------------------------------------
1133    0  21 Bra 0          Bra
1134    3   8 Bra 1          CBra 1
1135    6     Any*          Any*
1136    8   1 X          X
1137   11   7 Alt          Alt
1138   14     ^          ^
1139   15   1 B          B
1140   18  15 Ket          Ket
1141   21  21 Ket          Ket
1142   24     End          End
1143  ------------------------------------------------------------------  ------------------------------------------------------------------
1144  Capturing subpattern count = 1  Capturing subpattern count = 1
1145  No options  No options
1146  First char at start or follows \n  First char at start or follows newline
1147  No need char  No need char
1148    
1149  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1150  ------------------------------------------------------------------  ------------------------------------------------------------------
1151    0  21 Bra 0          Bra
1152    3   8 Bra 1          CBra 1
1153    6     Any*          AllAny*
1154    8   1 X          X
1155   11   7 Alt          Alt
1156   14     ^          ^
1157   15   1 B          B
1158   18  15 Ket          Ket
1159   21  21 Ket          Ket
1160   24     End          End
1161  ------------------------------------------------------------------  ------------------------------------------------------------------
1162  Capturing subpattern count = 1  Capturing subpattern count = 1
1163  Options: anchored dotall  Options: anchored dotall
1164  No first char  No first char
1165  No need char  No need char
1166    
1167  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1168  ------------------------------------------------------------------  ------------------------------------------------------------------
1169    0  21 Bra 0          Bra
1170    3   8 Bra 1          CBra 1
1171    6     Any*          AllAny*
1172    8   1 X          X
1173   11   7 Alt          Alt
1174   14     ^          ^
1175   15   1 B          B
1176   18  15 Ket          Ket
1177   21  21 Ket          Ket
1178   24     End          End
1179  ------------------------------------------------------------------  ------------------------------------------------------------------
1180  Capturing subpattern count = 1  Capturing subpattern count = 1
1181  Options: anchored dotall  Options: anchored dotall
1182  No first char  No first char
1183  No need char  No need char
1184    
1185  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1186  ------------------------------------------------------------------  ------------------------------------------------------------------
1187    0  27 Bra 0          Bra
1188    3  10 Bra 0          Bra
1189    6  04 Opt          AllAny*
1190    8     Any*          X
1191   10   1 X          Alt
1192   13   9 Alt          ^
1193   16  04 Opt          B
1194   18     ^          Ket
1195   19   1 B          Ket
1196   22  19 Ket          End
  25  00 Opt  
  27  27 Ket  
  30     End  
1197  ------------------------------------------------------------------  ------------------------------------------------------------------
1198  Capturing subpattern count = 0  Capturing subpattern count = 0
1199  No options  Options: anchored
1200  First char at start or follows \n  No first char
1201  No need char  No need char
1202    
1203  /\Biss\B/+  /\Biss\B/I+
1204  Capturing subpattern count = 0  Capturing subpattern count = 0
1205  No options  No options
1206  First char = 'i'  First char = 'i'
# Line 1190  Need char = 's' Line 1209  Need char = 's'
1209   0: iss   0: iss
1210   0+ issippi   0+ issippi
1211    
1212  /\Biss\B/+P  /iss/IG+
     Mississippi  
  0: iss  
  0+ issippi  
   
 /iss/G+  
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
1215  First char = 'i'  First char = 'i'
# Line 1206  Need char = 's' Line 1220  Need char = 's'
1220   0: iss   0: iss
1221   0+ ippi   0+ ippi
1222    
1223  /\Biss\B/G+  /\Biss\B/IG+
1224  Capturing subpattern count = 0  Capturing subpattern count = 0
1225  No options  No options
1226  First char = 'i'  First char = 'i'
# Line 1215  Need char = 's' Line 1229  Need char = 's'
1229   0: iss   0: iss
1230   0+ issippi   0+ issippi
1231    
1232  /\Biss\B/g+  /\Biss\B/Ig+
1233  Capturing subpattern count = 0  Capturing subpattern count = 0
1234  No options  No options
1235  First char = 'i'  First char = 'i'
# Line 1230  No match Line 1244  No match
1244      Mississippi\A      Mississippi\A
1245  No match  No match
1246    
1247  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1248  Capturing subpattern count = 0  Capturing subpattern count = 0
1249  No options  No options
1250  First char = 'i'  First char = 'i'
# Line 1241  Need char = 's' Line 1255  Need char = 's'
1255   0: iss   0: iss
1256   0+ ippi   0+ ippi
1257    
1258  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1259  Capturing subpattern count = 0  Capturing subpattern count = 0
1260  No options  No options
1261  First char = 'i'  First char = 'i'
# Line 1250  Need char = 's' Line 1264  Need char = 's'
1264   0: iss   0: iss
1265   0+ issippi   0+ issippi
1266    
1267  /^iss/g+  /^iss/Ig+
1268  Capturing subpattern count = 0  Capturing subpattern count = 0
1269  Options: anchored  Options: anchored
1270  No first char  No first char
# Line 1258  No need char Line 1272  No need char
1272      ississippi      ississippi
1273   0: iss   0: iss
1274   0+ issippi   0+ issippi
1275    
1276  /.*iss/g+  /.*iss/Ig+
1277  Capturing subpattern count = 0  Capturing subpattern count = 0
1278  No options  No options
1279  First char at start or follows \n  First char at start or follows newline
1280  Need char = 's'  Need char = 's'
1281      abciss\nxyzisspqr      abciss\nxyzisspqr
1282   0: abciss   0: abciss
1283   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1284   0: xyziss   0: xyziss
1285   0+ pqr   0+ pqr
1286    
1287  /.i./+g  /.i./I+g
1288  Capturing subpattern count = 0  Capturing subpattern count = 0
1289  No options  No options
1290  No first char  No first char
# Line 1296  Need char = 'i' Line 1310  Need char = 'i'
1310   0+ river   0+ river
1311   0: riv   0: riv
1312   0+ er   0+ er
1313      Missouri river\A      Missouri river\A
1314   0: Mis   0: Mis
1315   0+ souri river   0+ souri river
1316    
1317  /^.is/+g  /^.is/I+g
1318  Capturing subpattern count = 0  Capturing subpattern count = 0
1319  Options: anchored  Options: anchored
1320  No first char  No first char
# Line 1309  No need char Line 1323  No need char
1323   0: Mis   0: Mis
1324   0+ sissippi   0+ sissippi
1325    
1326  /^ab\n/g+  /^ab\n/Ig+
1327  Capturing subpattern count = 0  Capturing subpattern count = 0
1328    Contains explicit CR or LF match
1329  Options: anchored  Options: anchored
1330  No first char  No first char
1331  No need char  No need char
# Line 1318  No need char Line 1333  No need char
1333   0: ab\x0a   0: ab\x0a
1334   0+ ab\x0acd   0+ ab\x0acd
1335    
1336  /^ab\n/mg+  /^ab\n/Img+
1337  Capturing subpattern count = 0  Capturing subpattern count = 0
1338    Contains explicit CR or LF match
1339  Options: multiline  Options: multiline
1340  First char at start or follows \n  First char at start or follows newline
1341  Need char = 10  Need char = \x0a
1342      ab\nab\ncd      ab\nab\ncd
1343   0: ab\x0a   0: ab\x0a
1344   0+ ab\x0acd   0+ ab\x0acd
1345   0: ab\x0a   0: ab\x0a
1346   0+ cd   0+ cd
1347    
1348  /abc/  /abc/I
1349  Capturing subpattern count = 0  Capturing subpattern count = 0
1350  No options  No options
1351  First char = 'a'  First char = 'a'
1352  Need char = 'c'  Need char = 'c'
1353    
1354  /abc|bac/  /abc|bac/I
1355  Capturing subpattern count = 0  Capturing subpattern count = 0
1356  No options  No options
1357  No first char  No first char
1358  Need char = 'c'  Need char = 'c'
1359    
1360  /(abc|bac)/  /(abc|bac)/I
1361  Capturing subpattern count = 1  Capturing subpattern count = 1
1362  No options  No options
1363  No first char  No first char
1364  Need char = 'c'  Need char = 'c'
1365    
1366  /(abc|(c|dc))/  /(abc|(c|dc))/I
1367  Capturing subpattern count = 2  Capturing subpattern count = 2
1368  No options  No options
1369  No first char  No first char
1370  Need char = 'c'  Need char = 'c'
1371    
1372  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1373  Capturing subpattern count = 2  Capturing subpattern count = 2
1374  No options  No options
1375  No first char  No first char
1376  Need char = 'c'  Need char = 'c'
1377    
1378  /a*/  /a*/I
1379  Capturing subpattern count = 0  Capturing subpattern count = 0
1380  No options  No options
1381  No first char  No first char
1382  No need char  No need char
1383    
1384  /a+/  /a+/I
1385  Capturing subpattern count = 0  Capturing subpattern count = 0
1386  No options  No options
1387  First char = 'a'  First char = 'a'
1388  No need char  No need char
1389    
1390  /(baa|a+)/  /(baa|a+)/I
1391  Capturing subpattern count = 1  Capturing subpattern count = 1
1392  No options  No options
1393  No first char  No first char
1394  Need char = 'a'  Need char = 'a'
1395    
1396  /a{0,3}/  /a{0,3}/I
1397  Capturing subpattern count = 0  Capturing subpattern count = 0
1398  No options  No options
1399  No first char  No first char
1400  No need char  No need char
1401    
1402  /baa{3,}/  /baa{3,}/I
1403  Capturing subpattern count = 0  Capturing subpattern count = 0
1404  No options  No options
1405  First char = 'b'  First char = 'b'
1406  Need char = 'a'  Need char = 'a'
1407    
1408  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1409  Capturing subpattern count = 1  Capturing subpattern count = 1
1410  No options  No options
1411  First char = '"'  First char = '"'
1412  Need char = '"'  Need char = '"'
1413    
1414  /(abc|ab[cd])/  /(abc|ab[cd])/I
1415  Capturing subpattern count = 1  Capturing subpattern count = 1
1416  No options  No options
1417  First char = 'a'  First char = 'a'
1418  No need char  No need char
1419    
1420  /(a|.)/  /(a|.)/I
1421  Capturing subpattern count = 1  Capturing subpattern count = 1
1422  No options  No options
1423  No first char  No first char
1424  No need char  No need char
1425    
1426  /a|ba|\w/  /a|ba|\w/I
1427  Capturing subpattern count = 0  Capturing subpattern count = 0
1428  No options  No options
1429  No first char  No first char
1430  No need char  No need char
1431    
1432  /abc(?=pqr)/  /abc(?=pqr)/I
1433  Capturing subpattern count = 0  Capturing subpattern count = 0
1434  No options  No options
1435  First char = 'a'  First char = 'a'
1436  Need char = 'r'  Need char = 'r'
1437    
1438  /...(?<=abc)/  /...(?<=abc)/I
1439  Capturing subpattern count = 0  Capturing subpattern count = 0
1440  No options  No options
1441  No first char  No first char
1442  No need char  No need char
1443    
1444  /abc(?!pqr)/  /abc(?!pqr)/I
1445  Capturing subpattern count = 0  Capturing subpattern count = 0
1446  No options  No options
1447  First char = 'a'  First char = 'a'
1448  Need char = 'c'  Need char = 'c'
1449    
1450  /ab./  /ab./I
1451  Capturing subpattern count = 0  Capturing subpattern count = 0
1452  No options  No options
1453  First char = 'a'  First char = 'a'
1454  Need char = 'b'  Need char = 'b'
1455    
1456  /ab[xyz]/  /ab[xyz]/I
1457  Capturing subpattern count = 0  Capturing subpattern count = 0
1458  No options  No options
1459  First char = 'a'  First char = 'a'
1460  Need char = 'b'  Need char = 'b'
1461    
1462  /abc*/  /abc*/I
1463  Capturing subpattern count = 0  Capturing subpattern count = 0
1464  No options  No options
1465  First char = 'a'  First char = 'a'
1466  Need char = 'b'  Need char = 'b'
1467    
1468  /ab.c*/  /ab.c*/I
1469  Capturing subpattern count = 0  Capturing subpattern count = 0
1470  No options  No options
1471  First char = 'a'  First char = 'a'
1472  Need char = 'b'  Need char = 'b'
1473    
1474  /a.c*/  /a.c*/I
1475  Capturing subpattern count = 0  Capturing subpattern count = 0
1476  No options  No options
1477  First char = 'a'  First char = 'a'
1478  No need char  No need char
1479    
1480  /.c*/  /.c*/I
1481  Capturing subpattern count = 0  Capturing subpattern count = 0
1482  No options  No options
1483  No first char  No first char
1484  No need char  No need char
1485    
1486  /ac*/  /ac*/I
1487  Capturing subpattern count = 0  Capturing subpattern count = 0
1488  No options  No options
1489  First char = 'a'  First char = 'a'
1490  No need char  No need char
1491    
1492  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1493  Capturing subpattern count = 1  Capturing subpattern count = 1
1494  No options  No options
1495  No first char  No first char
1496  No need char  No need char
1497    
1498  /a.c*|aba/  /a.c*|aba/I
1499  Capturing subpattern count = 0  Capturing subpattern count = 0
1500  No options  No options
1501  First char = 'a'  First char = 'a'
1502  No need char  No need char
1503    
1504  /.+a/  /.+a/I
1505  Capturing subpattern count = 0  Capturing subpattern count = 0
1506  No options  No options
1507  No first char  No first char
1508  Need char = 'a'  Need char = 'a'
1509    
1510  /(?=abcda)a.*/  /(?=abcda)a.*/I
1511  Capturing subpattern count = 0  Capturing subpattern count = 0
1512  No options  No options
1513  First char = 'a'  First char = 'a'
1514  Need char = 'a'  Need char = 'a'
1515    
1516  /(?=a)a.*/  /(?=a)a.*/I
1517  Capturing subpattern count = 0  Capturing subpattern count = 0
1518  No options  No options
1519  First char = 'a'  First char = 'a'
1520  No need char  No need char
1521    
1522  /a(b)*/  /a(b)*/I
1523  Capturing subpattern count = 1  Capturing subpattern count = 1
1524  No options  No options
1525  First char = 'a'  First char = 'a'
1526  No need char  No need char
1527    
1528  /a\d*/  /a\d*/I
1529  Capturing subpattern count = 0  Capturing subpattern count = 0
1530  No options  No options
1531  First char = 'a'  First char = 'a'
1532  No need char  No need char
1533    
1534  /ab\d*/  /ab\d*/I
1535  Capturing subpattern count = 0  Capturing subpattern count = 0
1536  No options  No options
1537  First char = 'a'  First char = 'a'
1538  Need char = 'b'  Need char = 'b'
1539    
1540  /a(\d)*/  /a(\d)*/I
1541  Capturing subpattern count = 1  Capturing subpattern count = 1
1542  No options  No options
1543  First char = 'a'  First char = 'a'
1544  No need char  No need char
1545    
1546  /abcde{0,0}/  /abcde{0,0}/I
1547  Capturing subpattern count = 0  Capturing subpattern count = 0
1548  No options  No options
1549  First char = 'a'  First char = 'a'
1550  Need char = 'd'  Need char = 'd'
1551    
1552  /ab\d+/  /ab\d+/I
1553  Capturing subpattern count = 0  Capturing subpattern count = 0
1554  No options  No options
1555  First char = 'a'  First char = 'a'
1556  Need char = 'b'  Need char = 'b'
1557    
1558  /a(?(1)b)/  /a(?(1)b)(.)/I
1559  Capturing subpattern count = 0  Capturing subpattern count = 1
1560  No options  No options
1561  First char = 'a'  First char = 'a'
1562  No need char  No need char
1563    
1564  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1565  Capturing subpattern count = 0  Capturing subpattern count = 1
1566  No options  No options
1567  First char = 'a'  First char = 'a'
1568  Need char = 'g'  Need char = 'g'
1569    
1570  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1571  Capturing subpattern count = 0  Capturing subpattern count = 1
1572  No options  No options
1573  First char = 'a'  First char = 'a'
1574  No need char  No need char
1575    
1576  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1577  Capturing subpattern count = 0  Capturing subpattern count = 1
1578  No options  No options
1579  First char = 'a'  First char = 'a'
1580  Need char = 'g'  Need char = 'g'
1581    
1582  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1583  Capturing subpattern count = 0  Capturing subpattern count = 1
1584  No options  No options
1585  First char = 'a'  First char = 'a'
1586  Need char = 'b'  Need char = 'b'
1587    
1588  /ab\d{0}e/  /ab\d{0}e/I
1589  Capturing subpattern count = 0  Capturing subpattern count = 0
1590  No options  No options
1591  First char = 'a'  First char = 'a'
1592  Need char = 'e'  Need char = 'e'
1593    
1594  /a?b?/  /a?b?/I
1595  Capturing subpattern count = 0  Capturing subpattern count = 0
1596  No options  No options
1597  No first char  No first char
# Line 1590  No need char Line 1606  No need char
1606   0:   0:
1607      *** Failers      *** Failers
1608   0:   0:
1609      \N      \N
1610  No match  No match
1611    
1612  /|-/  /|-/I
1613  Capturing subpattern count = 0  Capturing subpattern count = 0
1614  No options  No options
1615  No first char  No first char
# Line 1606  No need char Line 1622  No need char
1622   0: -   0: -
1623      *** Failers      *** Failers
1624   0:   0:
1625      \Nabc      \Nabc
1626  No match  No match
1627    
1628  /a*(b+)(z)(z)/P  /^.?abcd/IS
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
 /^.?abcd/S  
1629  Capturing subpattern count = 0  Capturing subpattern count = 0
1630  Options: anchored  Options: anchored
1631  No first char  No first char
1632  Need char = 'd'  Need char = 'd'
1633  Study returned NULL  Subject length lower bound = 4
1634    No set of starting bytes
1635    
1636  /\(             # ( at start  /\(             # ( at start
1637    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1650  Study returned NULL Line 1640  Study returned NULL
1640    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1641    )*            # Zero or more contents    )*            # Zero or more contents
1642    \)            # Closing )    \)            # Closing )
1643    /x    /Ix
1644  Capturing subpattern count = 0  Capturing subpattern count = 0
1645  Options: extended  Options: extended
1646  First char = '('  First char = '('
# Line 1661  Need char = ')' Line 1651  Need char = ')'
1651   0: (abcd)   0: (abcd)
1652      xyz(abcd)      xyz(abcd)
1653   0: (abcd)   0: (abcd)
1654      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1655   0: (ab(xy)cd)   0: (ab(xy)cd)
1656      (ab(xycd)pqr      (ab(xycd)pqr
1657   0: (xycd)   0: (xycd)
1658      () abc ()      () abc ()
1659   0: ()   0: ()
1660      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1661   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1662      *** Failers      *** Failers
1663  No match  No match
1664      abcd      abcd
1665  No match  No match
1666      abcd)      abcd)
1667  No match  No match
1668      (abcd      (abcd
1669  No match  No match
1670    
1671  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1672  Capturing subpattern count = 1  Capturing subpattern count = 1
1673  Options: extended  Options: extended
1674  First char = '('  First char = '('
1675  Need char = ')'  Need char = ')'
1676      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1677   0: (ab(xy)cd)   0: (ab(xy)cd)
1678   1: cd   1: cd
1679      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1692  Need char = ')' Line 1682  Need char = ')'
1682   0: (x(y)z)   0: (x(y)z)
1683   1: z   1: z
1684    
1685  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1686  Capturing subpattern count = 0  Capturing subpattern count = 0
1687  Options: extended  Options: extended
1688  First char = '('  First char = '('
# Line 1701  Need char = ')' Line 1691  Need char = ')'
1691   0: (abcd)   0: (abcd)
1692      (ab(xy)cd)      (ab(xy)cd)
1693   0: (xy)   0: (xy)
1694      (a(b(c)d)e)      (a(b(c)d)e)
1695   0: (c)   0: (c)
1696      ((ab))      ((ab))
1697   0: ((ab))   0: ((ab))
1698      *** Failers      *** Failers
1699  No match  No match
1700      ()      ()
1701  No match  No match
1702    
1703  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1704  Capturing subpattern count = 0  Capturing subpattern count = 0
1705  Options: extended  Options: extended
1706  First char = '('  First char = '('
# Line 1720  Need char = ')' Line 1710  Need char = ')'
1710      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1711   0: (fsh)   0: (fsh)
1712    
1713  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1714  Capturing subpattern count = 1  Capturing subpattern count = 1
1715  Options: extended  Options: extended
1716  First char = '('  First char = '('
# Line 1729  Need char = ')' Line 1719  Need char = ')'
1719   0: (ab(xy)cd)   0: (ab(xy)cd)
1720   1: cd   1: cd
1721    
1722  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1723  Capturing subpattern count = 2  Capturing subpattern count = 2
1724  Options: extended  Options: extended
1725  First char = '('  First char = '('
# Line 1739  Need char = ')' Line 1729  Need char = ')'
1729   1: ab(xy)cd   1: ab(xy)cd
1730   2: cd   2: cd
1731    
1732  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1733  Capturing subpattern count = 3  Capturing subpattern count = 3
1734  Options: extended  Options: extended
1735  First char = '('  First char = '('
# Line 1755  Need char = ')' Line 1745  Need char = ')'
1745   2: ab(xy)cd   2: ab(xy)cd
1746   3: cd   3: cd
1747    
1748  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1749  Capturing subpattern count = 3  Capturing subpattern count = 3
1750  Options: extended  Options: extended
1751  First char = '('  First char = '('
# Line 1771  Need char = ')' Line 1761  Need char = ')'
1761   2: 123   2: 123
1762   3: cd   3: cd
1763    
1764  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1765  Capturing subpattern count = 11  Capturing subpattern count = 11
1766  Options: extended  Options: extended
1767  First char = '('  First char = '('
# Line 1790  Need char = ')' Line 1780  Need char = ')'
1780  10: ab(xy)cd  10: ab(xy)cd
1781  11: cd  11: cd
1782    
1783  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1784  Capturing subpattern count = 3  Capturing subpattern count = 3
1785  Options: extended  Options: extended
1786  First char = '('  First char = '('
# Line 1799  Need char = ')' Line 1789  Need char = ')'
1789   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1790   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1791   2: 123   2: 123
  3: <unset>  
1792    
1793  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1794  Capturing subpattern count = 3  Capturing subpattern count = 3
1795  Options: extended  Options: extended
1796  First char = '('  First char = '('
# Line 1817  Need char = ')' Line 1806  Need char = ')'
1806   2: ij   2: ij
1807   3: (cd(ef)gh)   3: (cd(ef)gh)
1808    
1809  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1810    ------------------------------------------------------------------
1811            Bra
1812            ^
1813            [0-9A-Za-z]
1814            Ket
1815            End
1816    ------------------------------------------------------------------
1817    Capturing subpattern count = 0
1818    Options: anchored
1819    No first char
1820    No need char
1821    
1822    /^[[:^alnum:]]/DZ
1823    ------------------------------------------------------------------
1824            Bra
1825            ^
1826            [\x00-/:-@[-`{-\xff] (neg)
1827            Ket
1828            End
1829    ------------------------------------------------------------------
1830    Capturing subpattern count = 0
1831    Options: anchored
1832    No first char
1833    No need char
1834    
1835    /^[[:alpha:]]/DZ
1836    ------------------------------------------------------------------
1837            Bra
1838            ^
1839            [A-Za-z]
1840            Ket
1841            End
1842    ------------------------------------------------------------------
1843    Capturing subpattern count = 0
1844    Options: anchored
1845    No first char
1846    No need char
1847    
1848    /^[[:^alpha:]]/DZ
1849    ------------------------------------------------------------------
1850            Bra
1851            ^
1852            [\x00-@[-`{-\xff] (neg)
1853            Ket
1854            End
1855    ------------------------------------------------------------------
1856    Capturing subpattern count = 0
1857    Options: anchored
1858    No first char
1859    No need char
1860    
1861    /[_[:alpha:]]/IS
1862    Capturing subpattern count = 0
1863    No options
1864    No first char
1865    No need char
1866    Subject length lower bound = 1
1867    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
1868      _ 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
1869    
1870    /^[[:ascii:]]/DZ
1871  ------------------------------------------------------------------  ------------------------------------------------------------------
1872    0  37 Bra 0          Bra
1873    3     ^          ^
1874    4     [0-9A-Za-z]          [\x00-\x7f]
1875   37  37 Ket          Ket
1876   40     End          End
1877  ------------------------------------------------------------------  ------------------------------------------------------------------
1878  Capturing subpattern count = 0  Capturing subpattern count = 0
1879  Options: anchored  Options: anchored
1880  No first char  No first char
1881  No need char  No need char
1882    
1883  /^[[:alpha:]]/D  /^[[:^ascii:]]/DZ
1884  ------------------------------------------------------------------  ------------------------------------------------------------------
1885    0  37 Bra 0          Bra
1886    3     ^          ^
1887    4     [A-Za-z]          [\x80-\xff] (neg)
1888   37  37 Ket          Ket
1889   40     End          End
1890  ------------------------------------------------------------------  ------------------------------------------------------------------
1891  Capturing subpattern count = 0  Capturing subpattern count = 0
1892  Options: anchored  Options: anchored
1893  No first char  No first char
1894  No need char  No need char
1895    
1896  /^[[:ascii:]]/D  /^[[:blank:]]/DZ
1897  ------------------------------------------------------------------  ------------------------------------------------------------------
1898    0  37 Bra 0          Bra
1899    3     ^          ^
1900    4     [\x00-\x7f]          [\x09 ]
1901   37  37 Ket          Ket
1902   40     End          End
1903  ------------------------------------------------------------------  ------------------------------------------------------------------
1904  Capturing subpattern count = 0  Capturing subpattern count = 0
1905  Options: anchored  Options: anchored
1906  No first char  No first char
1907  No need char  No need char
1908    
1909  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1910  ------------------------------------------------------------------  ------------------------------------------------------------------
1911    0  37 Bra 0          Bra
1912    3     ^          ^
1913    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1914   37  37 Ket          Ket
1915   40     End          End
1916  ------------------------------------------------------------------  ------------------------------------------------------------------
1917  Capturing subpattern count = 0  Capturing subpattern count = 0
1918  Options: anchored  Options: anchored
1919  No first char  No first char
1920  No need char  No need char
1921    
1922  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1923    Capturing subpattern count = 0
1924    Contains explicit CR or LF match
1925    No options
1926    No first char
1927    No need char
1928    Subject length lower bound = 1
1929    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1930    
1931    /^[[:cntrl:]]/DZ
1932  ------------------------------------------------------------------  ------------------------------------------------------------------
1933    0  37 Bra 0          Bra
1934    3     ^          ^
1935    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
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  /^[[:digit:]]/D  /^[[:digit:]]/DZ
1945  ------------------------------------------------------------------  ------------------------------------------------------------------
1946    0  37 Bra 0          Bra
1947    3     ^          ^
1948    4     [0-9]          [0-9]
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  /^[[:graph:]]/D  /^[[:graph:]]/DZ
1958  ------------------------------------------------------------------  ------------------------------------------------------------------
1959    0  37 Bra 0          Bra
1960    3     ^          ^
1961    4     [!-~]          [!-~]
1962   37  37 Ket          Ket
1963   40     End          End
1964  ------------------------------------------------------------------  ------------------------------------------------------------------
1965  Capturing subpattern count = 0  Capturing subpattern count = 0
1966  Options: anchored  Options: anchored
1967  No first char  No first char
1968  No need char  No need char
1969    
1970  /^[[:lower:]]/D  /^[[:lower:]]/DZ
1971  ------------------------------------------------------------------  ------------------------------------------------------------------
1972    0  37 Bra 0          Bra
1973    3     ^          ^
1974    4     [a-z]          [a-z]
1975   37  37 Ket          Ket
1976   40     End          End
1977  ------------------------------------------------------------------  ------------------------------------------------------------------
1978  Capturing subpattern count = 0  Capturing subpattern count = 0
1979  Options: anchored  Options: anchored
1980  No first char  No first char
1981  No need char  No need char
1982    
1983  /^[[:print:]]/D  /^[[:print:]]/DZ
1984  ------------------------------------------------------------------  ------------------------------------------------------------------
1985    0  37 Bra 0          Bra
1986    3     ^          ^
1987    4     [ -~]          [ -~]
1988   37  37 Ket          Ket
1989   40     End          End
1990  ------------------------------------------------------------------  ------------------------------------------------------------------
1991  Capturing subpattern count = 0  Capturing subpattern count = 0
1992  Options: anchored  Options: anchored
1993  No first char  No first char
1994  No need char  No need char
1995    
1996  /^[[:punct:]]/D  /^[[:punct:]]/DZ
1997  ------------------------------------------------------------------  ------------------------------------------------------------------
1998    0  37 Bra 0          Bra
1999    3     ^          ^
2000    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2001   37  37 Ket          Ket
2002   40     End          End
2003  ------------------------------------------------------------------  ------------------------------------------------------------------
2004  Capturing subpattern count = 0  Capturing subpattern count = 0
2005  Options: anchored  Options: anchored
2006  No first char  No first char
2007  No need char  No need char
2008    
2009  /^[[:space:]]/D  /^[[:space:]]/DZ
2010  ------------------------------------------------------------------  ------------------------------------------------------------------
2011    0  37 Bra 0          Bra
2012    3     ^          ^
2013    4     [\x09-\x0d ]          [\x09-\x0d ]
2014   37  37 Ket          Ket
2015   40     End          End
2016  ------------------------------------------------------------------  ------------------------------------------------------------------
2017  Capturing subpattern count = 0  Capturing subpattern count = 0
2018  Options: anchored  Options: anchored
2019  No first char  No first char
2020  No need char  No need char
2021    
2022  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2023  ------------------------------------------------------------------  ------------------------------------------------------------------
2024    0  37 Bra 0          Bra
2025    3     ^          ^
2026    4     [A-Z]          [A-Z]
2027   37  37 Ket          Ket
2028   40     End          End
2029  ------------------------------------------------------------------  ------------------------------------------------------------------
2030  Capturing subpattern count = 0  Capturing subpattern count = 0
2031  Options: anchored  Options: anchored
2032  No first char  No first char
2033  No need char  No need char
2034    
2035  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2036  ------------------------------------------------------------------  ------------------------------------------------------------------
2037    0  37 Bra 0          Bra
2038    3     ^          ^
2039    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2040   37  37 Ket          Ket
2041   40     End          End
2042  ------------------------------------------------------------------  ------------------------------------------------------------------
2043  Capturing subpattern count = 0  Capturing subpattern count = 0
2044  Options: anchored  Options: anchored
2045  No first char  No first char
2046  No need char  No need char
2047    
2048  /^[[:word:]]/D  /^[[:word:]]/DZ
2049  ------------------------------------------------------------------  ------------------------------------------------------------------
2050    0  37 Bra 0          Bra
2051    3     ^          ^
2052    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2053   37  37 Ket          Ket
2054   40     End          End
2055  ------------------------------------------------------------------  ------------------------------------------------------------------
2056  Capturing subpattern count = 0  Capturing subpattern count = 0
2057  Options: anchored  Options: anchored
2058  No first char  No first char
2059  No need char  No need char
2060    
2061  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2062  ------------------------------------------------------------------  ------------------------------------------------------------------
2063    0  37 Bra 0          Bra
2064    3     ^          ^
2065    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2066   37  37 Ket          Ket
2067   40     End          End
2068  ------------------------------------------------------------------  ------------------------------------------------------------------
2069  Capturing subpattern count = 0  Capturing subpattern count = 0
2070  Options: anchored  Options: anchored
2071  No first char  No first char
2072  No need char  No need char
2073    
2074  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2075  ------------------------------------------------------------------  ------------------------------------------------------------------
2076    0  37 Bra 0          Bra
2077    3     ^          ^
2078    4     [\x00-/1-2:-\xff]          [\x00-/12:-\xff] (neg)
2079   37  37 Ket          Ket
2080   40     End          End
2081  ------------------------------------------------------------------  ------------------------------------------------------------------
2082  Capturing subpattern count = 0  Capturing subpattern count = 0
2083  Options: anchored  Options: anchored
2084  No first char  No first char
2085  No need char  No need char
2086    
2087  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2088  ------------------------------------------------------------------  ------------------------------------------------------------------
2089    0  37 Bra 0          Bra
2090    3     ^          ^
2091    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2092   37  37 Ket          Ket
2093   40     End          End
2094  ------------------------------------------------------------------  ------------------------------------------------------------------
2095  Capturing subpattern count = 0  Capturing subpattern count = 0
2096  Options: anchored  Options: anchored
2097  No first char  No first char
2098  No need char  No need char
2099    
2100  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2101  ------------------------------------------------------------------  ------------------------------------------------------------------
2102    0  36 Bra 0          Bra
2103    3     [%0-1A-Za-z]          [%01A-Za-z]
2104   36  36 Ket          Ket
2105   39     End          End
2106  ------------------------------------------------------------------  ------------------------------------------------------------------
2107  Capturing subpattern count = 0  Capturing subpattern count = 0
2108  No options  No options
2109  No first char  No first char
2110  No need char  No need char
2111    
2112  /[[.ch.]]/  /[[.ch.]]/I
2113  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2114    
2115  /[[=ch=]]/  /[[=ch=]]/I
2116  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2117    
2118  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2119  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2120    
2121  /[[:upper:]]/i  /[[:upper:]]/Ii
2122  Capturing subpattern count = 0  Capturing subpattern count = 0
2123  Options: caseless  Options: caseless
2124  No first char  No first char
2125  No need char  No need char
2126      A      A
2127   0: A   0: A
2128      a      a
2129   0: a   0: a
2130    
2131  /[[:lower:]]/i  /[[:lower:]]/Ii
2132  Capturing subpattern count = 0  Capturing subpattern count = 0
2133  Options: caseless  Options: caseless
2134  No first char  No first char
2135  No need char  No need char
2136      A      A
2137   0: A   0: A
2138      a      a
2139   0: a   0: a
2140    
2141  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2142  Capturing subpattern count = 1  Capturing subpattern count = 1
2143  Options: caseless  Options: caseless
 Case state changes  
2144  No first char  No first char
2145  No need char  No need char
2146      ab      ab
# Line 2096  No need char Line 2154  No need char
2154   1: a   1: a
2155      Ab      Ab
2156  No match  No match
2157      AB      AB
2158  No match  No match
2159    
2160  /[\200-\410]/  /[\200-\110]/I
2161  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2162    
2163  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2164  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2165    
2166  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2167  Capturing subpattern count = 0  Capturing subpattern count = 0
2168  No options  No options
2169  First char = 'T'  First char = 'T'
2170  Need char = 'd'  Need char = 'd'
2171    
2172  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2173  Capturing subpattern count = 271  Capturing subpattern count = 271
2174  Max back reference = 270  Max back reference = 270
2175  No options  No options
# Line 2391  No need char Line 2449  No need char
2449  270: ABC  270: ABC
2450  271: ABC  271: ABC
2451    
2452  /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
2453  Capturing subpattern count = 0  Capturing subpattern count = 0
2454  No options  No options
2455  First char = 'T'  First char = 'T'
2456  Need char = 't'  Need char = 't'
2457    
2458  /(main(O)?)+/  /(main(O)?)+/I
2459  Capturing subpattern count = 2  Capturing subpattern count = 2
2460  No options  No options
2461  First char = 'm'  First char = 'm'
# Line 2409  Need char = 'n' Line 2467  Need char = 'n'
2467   0: mainOmain   0: mainOmain
2468   1: main   1: main
2469   2: O   2: O
2470    
2471  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2472  Capturing subpattern count = 1  Capturing subpattern count = 1
2473  No options  No options
2474  First char = 'T'  First char = 'T'
2475  Need char = 's'  Need char = 's'
2476    
2477  /^(a(b)?)+$/  /^(a(b)?)+$/I
2478  Capturing subpattern count = 2  Capturing subpattern count = 2
2479  Options: anchored  Options: anchored
2480  No first char  No first char
# Line 2425  No need char Line 2483  No need char
2483   0: aba   0: aba
2484   1: a   1: a
2485   2: b   2: b
2486    
2487  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2488  Capturing subpattern count = 2  Capturing subpattern count = 2
2489  Options: anchored  Options: anchored
2490  No first char  No first char
2491  No need char  No need char
2492      aabbaa      aabbaa
2493   0: aabbaa   0: aabbaa
2494   1: aa   1: aa
2495   2: bb   2: bb
2496    
2497  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2498  Capturing subpattern count = 2  Capturing subpattern count = 2
2499  Options: anchored  Options: anchored
2500  No first char  No first char
2501  No need char  No need char
2502      aabbaa      aabbaa
2503   0: aabbaa   0: aabbaa
2504   1: aa   1: aa
2505   2: bb   2: bb
2506    
2507  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2508  Capturing subpattern count = 2  Capturing subpattern count = 2
2509  Options: anchored  Options: anchored
2510  No first char  No first char
2511  No need char  No need char
2512      aabbaa      aabbaa
2513   0: aabbaa   0: aabbaa
2514   1: aa   1: aa
2515   2: bb   2: bb
2516    
2517  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2518  Capturing subpattern count = 1  Capturing subpattern count = 1
2519  Options: anchored  Options: anchored
2520  No first char  No first char
2521  No need char  No need char
2522      aabbaa      aabbaa
2523   0: aabbaa   0: aabbaa
2524   1: bb   1: bb
2525    
2526  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2527  Capturing subpattern count = 3  Capturing subpattern count = 3
2528  Options: anchored  Options: anchored
2529  No first char  No first char
2530  No need char  No need char
2531      aabbaa      aabbaa
2532   0: aabbaa   0: aabbaa
2533   1: aa   1: aa
2534   2: bb   2: bb
2535   3: b   3: b
2536    
2537  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2538  Capturing subpattern count = 2  Capturing subpattern count = 2
2539  Options: anchored  Options: anchored
2540  No first char  No first char
2541  No need char  No need char
2542      aabbaa      aabbaa
2543   0: aabbaa   0: aabbaa
2544   1: bb   1: bb
2545   2: b   2: b
2546    
2547  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2548  Capturing subpattern count = 1  Capturing subpattern count = 1
2549  Options: anchored  Options: anchored
2550  No first char  No first char
2551  No need char  No need char
2552      aabbaa      aabbaa
2553   0: aabbaa   0: aabbaa
2554   1: bb   1: bb
2555    
2556  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2557  Capturing subpattern count = 1  Capturing subpattern count = 1
2558  Options: anchored  Options: anchored
2559  No first char  No first char
2560  No need char  No need char
2561      aabbbaa      aabbbaa
2562   0: aabbbaa   0: aabbbaa
2563   1: bbb   1: bbb
2564    
2565  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2566  Capturing subpattern count = 1  Capturing subpattern count = 1
2567  Options: anchored  Options: anchored
2568  No first char  No first char
2569  No need char  No need char
2570      aabbbaa      aabbbaa
2571   0: aabbbaa   0: aabbbaa
2572   1: bbb   1: bbb
2573    
2574  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2575  Capturing subpattern count = 1  Capturing subpattern count = 1
2576  Options: anchored  Options: anchored
2577  No first char  No first char
2578  No need char  No need char
2579      aabbaa      aabbaa
2580   0: aabbaa   0: aabbaa
2581   1: b   1: b
2582    
2583  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2584  Capturing subpattern count = 1  Capturing subpattern count = 1
2585  Options: anchored  Options: anchored
2586  No first char  No first char
2587  No need char  No need char
2588      aabbbaa      aabbbaa
2589   0: aabbbaa   0: aabbbaa
2590   1: bb   1: bb
2591    
2592  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2593  Capturing subpattern count = 3  Capturing subpattern count = 3
2594  Options: anchored  Options: anchored
2595  No first char  No first char
2596  No need char  No need char
2597      aabbbaa      aabbbaa
2598   0: aabbbaa   0: aabbbaa
2599   1: aa   1: aa
2600   2: bbb   2: bbb
2601   3: bb   3: bb
2602    
2603  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2604  Capturing subpattern count = 3  Capturing subpattern count = 3
2605  Options: anchored  Options: anchored
2606  No first char  No first char
2607  No need char  No need char
2608      aabbbbaa      aabbbbaa
2609   0: aabbbbaa   0: aabbbbaa
2610   1: aa   1: aa
2611   2: bbbb   2: bbbb
2612   3: bb   3: bb
2613    
2614  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2615  Capturing subpattern count = 0  Capturing subpattern count = 0
2616  No options  No options
2617  First char = '-'  First char = '-'
2618  Need char = '-'  Need char = '-'
2619    
2620  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2621  ------------------------------------------------------------------  ------------------------------------------------------------------
2622    0   3 Bra 0          Bra
2623    3   3 Ket          Ket
2624    6     End          End
2625  ------------------------------------------------------------------  ------------------------------------------------------------------
2626  Capturing subpattern count = 0  Capturing subpattern count = 0
2627  Options: extended  Options: extended
2628  No first char  No first char
2629  No need char  No need char
2630    
2631  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 13  
2632  ------------------------------------------------------------------  ------------------------------------------------------------------
2633    0   6 Bra 0          Bra
2634    3   1 a          a
2635    6   6 Ket          Ket
2636    9     End          End
2637  ------------------------------------------------------------------  ------------------------------------------------------------------
2638  Capturing subpattern count = 0  Capturing subpattern count = 0
2639  Options: extended  Options: extended
2640  First char = 'a'  First char = 'a'
2641  No need char  No need char
2642    
2643  /[\s]/D  /[\s]/DZ
2644  ------------------------------------------------------------------  ------------------------------------------------------------------
2645    0  36 Bra 0          Bra
2646    3     [\x09-\x0a\x0c-\x0d ]          [\x09\x0a\x0c\x0d ]
2647   36  36 Ket          Ket
2648   39     End          End
2649  ------------------------------------------------------------------  ------------------------------------------------------------------
2650  Capturing subpattern count = 0  Capturing subpattern count = 0
2651  No options  No options
2652  No first char  No first char
2653  No need char  No need char
2654    
2655  /[\S]/D  /[\S]/DZ
2656  ------------------------------------------------------------------  ------------------------------------------------------------------
2657    0  36 Bra 0          Bra
2658    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2659   36  36 Ket          Ket
2660   39     End          End
2661  ------------------------------------------------------------------  ------------------------------------------------------------------
2662  Capturing subpattern count = 0  Capturing subpattern count = 0
2663  No options  No options
2664  No first char  No first char
2665  No need char  No need char
2666    
2667  /a(?i)b/D  /a(?i)b/DZ
2668  ------------------------------------------------------------------  ------------------------------------------------------------------
2669    0  11 Bra 0          Bra
2670    3   1 a          a
2671    6  01 Opt       /i b
2672    8   1 b          Ket
2673   11  11 Ket          End
  14     End  
2674  ------------------------------------------------------------------  ------------------------------------------------------------------
2675  Capturing subpattern count = 0  Capturing subpattern count = 0
2676  No options  No options
 Case state changes  
2677  First char = 'a'  First char = 'a'
2678  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2679      ab      ab
2680   0: ab   0: ab
2681      aB      aB
2682   0: aB   0: aB
2683      *** Failers      *** Failers
2684  No match  No match
2685      AB      AB
2686  No match  No match
2687    
2688  /(a(?i)b)/D  /(a(?i)b)/DZ
2689  ------------------------------------------------------------------  ------------------------------------------------------------------
2690    0  19 Bra 0          Bra
2691    3  11 Bra 1          CBra 1
2692    6   1 a          a
2693    9  01 Opt       /i b
2694   11   1 b          Ket
2695   14  11 Ket          Ket
2696   17  00 Opt          End
  19  19 Ket  
  22     End  
2697  ------------------------------------------------------------------  ------------------------------------------------------------------
2698  Capturing subpattern count = 1  Capturing subpattern count = 1
2699  No options  No options
 Case state changes  
2700  First char = 'a'  First char = 'a'
2701  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2702      ab      ab
# Line 2654  Need char = 'b' (caseless) Line 2705  Need char = 'b' (caseless)
2705      aB      aB
2706   0: aB   0: aB
2707   1: aB   1: aB
2708      *** Failers      *** Failers
2709  No match  No match
2710      AB      AB
2711  No match  No match
2712    
2713  /   (?i)abc/xD  /   (?i)abc/IxDZ
2714  ------------------------------------------------------------------  ------------------------------------------------------------------
2715    0   8 Bra 0          Bra
2716    3   3 abc       /i abc
2717    8   8 Ket          Ket
2718   11     End          End
2719  ------------------------------------------------------------------  ------------------------------------------------------------------
2720  Capturing subpattern count = 0  Capturing subpattern count = 0
2721  Options: caseless extended  Options: caseless extended
# Line 2672  First char = 'a' (caseless) Line 2723  First char = 'a' (caseless)
2723  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2724    
2725  /#this is a comment  /#this is a comment
2726    (?i)abc/xD    (?i)abc/IxDZ
2727  ------------------------------------------------------------------  ------------------------------------------------------------------
2728    0   8 Bra 0          Bra
2729    3   3 abc       /i abc
2730    8   8 Ket          Ket
2731   11     End          End
2732  ------------------------------------------------------------------  ------------------------------------------------------------------
2733  Capturing subpattern count = 0  Capturing subpattern count = 0
2734  Options: caseless extended  Options: caseless extended
2735  First char = 'a' (caseless)  First char = 'a' (caseless)
2736  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2737    
2738  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2739  ------------------------------------------------------------------  ------------------------------------------------------------------
2740    0 307 Bra 0          Bra
2741    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2742  255  50 12345678901234567890123456789012345678901234567890          Ket
2743  307 307 Ket          End
 310     End  
2744  ------------------------------------------------------------------  ------------------------------------------------------------------
2745  Capturing subpattern count = 0  Capturing subpattern count = 0
2746  No options  No options
2747  First char = '1'  First char = '1'
2748  Need char = '0'  Need char = '0'
2749    
2750  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2751  ------------------------------------------------------------------  ------------------------------------------------------------------
2752    0 307 Bra 0          Bra
2753    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2754  255  50 12345678901234567890123456789012345678901234567890          Ket
2755  307 307 Ket          End
 310     End  
2756  ------------------------------------------------------------------  ------------------------------------------------------------------
2757  Capturing subpattern count = 0  Capturing subpattern count = 0
2758  No options  No options
2759  First char = '1'  First char = '1'
2760  Need char = '0'  Need char = '0'
2761    
2762  /\Q\E/D  /\Q\E/DZ
2763  ------------------------------------------------------------------  ------------------------------------------------------------------
2764    0   3 Bra 0          Bra
2765    3   3 Ket          Ket
2766    6     End          End
2767  ------------------------------------------------------------------  ------------------------------------------------------------------
2768  Capturing subpattern count = 0  Capturing subpattern count = 0
2769  No options  No options
# Line 2723  No need char Line 2772  No need char
2772      \      \
2773   0:   0:
2774    
2775  /\Q\Ex/D  /\Q\Ex/DZ
2776  ------------------------------------------------------------------  ------------------------------------------------------------------
2777    0   6 Bra 0          Bra
2778    3   1 x          x
2779    6   6 Ket          Ket
2780    9     End          End
2781  ------------------------------------------------------------------  ------------------------------------------------------------------
2782  Capturing subpattern count = 0  Capturing subpattern count = 0
2783  No options  No options
2784  First char = 'x'  First char = 'x'
2785  No need char  No need char
2786    
2787  / \Q\E/D  / \Q\E/DZ
2788  ------------------------------------------------------------------  ------------------------------------------------------------------
2789    0   6 Bra 0          Bra
2790    3   1  
2791    6   6 Ket          Ket
2792    9     End          End
2793  ------------------------------------------------------------------  ------------------------------------------------------------------
2794  Capturing subpattern count = 0  Capturing subpattern count = 0
2795  No options  No options
2796  First char = ' '  First char = ' '
2797  No need char  No need char
2798    
2799  /a\Q\E/D  /a\Q\E/DZ
2800  ------------------------------------------------------------------  ------------------------------------------------------------------
2801    0   6 Bra 0          Bra
2802    3   1 a          a
2803    6   6 Ket          Ket
2804    9     End          End
2805  ------------------------------------------------------------------  ------------------------------------------------------------------
2806  Capturing subpattern count = 0  Capturing subpattern count = 0
2807  No options  No options
# Line 2762  No need char Line 2811  No need char
2811   0: a   0: a
2812    bca    bca
2813   0: a   0: a
2814    bac    bac
2815   0: a   0: a
2816    
2817  /a\Q\Eb/D  /a\Q\Eb/DZ
2818  ------------------------------------------------------------------  ------------------------------------------------------------------
2819    0   9 Bra 0          Bra
2820    3   1 a          ab
2821    6   1 b          Ket
2822    9   9 Ket          End
  12     End  
2823  ------------------------------------------------------------------  ------------------------------------------------------------------
2824  Capturing subpattern count = 0  Capturing subpattern count = 0
2825  No options  No options
# Line 2780  Need char = 'b' Line 2828  Need char = 'b'
2828    abc    abc
2829   0: ab   0: ab
2830    
2831  /\Q\Eabc/D  /\Q\Eabc/DZ
2832  ------------------------------------------------------------------  ------------------------------------------------------------------
2833    0   8 Bra 0          Bra
2834    3   3 abc          abc
2835    8   8 Ket          Ket
2836   11     End          End
2837  ------------------------------------------------------------------  ------------------------------------------------------------------
2838  Capturing subpattern count = 0  Capturing subpattern count = 0
2839  No options  No options
2840  First char = 'a'  First char = 'a'
2841  Need char = 'c'  Need char = 'c'
2842    
2843  /x*+\w/D  /x*+\w/DZ
2844  ------------------------------------------------------------------  ------------------------------------------------------------------
2845    0  12 Bra 0          Bra
2846    3   5 Once          x*+
2847    6     x*          \w
2848    8   5 Ket          Ket
2849   11     \w          End
  12  12 Ket  
  15     End  
2850  ------------------------------------------------------------------  ------------------------------------------------------------------
2851  Capturing subpattern count = 0  Capturing subpattern count = 0
2852  No options  No options
# Line 2810  No need char Line 2856  No need char
2856   0: F   0: F
2857      xxxxx      xxxxx
2858  No match  No match
2859    
2860  /x?+/D  /x?+/DZ
2861  ------------------------------------------------------------------  ------------------------------------------------------------------
2862    0  11 Bra 0          Bra
2863    3   5 Once          x?+
2864    6     x?          Ket
2865    8   5 Ket          End
  11  11 Ket  
  14     End  
2866  ------------------------------------------------------------------  ------------------------------------------------------------------
2867  Capturing subpattern count = 0  Capturing subpattern count = 0
2868  No options  No options
2869  No first char  No first char
2870  No need char  No need char
2871    
2872  /x++/D  /x++/DZ
2873  ------------------------------------------------------------------  ------------------------------------------------------------------
2874    0  11 Bra 0          Bra
2875    3   5 Once          x++
2876    6     x+          Ket
2877    8   5 Ket          End
  11  11 Ket  
  14     End  
2878  ------------------------------------------------------------------  ------------------------------------------------------------------
2879  Capturing subpattern count = 0  Capturing subpattern count = 0
2880  No options  No options
2881  First char = 'x'  First char = 'x'
2882  No need char  No need char
2883    
2884  /x{1,3}+/D  /x{1,3}+/DZ
2885  ------------------------------------------------------------------  ------------------------------------------------------------------
2886    0  16 Bra 0          Bra
2887    3  10 Once          Once
2888    6   1 x          x
2889    9     x{,2}          x{0,2}
2890   13  10 Ket          Ket
2891   16  16 Ket          Ket
2892   19     End          End
2893  ------------------------------------------------------------------  ------------------------------------------------------------------
2894  Capturing subpattern count = 0  Capturing subpattern count = 0
2895  No options  No options
2896  First char = 'x'  First char = 'x'
2897  No need char  No need char
2898    
2899  /(x)*+/D  /(x)*+/DZ
2900  ------------------------------------------------------------------  ------------------------------------------------------------------
2901    0  19 Bra 0          Bra
2902    3  13 Once          Braposzero
2903    6     Brazero          CBraPos 1
2904    7   6 Bra 1          x
2905   10   1 x          KetRpos
2906   13   6 KetRmax          Ket
2907   16  13 Ket          End
  19  19 Ket  
  22     End  
2908  ------------------------------------------------------------------  ------------------------------------------------------------------
2909  Capturing subpattern count = 1  Capturing subpattern count = 1
2910  No options  No options
2911  No first char  No first char
2912  No need char  No need char
2913    
2914  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2915  Capturing subpattern count = 1  Capturing subpattern count = 1
2916  Options: anchored  Options: anchored
2917  No first char  No first char
# Line 2883  No need char Line 2923  No need char
2923  No match  No match
2924      this is not a line with only words and spaces!      this is not a line with only words and spaces!
2925  No match  No match
2926    
2927  /(\d++)(\w)/  /(\d++)(\w)/I
2928  Capturing subpattern count = 2  Capturing subpattern count = 2
2929  No options  No options
2930  No first char  No first char
# Line 2895  No need char Line 2935  No need char
2935   2: a   2: a
2936      *** Failers      *** Failers
2937  No match  No match
2938      12345+      12345+
2939  No match  No match
2940    
2941  /a++b/  /a++b/I
2942  Capturing subpattern count = 0  Capturing subpattern count = 0
2943  No options  No options
2944  First char = 'a'  First char = 'a'
# Line 2906  Need char = 'b' Line 2946  Need char = 'b'
2946      aaab      aaab
2947   0: aaab   0: aaab
2948    
2949  /(a++b)/  /(a++b)/I
2950  Capturing subpattern count = 1  Capturing subpattern count = 1
2951  No options  No options
2952  First char = 'a'  First char = 'a'
# Line 2915  Need char = 'b' Line 2955  Need char = 'b'
2955   0: aaab   0: aaab
2956   1: aaab   1: aaab
2957    
2958  /(a++)b/  /(a++)b/I
2959  Capturing subpattern count = 1  Capturing subpattern count = 1
2960  No options  No options
2961  First char = 'a'  First char = 'a'
# Line 2924  Need char = 'b' Line 2964  Need char = 'b'
2964   0: aaab   0: aaab
2965   1: aaa   1: aaa
2966    
2967  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
2968  Capturing subpattern count = 1  Capturing subpattern count = 1
2969  No options  No options
2970  No first char  No first char
# Line 2932  No need char Line 2972  No need char
2972      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
2973   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
2974   1: x   1: x
2975    
2976  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
2977  Capturing subpattern count = 1  Capturing subpattern count = 1
2978  No options  No options
2979  First char = '('  First char = '('
# Line 2946  Need char = ')' Line 2986  Need char = ')'
2986   1: xyz   1: xyz
2987      *** Failers      *** Failers
2988  No match  No match
2989      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
2990  No match  No match
2991    
2992  /(abc){1,3}+/D  /(abc){1,3}+/DZ
2993  ------------------------------------------------------------------  ------------------------------------------------------------------
2994    0  50 Bra 0          Bra
2995    3  44 Once          Once
2996    6   8 Bra 1          CBra 1
2997    9   3 abc          abc
2998   14   8 Ket          Ket
2999   17     Brazero          Brazero
3000   18  26 Bra 0          Bra
3001   21   8 Bra 1          CBra 1
3002   24   3 abc          abc
3003   29   8 Ket          Ket
3004   32     Brazero          Brazero
3005   33   8 Bra 1          CBra 1
3006   36   3 abc          abc
3007   41   8 Ket          Ket
3008   44  26 Ket          Ket
3009   47  44 Ket          Ket
3010   50  50 Ket          Ket
3011   53     End          End
3012  ------------------------------------------------------------------  ------------------------------------------------------------------
3013  Capturing subpattern count = 1  Capturing subpattern count = 1
3014  No options  No options
3015  First char = 'a'  First char = 'a'
3016  Need char = 'c'  Need char = 'c'
3017    
3018  /a+?+/  /a+?+/I
3019  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3020    
3021  /a{2,3}?+b/  /a{2,3}?+b/I
3022  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3023    
3024  /(?U)a+?+/  /(?U)a+?+/I
3025  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3026    
3027  /a{2,3}?+b/U  /a{2,3}?+b/IU
3028  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3029    
3030  /x(?U)a++b/D  /x(?U)a++b/DZ
3031  ------------------------------------------------------------------  ------------------------------------------------------------------
3032    0  17 Bra 0          Bra
3033    3   1 x          x
3034    6   5 Once          a++
3035    9     a+          b
3036   11   5 Ket          Ket
3037   14   1 b          End
  17  17 Ket  
  20     End  
3038  ------------------------------------------------------------------  ------------------------------------------------------------------
3039  Capturing subpattern count = 0  Capturing subpattern count = 0
3040  No options  No options
# Line 3005  Need char = 'b' Line 3043  Need char = 'b'
3043      xaaaab      xaaaab
3044   0: xaaaab   0: xaaaab
3045    
3046  /(?U)xa++b/D  /(?U)xa++b/DZ
3047  ------------------------------------------------------------------  ------------------------------------------------------------------
3048    0  17 Bra 0          Bra
3049    3   1 x          x
3050    6   5 Once          a++
3051    9     a+          b
3052   11   5 Ket          Ket
3053   14   1 b          End
  17  17 Ket  
  20     End  
3054  ------------------------------------------------------------------  ------------------------------------------------------------------
3055  Capturing subpattern count = 0  Capturing subpattern count = 0
3056  Options: ungreedy  Options: ungreedy
# Line 3023  Need char = 'b' Line 3059  Need char = 'b'
3059      xaaaab      xaaaab
3060   0: xaaaab   0: xaaaab
3061    
3062  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3063  ------------------------------------------------------------------  ------------------------------------------------------------------
3064    0 106 Bra 0          Bra
3065    3     ^          ^
3066    4  99 Bra 1          CBra 1
3067    7   5 Bra 2          CBra 2
3068   10     a+          a+
3069   12   5 Ket          Ket
3070   15  37 Bra 3          CBra 3
3071   18     [a-b]+?          [ab]+?
3072   52  37 Ket          Ket
3073   55  37 Bra 4          CBra 4
3074   58     [b-c]+          [bc]+
3075   92  37 Ket          Ket
3076   95   5 Bra 5          CBra 5
3077   98     \w*          \w*
3078  100   5 Ket          Ket
3079  103  99 Ket          Ket
3080  106 106 Ket          Ket
3081  109     End          End
3082  ------------------------------------------------------------------  ------------------------------------------------------------------
3083  Capturing subpattern count = 5  Capturing subpattern count = 5
3084  Options: anchored  Options: anchored
3085  No first char  No first char
3086  No need char  No need char
3087    
3088  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3089  ------------------------------------------------------------------  ------------------------------------------------------------------
3090    0  12 Bra 0          Bra
3091    3     ^          ^
3092    4   1 x          x
3093    7     a+?          a++
3094    9   1 b          b
3095   12  12 Ket          Ket
3096   15     End          End
3097  ------------------------------------------------------------------  ------------------------------------------------------------------
3098  Capturing subpattern count = 0  Capturing subpattern count = 0
3099  Options: anchored  Options: anchored
3100  No first char  No first char
3101  Need char = 'b'  Need char = 'b'
3102    
3103  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3104  ------------------------------------------------------------------  ------------------------------------------------------------------
3105    0  18 Bra 0          Bra
3106    3     ^          ^
3107    4   1 x          x
3108    7   5 Bra 1          CBra 1
3109   10     a+?          a+?
3110   12   5 Ket          Ket
3111   15   1 b          b
3112   18  18 Ket          Ket
3113   21     End          End
3114  ------------------------------------------------------------------  ------------------------------------------------------------------
3115  Capturing subpattern count = 1  Capturing subpattern count = 1
3116  Options: anchored  Options: anchored
3117  No first char  No first char
3118  Need char = 'b'  Need char = 'b'
3119    
3120  /[.x.]/  /[.x.]/I
3121  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3122    
3123  /[=x=]/  /[=x=]/I
3124  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3125    
3126  /[:x:]/  /[:x:]/I
3127  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
3128    
3129  /\l/  /\l/I
3130  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
   
 /\L/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\N{name}/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\pP/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
3131    
3132  /\PP/  /\L/I
3133  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3134    
3135  /\p{prop}/  /\N{name}/I
3136  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3137    
3138  /\P{prop}/  /\u/I
3139  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3140    
3141  /\u/  /\U/I
3142  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  Failed: PCRE does not support \L, \l, \N{name}, \U, or \u at offset 1
3143    
3144  /\U/  /[/I
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /\X/  
 Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1  
   
 /[/  
3145  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3146    
3147  /[a-/  /[a-/I
3148  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3149    
3150  /[[:space:]/  /[[:space:]/I
3151  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3152    
3153  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3154  ------------------------------------------------------------------  ------------------------------------------------------------------
3155    0  36 Bra 0          Bra
3156    3     [\x09-\x0a\x0c-\x0d ]          [\x09\x0a\x0c\x0d ]
3157   36  36 Ket          Ket
3158   39     End          End
3159  ------------------------------------------------------------------  ------------------------------------------------------------------
3160  Capturing subpattern count = 0  Capturing subpattern count = 0
3161  No options  No options
3162  No first char  No first char
3163  No need char  No need char
3164    
3165  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3166  ------------------------------------------------------------------  ------------------------------------------------------------------
3167    0  36 Bra 0          Bra
3168    3     [\x09-\x0d ]          [\x09-\x0d ]
3169   36  36 Ket          Ket
3170   39     End          End
3171  ------------------------------------------------------------------  ------------------------------------------------------------------
3172  Capturing subpattern count = 0  Capturing subpattern count = 0
3173  No options  No options
3174  No first char  No first char
3175  No need char  No need char
3176    
3177  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3178  ------------------------------------------------------------------  ------------------------------------------------------------------
3179    0  36 Bra 0          Bra
3180    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3181   36  36 Ket          Ket
3182   39     End          End
3183  ------------------------------------------------------------------  ------------------------------------------------------------------
3184  Capturing subpattern count = 0  Capturing subpattern count = 0
3185  No options  No options
3186  No first char  No first char
3187  No need char  No need char
3188    
3189  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3190  Capturing subpattern count = 0  Capturing subpattern count = 0
3191  Options: extended  Options: extended
3192  First char = '<'  First char = '<'
# Line 3181  Need char = '>' Line 3199  Need char = '>'
3199   0: <abc <123> hij>   0: <abc <123> hij>
3200      <abc <def> hij>      <abc <def> hij>
3201   0: <def>   0: <def>
3202      <abc<>def>      <abc<>def>
3203   0: <abc<>def>   0: <abc<>def>
3204      <abc<>      <abc<>
3205   0: <>   0: <>
3206      *** Failers      *** Failers
3207  No match  No match
3208      <abc      <abc
3209  No match  No match
3210    
3211  |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): 421  
3212  ------------------------------------------------------------------  ------------------------------------------------------------------
3213    0 417 Bra 0          Bra
3214    3 250 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:          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
3215  255 159 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
3216  416     \b          Ket
3217  417 417 Ket          End
 420     End  
3218  ------------------------------------------------------------------  ------------------------------------------------------------------
3219  Capturing subpattern count = 0  Capturing subpattern count = 0
3220  No options  No options
3221  First char = '8'  First char = '8'
3222  Need char = 'X'  Need char = 'X'
3223    
3224  |\$\<\.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): 416  
3225  ------------------------------------------------------------------  ------------------------------------------------------------------
3226    0 412 Bra 0          Bra
3227    3 250 $<.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[          $<.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
3228  255 154 %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
3229  411     \b          Ket
3230  412 412 Ket          End
 415     End  
3231  ------------------------------------------------------------------  ------------------------------------------------------------------
3232  Capturing subpattern count = 0  Capturing subpattern count = 0
3233  No options  No options
# Line 3230  No need char Line 3244  No need char
3244  /(.*)\d+/I  /(.*)\d+/I
3245  Capturing subpattern count = 1  Capturing subpattern count = 1
3246  No options  No options
3247  First char at start or follows \n  First char at start or follows newline
3248  No need char  No need char
3249    
3250  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3251  Capturing subpattern count = 1  Capturing subpattern count = 1
3252  Max back reference = 1  Max back reference = 1
# Line 3250  No need char Line 3264  No need char
3264  Capturing subpattern count = 2  Capturing subpattern count = 2
3265  Max back reference = 2  Max back reference = 2
3266  No options  No options
3267  First char at start or follows \n  First char at start or follows newline
3268  Need char = 'z'  Need char = 'z'
3269    
3270  /((.*))\d+\1/I  /((.*))\d+\1/I
# Line 3263  No need char Line 3277  No need char
3277   0: bc123bc   0: bc123bc
3278   1: bc   1: bc
3279   2: bc   2: bc
3280    
3281  /a[b]/I  /a[b]/I
3282  Capturing subpattern count = 0  Capturing subpattern count = 0
3283  No options  No options
# Line 3276  No options Line 3290  No options
3290  First char = 'a'  First char = 'a'
3291  No need char  No need char
3292    
3293  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3294  Capturing subpattern count = 0  Capturing subpattern count = 0
3295  Options: caseless  Options: caseless
3296  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3285  Need char = 'z' (caseless) Line 3299  Need char = 'z' (caseless)
3299  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3300  Capturing subpattern count = 0  Capturing subpattern count = 0
3301  No options  No options
 Case state changes  
3302  First char = 'a'  First char = 'a'
3303  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3304    
# Line 3319  No options Line 3332  No options
3332  No first char  No first char
3333  Need char = 'a'  Need char = 'a'
3334    
3335  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3336  Capturing subpattern count = 0  Capturing subpattern count = 1
3337  No options  No options
3338  First char = 'a'  First char = 'a'
3339  No need char  No need char
3340    
3341  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3342  Capturing subpattern count = 0  Capturing subpattern count = 1
3343  No options  No options
3344  First char = 'a'  First char = 'a'
3345  Need char = 'z'  Need char = 'z'
3346    
3347  /(?(1)abz)/I  /(?(1)abz)(.)/I
3348  Capturing subpattern count = 0  Capturing subpattern count = 1
3349  No options  No options
3350  No first char  No first char
3351  No need char  No need char
3352    
3353  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3354  Capturing subpattern count = 0  Capturing subpattern count = 1
3355  No options  No options
3356  No first char  No first char
3357  Need char = '3'  Need char = '3'
# Line 3378  Capturing subpattern count = 0 Line 3391  Capturing subpattern count = 0
3391  No options  No options
3392  No first char  No first char
3393  No need char  No need char
3394  Study size = 40  Subject length lower bound = 1
3395  Starting character set: a b  Starting byte set: a b
3396    
3397  /[^a]/I  /[^a]/I
3398  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3398  Capturing subpattern count = 0 Line 3411  Capturing subpattern count = 0
3411  No options  No options
3412  No first char  No first char
3413  Need char = '6'  Need char = '6'
3414  Study size = 40  Subject length lower bound = 4
3415  Starting character set: 0 1 2 3 4 5 6 7 8 9  Starting byte set: 0 1 2 3 4 5 6 7 8 9
3416    
3417  /a^b/I  /a^b/I
3418  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3407  No options Line 3420  No options
3420  First char = 'a'  First char = 'a'
3421  Need char = 'b'  Need char = 'b'
3422    
3423  /^a/mI  /^a/Im
3424  Capturing subpattern count = 0  Capturing subpattern count = 0
3425  Options: multiline  Options: multiline
3426  First char at start or follows \n  First char at start or follows newline
3427  Need char = 'a'  Need char = 'a'
3428    abcde    abcde
3429   0: a   0: a
3430    xy\nabc    xy\nabc
3431   0: a   0: a
3432    *** Failers    *** Failers
3433  No match  No match
3434    xyabc    xyabc
3435  No match  No match
3436    
3437  /c|abc/I  /c|abc/I
# Line 3432  Capturing subpattern count = 0 Line 3445  Capturing subpattern count = 0
3445  Options: caseless  Options: caseless
3446  No first char  No first char
3447  No need char  No need char
3448  Study size = 40  Subject length lower bound = 1
3449  Starting character set: A B a b  Starting byte set: A B a b
3450    
3451  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3452  Capturing subpattern count = 0  Capturing subpattern count = 0
3453  No options  No options
 Case state changes  
3454  No first char  No first char
3455  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3456  Study size = 40  Subject length lower bound = 3
3457  Starting character set: a b  Starting byte set: a b
3458    
3459  /abc(?C)def/  /abc(?C)def/I
3460  Capturing subpattern count = 0  Capturing subpattern count = 0
3461  No options  No options
3462  First char = 'a'  First char = 'a'
3463  Need char = 'f'  Need char = 'f'
3464      abcdef      abcdef
3465  --->abcdef  --->abcdef
3466    0 ^  ^    0 ^  ^       d
3467   0: abcdef   0: abcdef
3468      1234abcdef      1234abcdef
3469  --->1234abcdef  --->1234abcdef
3470    0     ^  ^    0     ^  ^       d
3471   0: abcdef   0: abcdef
3472      *** Failers      *** Failers
3473  No match  No match
3474      abcxyz      abcxyz
3475  No match  No match
3476      abcxyzf      abcxyzf
3477  --->abcxyzf  --->abcxyzf
3478    0 ^  ^    0 ^  ^        d
3479  No match  No match
3480    
3481  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3482  Capturing subpattern count = 0  Capturing subpattern count = 0
3483  No options  No options
3484  First char = 'a'  First char = 'a'
3485  Need char = 'f'  Need char = 'f'
3486      123abcdef      123abcdef
3487  --->123abcdef  --->123abcdef
3488    0    ^  ^    0    ^  ^       d
3489    1    ^    ^    1    ^    ^     f
3490   0: abcdef   0: abcdef
3491    
3492  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/IS
3493    Capturing subpattern count = 0
3494    No options
3495    No first char
3496    Need char = 'f'
3497    Subject length lower bound = 7
3498    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3499        1234abcdef
3500    --->1234abcdef
3501      1 ^              \d
3502      1  ^             \d
3503      1   ^            \d
3504      1    ^           \d
3505      2    ^   ^       d
3506     0: 4abcdef
3507        *** Failers
3508    No match
3509        abcdef
3510    No match
3511    
3512    /(?C1)\dabc(?C2)def/ISS
3513  Capturing subpattern count = 0  Capturing subpattern count = 0
3514  No options  No options
3515  No first char  No first char
3516  Need char = 'f'  Need char = 'f'
3517      1234abcdef      1234abcdef
3518  --->1234abcdef  --->1234abcdef
3519    1 ^    1 ^              \d
3520    1  ^    1  ^             \d
3521    1   ^    1   ^            \d
3522    1    ^    1    ^           \d
3523    2    ^   ^    2    ^   ^       d
3524   0: 4abcdef   0: 4abcdef
3525      *** Failers      *** Failers
3526  No match  No match
3527      abcdef      abcdef
3528  --->abcdef  --->abcdef
3529    1 ^    1 ^          \d
3530    1  ^    1  ^         \d
3531    1   ^    1   ^        \d
3532    1    ^    1    ^       \d
3533    1     ^    1     ^      \d
3534    1      ^    1      ^     \d
3535  No match  No match
3536    
3537  /(?C255)ab/  /(?C255)ab/I
3538  Capturing subpattern count = 0  Capturing subpattern count = 0
3539  No options  No options
3540  First char = 'a'  First char = 'a'
3541  Need char = 'b'  Need char = 'b'
3542    
3543  /(?C256)ab/  /(?C256)ab/I
3544  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3545    
3546  /(?Cab)xx/  /(?Cab)xx/I
3547  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3548    
3549  /(?C12vr)x/  /(?C12vr)x/I
3550  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3551    
3552  /abc(?C)def/  /abc(?C)def/I
3553  Capturing subpattern count = 0  Capturing subpattern count = 0
3554  No options  No options
3555  First char = 'a'  First char = 'a'
# Line 3526  Need char = 'f' Line 3558  Need char = 'f'
3558  No match  No match
3559      \x83\x0\x61bcdef      \x83\x0\x61bcdef
3560  --->\x83\x00abcdef  --->\x83\x00abcdef
3561    0         ^  ^    0         ^  ^       d
3562   0: abcdef   0: abcdef
3563    
3564  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3565  Capturing subpattern count = 1  Capturing subpattern count = 1
3566  No options  No options
3567  First char = 'a'  First char = 'a'
3568  Need char = 'f'  Need char = 'f'
3569      123abcdef      123abcdef
3570  --->123abcdef  --->123abcdef
3571    0    ^  ^    0    ^  ^       d
3572    1    ^    ^    1    ^    ^     f
3573   0: abcdef   0: abcdef
3574   1: abc   1: abc
3575      123abcdef\C+      123abcdef\C+
3576  Callout 0: last capture = 1  Callout 0: last capture = 1
3577   0: <unset>   0: <unset>
3578   1: abc   1: abc
3579  --->123abcdef  --->123abcdef
3580         ^  ^         ^  ^       d
3581  Callout 1: last capture = 1  Callout 1: last capture = 1
3582   0: <unset>   0: <unset>
3583   1: abc   1: abc
3584  --->123abcdef  --->123abcdef
3585         ^    ^         ^    ^     f
3586   0: abcdef   0: abcdef
3587   1: abc   1: abc
3588      123abcdef\C-      123abcdef\C-
3589   0: abcdef   0: abcdef
3590   1: abc   1: abc
3591      *** Failers      *** Failers
3592  No match  No match
3593      123abcdef\C!1      123abcdef\C!1
3594  --->123abcdef  --->123abcdef
3595    0    ^  ^    0    ^  ^       d
3596    1    ^    ^    1    ^    ^     f
3597  No match  No match
3598    
3599  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3600  Capturing subpattern count = 1  Capturing subpattern count = 1
3601  No options  No options
3602  No first char  No first char
3603  No need char  No need char
3604      abcabcabc      abcabcabc
3605  --->abcabcabc  --->abcabcabc
3606    0 ^    0 ^             (abc(?C1))*
3607    1 ^  ^    1 ^  ^          )
3608    1 ^     ^    1 ^     ^       )
3609    1 ^        ^    1 ^        ^    )
3610   0: abcabcabc   0: abcabcabc
3611   1: abc   1: abc
3612      abcabc\C!1!3      abcabc\C!1!3
3613  --->abcabc  --->abcabc
3614    0 ^    0 ^          (abc(?C1))*
3615    1 ^  ^    1 ^  ^       )
3616    1 ^     ^    1 ^     ^    )
3617   0: abcabc   0: abcabc
3618   1: abc   1: abc
3619      *** Failers      *** Failers
3620  --->*** Failers  --->*** Failers
3621    0 ^    0 ^               (abc(?C1))*
3622   0:   0:
3623      abcabcabc\C!1!3      abcabcabc\C!1!3
3624  --->abcabcabc  --->abcabcabc
3625    0 ^    0 ^             (abc(?C1))*
3626    1 ^  ^    1 ^  ^          )
3627    1 ^     ^    1 ^     ^       )
3628    1 ^        ^    1 ^        ^    )
3629   0: abcabc   0: abcabc
3630   1: abc   1: abc
3631    
3632  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3633  Capturing subpattern count = 1  Capturing subpattern count = 1
3634  No options  No options
3635  No first char  No first char
# Line 3606  No need char Line 3638  No need char
3638  Callout 0: last capture = -1  Callout 0: last capture = -1
3639   0: <unset>   0: <unset>
3640  --->123  --->123
3641      ^  ^      ^  ^    )
3642   0: 123   0: 123
3643   1: 123   1: 123
3644      123456\C+      123456\C+
3645  Callout 0: last capture = -1  Callout 0: last capture = -1
3646   0: <unset>   0: <unset>
3647  --->123456  --->123456
3648      ^  ^      ^  ^       )
3649  Callout 0: last capture = 1  Callout 0: last capture = 1
3650   0: <unset>   0: <unset>
3651   1: 123   1: 123
3652  --->123456  --->123456
3653      ^     ^      ^     ^    )
3654   0: 123456   0: 123456
3655   1: 456   1: 456
3656      123456789\C+      123456789\C+
3657  Callout 0: last capture = -1  Callout 0: last capture = -1
3658   0: <unset>   0: <unset>
3659  --->123456789  --->123456789
3660      ^  ^      ^  ^          )
3661  Callout 0: last capture = 1  Callout 0: last capture = 1
3662   0: <unset>   0: <unset>
3663   1: 123   1: 123
3664  --->123456789  --->123456789
3665      ^     ^      ^     ^       )
3666  Callout 0: last capture = 1  Callout 0: last capture = 1
3667   0: <unset>   0: <unset>
3668   1: 456   1: 456
3669  --->123456789  --->123456789
3670      ^        ^      ^        ^    )
3671   0: 123456789   0: 123456789
3672   1: 789   1: 789
3673    
3674  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3675  Capturing subpattern count = 2  Capturing subpattern count = 2
3676  No options  No options
3677  First char = 'x'  First char = 'x'
# Line 3650  Callout 0: last capture = 2 Line 3682  Callout 0: last capture = 2
3682   1: <unset>   1: <unset>
3683   2: xyz   2: xyz
3684  --->xyzabc  --->xyzabc
3685      ^  ^      ^  ^       p
3686  Callout 1: last capture = -1  Callout 1: last capture = -1
3687   0: <unset>   0: <unset>
3688  --->xyzabc  --->xyzabc
3689      ^      ^          x
3690   0: xyzabc   0: xyzabc
3691   1: xyzabc   1: xyzabc
3692    
3693  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3694  Capturing subpattern count = 3  Capturing subpattern count = 3
3695  No options  No options
3696  First char = 'X'  First char = 'X'
# Line 3670  Callout 0: last capture = 3 Line 3702  Callout 0: last capture = 3
3702   2: <unset>   2: <unset>
3703   3: xyz   3: xyz
3704  --->Xxyzabc  --->Xxyzabc
3705      ^   ^      ^   ^       p
3706  Callout 1: last capture = 1  Callout 1: last capture = 1
3707   0: <unset>   0: <unset>
3708   1: X   1: X
3709  --->Xxyzabc  --->Xxyzabc
3710      ^^      ^^          x
3711   0: Xxyzabc   0: Xxyzabc
3712   1: X   1: X
3713   2: xyzabc   2: xyzabc
3714    
3715  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3716  Capturing subpattern count = 1  Capturing subpattern count = 1
3717  No options  No options
3718  First char = 'a'  First char = 'a'
# Line 3690  Callout 0: last capture = 1 Line 3722  Callout 0: last capture = 1
3722   0: <unset>   0: <unset>
3723   1: abc   1: abc
3724  --->abcdef  --->abcdef
3725      ^      ^          a
3726   0: abcdef   0: abcdef
3727   1: abc   1: abc
3728    
3729  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3730  Capturing subpattern count = 1  Capturing subpattern count = 1
3731  No options  No options
3732  First char = 'a'  First char = 'a'
3733  Need char = 'z'  Need char = 'z'
3734      abcxyz\C+      abcxyz\C+
3735  Callout 1: last capture = 1  Callout 1: last capture = 1
3736   0: <unset>   0: <unset>
3737   1: abc   1: abc
3738  --->abcxyz  --->abcxyz
3739      ^  ^      ^  ^       d
3740  Callout 2: last capture = -1  Callout 2: last capture = -1
3741   0: <unset>   0: <unset>
3742  --->abcxyz  --->abcxyz
3743      ^      ^          a
3744   0: abcxyz   0: abcxyz
3745    
3746  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3747  Capturing subpattern count = 1  Capturing subpattern count = 1
3748  No options  No options
3749  First char = 'x'  First char = 'x'
# Line 3721  Callout 0: last capture = 1 Line 3753  Callout 0: last capture = 1
3753   0: <unset>   0: <unset>
3754   1: abc   1: abc
3755  --->abcxyz  --->abcxyz
3756         ^         ^       )
3757   0: xyz   0: xyz
3758   1: abc   1: abc
3759    
3760  /(?C)abc/  /a(b+)(c*)(?C1)/I
3761    Capturing subpattern count = 2
3762    No options
3763    First char = 'a'
3764    Need char = 'b'
3765        abbbbbccc\C*1
3766    --->abbbbbccc
3767      1 ^        ^
3768    Callout data = 1
3769      1 ^       ^
3770    Callout data = 1
3771      1 ^      ^
3772    Callout data = 1
3773      1 ^     ^
3774    Callout data = 1
3775      1 ^    ^
3776    Callout data = 1
3777      1 ^   ^
3778    Callout data = 1
3779      1 ^  ^
3780    Callout data = 1
3781      1 ^ ^
3782    Callout data = 1
3783    No match
3784    
3785    /a(b+?)(c*?)(?C1)/I
3786    Capturing subpattern count = 2
3787    No options
3788    First char = 'a'
3789    Need char = 'b'
3790        abbbbbccc\C*1
3791    --->abbbbbccc
3792      1 ^ ^
3793    Callout data = 1
3794      1 ^  ^
3795    Callout data = 1
3796      1 ^   ^
3797    Callout data = 1
3798      1 ^    ^
3799    Callout data = 1
3800      1 ^     ^
3801    Callout data = 1
3802      1 ^      ^
3803    Callout data = 1
3804      1 ^       ^
3805    Callout data = 1
3806      1 ^        ^
3807    Callout data = 1
3808    No match
3809    
3810    /(?C)abc/I
3811  Capturing subpattern count = 0  Capturing subpattern count = 0
3812  No options  No options
3813  First char = 'a'  First char = 'a'
3814  Need char = 'c'  Need char = 'c'
3815    
3816  /(?C)^abc/  /(?C)^abc/I
3817  Capturing subpattern count = 0  Capturing subpattern count = 0
3818  Options: anchored  Options: anchored
3819  No first char  No first char
3820  No need char  No need char
3821    
3822  /(?C)a|b/S  /(?C)a|b/IS
3823  Capturing subpattern count = 0  Capturing subpattern count = 0
3824  No options  No options
3825  No first char  No first char
3826  No need char  No need char
3827  Study size = 40  Subject length lower bound = 1
3828  Starting character set: a b  Starting byte set: a b
3829    
3830  /(?R)/  /(?R)/I
3831  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3832    
3833  /(a|(?R))/  /(a|(?R))/I
3834  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3835    
3836  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3837  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3838    
3839  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3840  Capturing subpattern count = 3  Capturing subpattern count = 3
3841  No options  No options
3842  First char = 'x'  First char = 'x'
# Line 3783  No need char Line 3865  No need char
3865   3: xxab   3: xxab
3866      *** Failers      *** Failers
3867  No match  No match
3868      xyab      xyab
3869  No match  No match
3870    
3871  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3872  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3873    
3874  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3875  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3876    
3877  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3878  Capturing subpattern count = 1  Capturing subpattern count = 1
3879  Options: anchored  Options: anchored
3880  No first char  No first char
# Line 3803  No need char Line 3885  No need char
3885      a(b)c      a(b)c
3886   0: a(b)c   0: a(b)c
3887   1: c   1: c
3888      a(b(c))d      a(b(c))d
3889   0: a(b(c))d   0: a(b(c))d
3890   1: d   1: d
3891      *** Failers)      *** Failers)
3892  No match  No match
3893      a(b(c)d      a(b(c)d
3894  No match  No match
3895    
3896  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3897  Capturing subpattern count = 1  Capturing subpattern count = 1
3898  Options: anchored  Options: anchored
3899  No first char  No first char
# Line 3826  Need char = '<' Line 3908  Need char = '<'
3908   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3909   1: (1(2)3)   1: (1(2)3)
3910    
3911  /(a(?1)b)/D  /(a(?1)b)/DZ
3912  ------------------------------------------------------------------  ------------------------------------------------------------------
3913    0  18 Bra 0          Bra
3914    3  12 Bra 1          CBra 1
3915    6   1 a          a
3916    9   3 Recurse          Recurse
3917   12   1 b          b
3918   15  12 Ket          Ket
3919   18  18 Ket          Ket
3920   21     End          End
3921  ------------------------------------------------------------------  ------------------------------------------------------------------
3922  Capturing subpattern count = 1  Capturing subpattern count = 1
3923  No options  No options
3924  First char = 'a'  First char = 'a'
3925  Need char = 'b'  Need char = 'b'
3926    
3927  /(a(?1)+b)/D  /(a(?1)+b)/DZ
3928  ------------------------------------------------------------------  ------------------------------------------------------------------
3929    0  24 Bra 0          Bra
3930    3  18 Bra 1          CBra 1
3931    6   1 a          a
3932    9   6 Bra 0          Once
3933   12   3 Recurse          Recurse
3934   15   6 KetRmax          KetRmax
3935   18   1 b          b
3936   21  18 Ket          Ket
3937   24  24 Ket          Ket
3938   27     End          End
3939  ------------------------------------------------------------------  ------------------------------------------------------------------
3940  Capturing subpattern count = 1  Capturing subpattern count = 1
3941  No options  No options
3942  First char = 'a'  First char = 'a'
3943  Need char = 'b'  Need char = 'b'
3944    
3945  /^\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  
 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))$/  
3946  Capturing subpattern count = 2  Capturing subpattern count = 2
3947  Options: anchored  Options: anchored
3948  No first char  No first char
# Line 3912  No need char Line 3961  No need char
3961  No match  No match
3962      ((2+2)*-3)-7)      ((2+2)*-3)-7)
3963  No match  No match
3964    
3965  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
3966  Capturing subpattern count = 2  Capturing subpattern count = 2
3967  Options: anchored  Options: anchored
3968  No first char  No first char
# Line 3922  No need char Line 3971  No need char
3971   0: xyz   0: xyz
3972   1: xyz   1: xyz
3973   2: y   2: y
3974      xxyzxyzz      xxyzxyzz
3975   0: xxyzxyzz   0: xxyzxyzz
3976   1: xxyzxyzz   1: xxyzxyzz
3977   2: xyzxyz   2: xyzxyz
# Line 3930  No need char Line 3979  No need char
3979  No match  No match
3980      xxyzz      xxyzz
3981  No match  No match
3982      xxyzxyzxyzz      xxyzxyzxyzz
3983  No match  No match
3984    
3985  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
3986  Capturing subpattern count = 2  Capturing subpattern count = 2
3987  Options: extended  Options: extended
3988  First char = '<'  First char = '<'
# Line 3954  Need char = '>' Line 4003  Need char = '>'
4003   0: <def>   0: <def>
4004   1: <def>   1: <def>
4005   2: <def>   2: <def>
4006      <abc<>def>      <abc<>def>
4007   0: <abc<>def>   0: <abc<>def>
4008   1: <abc<>def>   1: <abc<>def>
4009   2: <abc<>def>   2: <abc<>def>
4010      <abc<>      <abc<>
4011   0: <>   0: <>
4012   1: <>   1: <>
4013   2: <>   2: <>
# Line 3967  No match Line 4016  No match
4016      <abc      <abc
4017  No match  No match
4018    
4019  /(?1)/  /(?1)/I
4020  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4021    
4022  /((?2)(abc)/  /((?2)(abc)/I
4023  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4024    
4025  /^(abc)def(?1)/  /^(abc)def(?1)/I
4026  Capturing subpattern count = 1  Capturing subpattern count = 1
4027  Options: anchored  Options: anchored
4028  No first char  No first char
# Line 3982  No need char Line 4031  No need char
4031   0: abcdefabc   0: abcdefabc
4032   1: abc   1: abc
4033    
4034  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4035  Capturing subpattern count = 1  Capturing subpattern count = 1
4036  Options: anchored  Options: anchored
4037  No first char  No first char
# Line 3993  No need char Line 4042  No need char
4042      a=b      a=b
4043   0: a=b   0: a=b
4044   1: a   1: a
4045      a=bc      a=bc
4046   0: a=bc   0: a=bc
4047   1: a   1: a
4048    
4049  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4050  Capturing subpattern count = 2  Capturing subpattern count = 2
4051  Options: anchored  Options: anchored
4052  No first char  No first char
# Line 4010  No need char Line 4059  No need char
4059   0: a=b   0: a=b
4060   1: a   1: a
4061   2: b   2: b
4062      a=bc      a=bc
4063   0: a=bc   0: a=bc
4064   1: a   1: a
4065   2: c   2: c
4066    
4067  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4068  ------------------------------------------------------------------  ------------------------------------------------------------------
4069    0  33 Bra 0          Bra
4070    3   1 a          a
4071    6   6 Bra 1          CBra 1
4072    9   1 b          b
4073   12   6 Alt          Alt
4074   15   1 c          c
4075   18  12 Ket          Ket
4076   21   1 d          d
4077   24   6 Bra 2          CBra 2
4078   27   1 e          e
4079   30   6 Ket          Ket
4080   33  33 Ket          Ket
4081   36     End          End
4082  ------------------------------------------------------------------  ------------------------------------------------------------------
4083  Capturing subpattern count = 2  Capturing subpattern count = 2
4084  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4042  Need char = 'e' Line 4091  Need char = 'e'
4091   0: abde   0: abde
4092   1: b   1: b
4093   2: e   2: e
4094      acde      acde
4095   0: acde   0: acde
4096   1: c   1: c
4097   2: e   2: e
4098    
4099  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/D  /(?:a(?P<c>c(?P<d>d)))(?P<a>a)/DZ
4100  ------------------------------------------------------------------  ------------------------------------------------------------------
4101    0  39 Bra 0          Bra
4102    3  24 Bra 0          Bra
4103    6   1 a          a
4104    9  15 Bra 1          CBra 1
4105   12   1 c          c
4106   15   6 Bra 2          CBra 2
4107   18   1 d          d
4108   21   6 Ket          Ket
4109   24  15 Ket          Ket
4110   27  24 Ket          Ket
4111   30   6 Bra 3          CBra 3
4112   33   1 a          a
4113   36   6 Ket          Ket
4114   39  39 Ket          Ket
4115   42     End          End
4116  ------------------------------------------------------------------  ------------------------------------------------------------------
4117  Capturing subpattern count = 3  Capturing subpattern count = 3
4118  Named capturing subpatterns:  Named capturing subpatterns:
# Line 4074  No options