/[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 1513 by ph10, Wed Nov 19 20:57:13 2014 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    < forbid 8W
12    
13    /(a)b|/I
14  Capturing subpattern count = 1  Capturing subpattern count = 1
15    May match empty string
16  No options  No options
17  No first char  No first char
18  No need char  No need char
19    
20  /abc/  /abc/I
21  Capturing subpattern count = 0  Capturing subpattern count = 0
22  No options  No options
23  First char = 'a'  First char = 'a'
# Line 24  No match Line 35  No match
35      ABC      ABC
36  No match  No match
37    
38  /^abc/  /^abc/I
39  Capturing subpattern count = 0  Capturing subpattern count = 0
40  Options: anchored  Options: anchored
41  No first char  No first char
# Line 40  No match Line 51  No match
51      \Adefabc      \Adefabc
52  No match  No match
53    
54  /a+bc/  /a+bc/I
55  Capturing subpattern count = 0  Capturing subpattern count = 0
56  No options  No options
57  First char = 'a'  First char = 'a'
58  Need char = 'c'  Need char = 'c'
59    
60  /a*bc/  /a*bc/I
61  Capturing subpattern count = 0  Capturing subpattern count = 0
62  No options  No options
63  No first char  No first char
64  Need char = 'c'  Need char = 'c'
65    
66  /a{3}bc/  /a{3}bc/I
67  Capturing subpattern count = 0  Capturing subpattern count = 0
68  No options  No options
69  First char = 'a'  First char = 'a'
70  Need char = 'c'  Need char = 'c'
71    
72  /(abc|a+z)/  /(abc|a+z)/I
73  Capturing subpattern count = 1  Capturing subpattern count = 1
74  No options  No options
75  First char = 'a'  First char = 'a'
76  No need char  No need char
77    
78  /^abc$/  /^abc$/I
79  Capturing subpattern count = 0  Capturing subpattern count = 0
80  Options: anchored  Options: anchored
81  No first char  No first char
# Line 76  No match Line 87  No match
87      def\nabc      def\nabc
88  No match  No match
89    
90  /ab\gdef/X  /ab\idef/X
91  Failed: unrecognized character follows \ at offset 3  Failed: unrecognized character follows \ at offset 3
92    
93  /(?X)ab\gdef/X  /(?X)ab\idef/X
94  Failed: unrecognized character follows \ at offset 7  Failed: unrecognized character follows \ at offset 7
95    
96  /x{5,4}/  /x{5,4}/
# Line 94  Failed: missing terminating ] for charac Line 105  Failed: missing terminating ] for charac
105  /(?X)[\B]/  /(?X)[\B]/
106  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
107    
108    /(?X)[\R]/
109    Failed: invalid escape sequence in character class at offset 6
110    
111    /(?X)[\X]/
112    Failed: invalid escape sequence in character class at offset 6
113    
114    /[\B]/BZ
115    ------------------------------------------------------------------
116            Bra
117            B
118            Ket
119            End
120    ------------------------------------------------------------------
121    
122    /[\R]/BZ
123    ------------------------------------------------------------------
124            Bra
125            R
126            Ket
127            End
128    ------------------------------------------------------------------
129    
130    /[\X]/BZ
131    ------------------------------------------------------------------
132            Bra
133            X
134            Ket
135            End
136    ------------------------------------------------------------------
137    
138  /[z-a]/  /[z-a]/
139  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
140    
# Line 107  Failed: missing ) at offset 4 Line 148  Failed: missing ) at offset 4
148  Failed: missing ) after comment at offset 7  Failed: missing ) after comment at offset 7
149    
150  /(?z)abc/  /(?z)abc/
151  Failed: unrecognized character after (? at offset 2  Failed: unrecognized character after (? or (?- at offset 2
152    
153  /.*b/  /.*b/I
154  Capturing subpattern count = 0  Capturing subpattern count = 0
155  No options  No options
156  First char at start or follows \n  First char at start or follows newline
157  Need char = 'b'  Need char = 'b'
158    
159  /.*?b/  /.*?b/I
160  Capturing subpattern count = 0  Capturing subpattern count = 0
161  No options  No options
162  First char at start or follows \n  First char at start or follows newline
163  Need char = 'b'  Need char = 'b'
164    
165  /cat|dog|elephant/  /cat|dog|elephant/I
166  Capturing subpattern count = 0  Capturing subpattern count = 0
167  No options  No options
168  No first char  No first char
# Line 131  No need char Line 172  No need char
172      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
173   0: elephant   0: elephant
174    
175  /cat|dog|elephant/S  /cat|dog|elephant/IS
176  Capturing subpattern count = 0  Capturing subpattern count = 0
177  No options  No options
178  No first char  No first char
179  No need char  No need char
180  Study size = 40  Subject length lower bound = 3
181  Starting character set: c d e  Starting chars: c d e
182      this sentence eventually mentions a cat      this sentence eventually mentions a cat
183   0: cat   0: cat
184      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
185   0: elephant   0: elephant
186    
187  /cat|dog|elephant/iS  /cat|dog|elephant/IiS
188  Capturing subpattern count = 0  Capturing subpattern count = 0
189  Options: caseless  Options: caseless
190  No first char  No first char
191  No need char  No need char
192  Study size = 40  Subject length lower bound = 3
193  Starting character set: C D E c d e  Starting chars: C D E c d e
194      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
195   0: CAT   0: CAT
196      this sentences rambles on and on for a while to elephant ElePhant      this sentences rambles on and on for a while to elephant ElePhant
197   0: elephant   0: elephant
198    
199  /a|[bcd]/S  /a|[bcd]/IS
200  Capturing subpattern count = 0  Capturing subpattern count = 0
201  No options  No options
202  No first char  No first char
203  No need char  No need char
204  Study size = 40  Subject length lower bound = 1
205  Starting character set: a b c d  Starting chars: a b c d
206    
207  /(a|[^\dZ])/S  /(a|[^\dZ])/IS
208  Capturing subpattern count = 1  Capturing subpattern count = 1
209  No options  No options
210  No first char  No first char
211  No need char  No need char
212  Study size = 40  Subject length lower bound = 1
213  Starting character set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting chars: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
214    \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
215    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
216    ? @ 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 225  Starting character set: \x00 \x01 \x02 \
225    \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
226    \xfc \xfd \xfe \xff    \xfc \xfd \xfe \xff
227    
228  /(a|b)*[\s]/S  /(a|b)*[\s]/IS
229  Capturing subpattern count = 1  Capturing subpattern count = 1
230  No options  No options
231  No first char  No first char
232  No need char  No need char
233  Study size = 40  Subject length lower bound = 1
234  Starting character set: \x09 \x0a \x0c \x0d \x20 a b  Starting chars: \x09 \x0a \x0b \x0c \x0d \x20 a b
235    
236  /(ab\2)/  /(ab\2)/
237  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 239  Failed: reference to non-existent subpat
239  /{4,5}abc/  /{4,5}abc/
240  Failed: nothing to repeat at offset 4  Failed: nothing to repeat at offset 4
241    
242  /(a)(b)(c)\2/  /(a)(b)(c)\2/I
243  Capturing subpattern count = 3  Capturing subpattern count = 3
244  Max back reference = 2  Max back reference = 2
245  No options  No options
# Line 223  Matched, but too many substrings Line 264  Matched, but too many substrings
264   0: abcb   0: abcb
265   1: a   1: a
266   2: b   2: b
267      \O12abcb      \O12abcb
268   0: abcb   0: abcb
269   1: a   1: a
270   2: b   2: b
271   3: c   3: c
272    
273  /(a)bc|(a)(b)\2/  /(a)bc|(a)(b)\2/I
274  Capturing subpattern count = 3  Capturing subpattern count = 3
275  Max back reference = 2  Max back reference = 2
276  No options  No options
# Line 271  Matched, but too many substrings Line 312  Matched, but too many substrings
312   2: a   2: a
313   3: b   3: b
314    
315  /abc$/E  /abc$/IE
316  Capturing subpattern count = 0  Capturing subpattern count = 0
317  Options: dollar_endonly  Options: dollar_endonly
318  First char = 'a'  First char = 'a'
# Line 288  No match Line 329  No match
329  /(a)(b)(c)(d)(e)\6/  /(a)(b)(c)(d)(e)\6/
330  Failed: reference to non-existent subpattern at offset 17  Failed: reference to non-existent subpattern at offset 17
331    
332  /the quick brown fox/  /the quick brown fox/I
333  Capturing subpattern count = 0  Capturing subpattern count = 0
334  No options  No options
335  First char = 't'  First char = 't'
# Line 298  Need char = 'x' Line 339  Need char = 'x'
339      this is a line with the quick brown fox      this is a line with the quick brown fox
340   0: the quick brown fox   0: the quick brown fox
341    
342  /the quick brown fox/A  /the quick brown fox/IA
343  Capturing subpattern count = 0  Capturing subpattern count = 0
344  Options: anchored  Options: anchored
345  No first char  No first char
# Line 311  No match Line 352  No match
352  No match  No match
353    
354  /ab(?z)cd/  /ab(?z)cd/
355  Failed: unrecognized character after (? at offset 4  Failed: unrecognized character after (? or (?- at offset 4
356    
357  /^abc|def/  /^abc|def/I
358  Capturing subpattern count = 0  Capturing subpattern count = 0
359  No options  No options
360  No first char  No first char
# Line 323  No need char Line 364  No need char
364      abcdef\B      abcdef\B
365   0: def   0: def
366    
367  /.*((abc)$|(def))/  /.*((abc)$|(def))/I
368  Capturing subpattern count = 3  Capturing subpattern count = 3
369  No options  No options
370  First char at start or follows \n  First char at start or follows newline
371  No need char  No need char
372      defabc      defabc
373   0: defabc   0: defabc
# Line 338  No need char Line 379  No need char
379   2: <unset>   2: <unset>
380   3: def   3: def
381    
 /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  
   
382  /)/  /)/
383  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
384    
385  /a[]b/  /a[]b/
386  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
387    
388  /[^aeiou ]{3,}/  /[^aeiou ]{3,}/I
389  Capturing subpattern count = 0  Capturing subpattern count = 0
390  No options  No options
391  No first char  No first char
392  No need char  No need char
393      co-processors, and for      co-processors, and for
394   0: -pr   0: -pr
395    
396  /<.*>/  /<.*>/I
397  Capturing subpattern count = 0  Capturing subpattern count = 0
398  No options  No options
399  First char = '<'  First char = '<'
# Line 415  Need char = '>' Line 401  Need char = '>'
401      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
402   0: <def>ghi<klm>   0: <def>ghi<klm>
403    
404  /<.*?>/  /<.*?>/I
405  Capturing subpattern count = 0  Capturing subpattern count = 0
406  No options  No options
407  First char = '<'  First char = '<'
# Line 423  Need char = '>' Line 409  Need char = '>'
409      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
410   0: <def>   0: <def>
411    
412  /<.*>/U  /<.*>/IU
413  Capturing subpattern count = 0  Capturing subpattern count = 0
414  Options: ungreedy  Options: ungreedy
415  First char = '<'  First char = '<'
416  Need char = '>'  Need char = '>'
417      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
418   0: <def>   0: <def>
419    
420  /(?U)<.*>/  /(?U)<.*>/I
421  Capturing subpattern count = 0  Capturing subpattern count = 0
422  Options: ungreedy  Options: ungreedy
423  First char = '<'  First char = '<'
# Line 439  Need char = '>' Line 425  Need char = '>'
425      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
426   0: <def>   0: <def>
427    
428  /<.*?>/U  /<.*?>/IU
429  Capturing subpattern count = 0  Capturing subpattern count = 0
430  Options: ungreedy  Options: ungreedy
431  First char = '<'  First char = '<'
432  Need char = '>'  Need char = '>'
433      abc<def>ghi<klm>nop      abc<def>ghi<klm>nop
434   0: <def>ghi<klm>   0: <def>ghi<klm>
435    
436  /={3,}/U  /={3,}/IU
437  Capturing subpattern count = 0  Capturing subpattern count = 0
438  Options: ungreedy  Options: ungreedy
439  First char = '='  First char = '='
440  Need char = '='  Need char = '='
441      abc========def      abc========def
442   0: ===   0: ===
443    
444  /(?U)={3,}?/  /(?U)={3,}?/I
445  Capturing subpattern count = 0  Capturing subpattern count = 0
446  Options: ungreedy  Options: ungreedy
447  First char = '='  First char = '='
448  Need char = '='  Need char = '='
449      abc========def      abc========def
450   0: ========   0: ========
451    
452  /(?<!bar|cattle)foo/  /(?<!bar|cattle)foo/I
453  Capturing subpattern count = 0  Capturing subpattern count = 0
454    Max lookbehind = 6
455  No options  No options
456  First char = 'f'  First char = 'f'
457  Need char = 'o'  Need char = 'o'
458      foo      foo
459   0: foo   0: foo
460      catfoo      catfoo
461   0: foo   0: foo
462      *** Failers      *** Failers
463  No match  No match
464      the barfoo      the barfoo
465  No match  No match
466      and cattlefoo      and cattlefoo
467  No match  No match
468    
469  /(?<=a+)b/  /(?<=a+)b/
# Line 488  Failed: lookbehind assertion is not fixe Line 475  Failed: lookbehind assertion is not fixe
475  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
476  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
477    
478  /(?i)abc/  /(?i)abc/I
479  Capturing subpattern count = 0  Capturing subpattern count = 0
480  Options: caseless  Options: caseless
481  First char = 'a' (caseless)  First char = 'a' (caseless)
482  Need char = 'c' (caseless)  Need char = 'c' (caseless)
483    
484  /(a|(?m)a)/  /(a|(?m)a)/I
485  Capturing subpattern count = 1  Capturing subpattern count = 1
486  No options  No options
487  First char = 'a'  First char = 'a'
488  No need char  No need char
489    
490  /(?i)^1234/  /(?i)^1234/I
491  Capturing subpattern count = 0  Capturing subpattern count = 0
492  Options: anchored caseless  Options: anchored caseless
493  No first char  No first char
494  No need char  No need char
495    
496  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
497  Capturing subpattern count = 1  Capturing subpattern count = 1
498  Options: anchored  Options: anchored
 Case state changes  
499  No first char  No first char
500  No need char  No need char
501    
502  /(?s).*/  /(?s).*/I
503  Capturing subpattern count = 0  Capturing subpattern count = 0
504    May match empty string
505  Options: anchored dotall  Options: anchored dotall
506  No first char  No first char
507  No need char  No need char
508    
509  /[abcd]/S  /[abcd]/IS
510  Capturing subpattern count = 0  Capturing subpattern count = 0
511  No options  No options
512  No first char  No first char
513  No need char  No need char
514  Study size = 40  Subject length lower bound = 1
515  Starting character set: a b c d  Starting chars: a b c d
516    
517  /(?i)[abcd]/S  /(?i)[abcd]/IS
518  Capturing subpattern count = 0  Capturing subpattern count = 0
519  Options: caseless  Options: caseless
520  No first char  No first char
521  No need char  No need char
522  Study size = 40  Subject length lower bound = 1
523  Starting character set: A B C D a b c d  Starting chars: A B C D a b c d
524    
525  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
526  Capturing subpattern count = 1  Capturing subpattern count = 1
527  Options: multiline  Options: multiline
528  No first char  No first char
529  No need char  No need char
530  Study size = 40  Subject length lower bound = 1
531  Starting character set: b c x y  Starting chars: b c x y
532    
533  /(^a|^b)/m  /(^a|^b)/Im
534  Capturing subpattern count = 1  Capturing subpattern count = 1
535  Options: multiline  Options: multiline
536  First char at start or follows \n  First char at start or follows newline
537  No need char  No need char
538    
539  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
540  Capturing subpattern count = 1  Capturing subpattern count = 1
541  Options: caseless multiline  Options: caseless multiline
542  First char at start or follows \n  First char at start or follows newline
543  No need char  No need char
544    
545  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 562  Failed: conditional group contains more Line 549  Failed: conditional group contains more
549  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
550    
551  /(?(1a)/  /(?(1a)/
552  Failed: malformed number after (?( at offset 4  Failed: malformed number or name after (?( at offset 4
553    
554    /(?(1a))/
555    Failed: malformed number or name after (?( at offset 4
556    
557  /(?(?i))/  /(?(?i))/
558  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
559    
560  /(?(abc))/  /(?(abc))/
561  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
562    
563  /(?(?<ab))/  /(?(?<ab))/
564  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
565    
566  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
567  Capturing subpattern count = 1  Capturing subpattern count = 1
568  Max back reference = 1  Max back reference = 1
569  No options  No options
570  First char = 'b'  First char = 'b'
571  Need char = 'h'  Need char = 'h'
572    
573  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
574  Capturing subpattern count = 1  Capturing subpattern count = 1
575  Max back reference = 1  Max back reference = 1
576  No options  No options
 Case state changes  
577  First char = 'b' (caseless)  First char = 'b' (caseless)
578  Need char = 'h' (caseless)  Need char = 'h' (caseless)
579    
580  /((?i)b)/DS  /((?i)b)/IDZS
581  ------------------------------------------------------------------  ------------------------------------------------------------------
582    0  16 Bra 0          Bra
583    3   8 Bra 1          CBra 1
584    6  01 Opt       /i b
585    8   1 b          Ket
586   11   8 Ket          Ket
587   14  00 Opt          End
  16  16 Ket  
  19     End  
588  ------------------------------------------------------------------  ------------------------------------------------------------------
589  Capturing subpattern count = 1  Capturing subpattern count = 1
590  No options  No options
 Case state changes  
591  First char = 'b' (caseless)  First char = 'b' (caseless)
592  No need char  No need char
593  Study returned NULL  Subject length lower bound = 1
594    No starting char list
595    
596  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
597  Capturing subpattern count = 1  Capturing subpattern count = 1
598  No options  No options
 Case state changes  
599  No first char  No first char
600  No need char  No need char
601  Study size = 40  Subject length lower bound = 1
602  Starting character set: C a b c d  Starting chars: C a b c d
603    
604  /a$/  /a$/I
605  Capturing subpattern count = 0  Capturing subpattern count = 0
606  No options  No options
607  First char = 'a'  First char = 'a'
# Line 624  No need char Line 610  No need char
610   0: a   0: a
611      a\n      a\n
612   0: a   0: a
613      *** Failers      *** Failers
614  No match  No match
615      \Za      \Za
616  No match  No match
617      \Za\n      \Za\n
618  No match  No match
619    
620  /a$/m  /a$/Im
621  Capturing subpattern count = 0  Capturing subpattern count = 0
622  Options: multiline  Options: multiline
623  First char = 'a'  First char = 'a'
# Line 640  No need char Line 626  No need char
626   0: a   0: a
627      a\n      a\n
628   0: a   0: a
629      \Za\n      \Za\n
630   0: a   0: a
631      *** Failers      *** Failers
632  No match  No match
633      \Za      \Za
634  No match  No match
635    
636  /\Aabc/m  /\Aabc/Im
637  Capturing subpattern count = 0  Capturing subpattern count = 0
638    Max lookbehind = 1
639  Options: anchored multiline  Options: anchored multiline
640  No first char  No first char
641  No need char  No need char
642    
643  /^abc/m  /^abc/Im
644  Capturing subpattern count = 0  Capturing subpattern count = 0
645  Options: multiline  Options: multiline
646  First char at start or follows \n  First char at start or follows newline
647  Need char = 'c'  Need char = 'c'
648    
649  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
650  Capturing subpattern count = 5  Capturing subpattern count = 5
651  Options: anchored  Options: anchored
652  No first char  No first char
# Line 672  No need char Line 659  No need char
659   4: bbbbccccc   4: bbbbccccc
660   5: def   5: def
661    
662  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
663  Capturing subpattern count = 0  Capturing subpattern count = 0
664    Max lookbehind = 3
665  No options  No options
666  No first char  No first char
667  No need char  No need char
668  Study size = 40  Subject length lower bound = 1
669  Starting character set: a b  Starting chars: a b
670    
671  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
672  Capturing subpattern count = 1  Capturing subpattern count = 1
673    Max lookbehind = 3
674  No options  No options
675  No first char  No first char
676  Need char = 'a'  Need char = 'a'
677  Study size = 40  Subject length lower bound = 5
678  Starting character set: a o  Starting chars: a o
679    
680  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
681  Capturing subpattern count = 0  Capturing subpattern count = 0
682  No options  No options
683  No first char  No first char
684  No need char  No need char
685  Study size = 40  Subject length lower bound = 1
686  Starting character set: a b  Starting chars: a b
687    
688    /(?<=foo\n)^bar/Im
689    Capturing subpattern count = 0
690    Max lookbehind = 4
691    Contains explicit CR or LF match
692    Options: multiline
693    No first char
694    Need char = 'r'
695        foo\nbarbar
696     0: bar
697        ***Failers
698    No match
699        rhubarb
700    No match
701        barbell
702    No match
703        abc\nbarton
704    No match
705    
706  /(?<=foo\n)^bar/m  /^(?<=foo\n)bar/Im
707  Capturing subpattern count = 0  Capturing subpattern count = 0
708    Max lookbehind = 4
709    Contains explicit CR or LF match
710  Options: multiline  Options: multiline
711  First char at start or follows \n  First char at start or follows newline
712  Need char = 'r'  Need char = 'r'
713        foo\nbarbar
714     0: bar
715        ***Failers
716    No match
717        rhubarb
718    No match
719        barbell
720    No match
721        abc\nbarton
722    No match
723    
724  /(?>^abc)/m  /(?>^abc)/Im
725  Capturing subpattern count = 0  Capturing subpattern count = 0
726  Options: multiline  Options: multiline
727  First char at start or follows \n  First char at start or follows newline
728  Need char = 'c'  Need char = 'c'
729      abc      abc
730   0: abc   0: abc
# Line 713  Need char = 'c' Line 732  Need char = 'c'
732   0: abc   0: abc
733      *** Failers      *** Failers
734  No match  No match
735      defabc      defabc
736  No match  No match
737    
738  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 726  Failed: lookbehind assertion is not fixe Line 745  Failed: lookbehind assertion is not fixe
745  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
746    
747  /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'  
748    
749  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
750  Capturing subpattern count = 0  Capturing subpattern count = 0
751    Max lookbehind = 7
752  No options  No options
753  First char = '-'  First char = '-'
754  Need char = 't'  Need char = 't'
# Line 744  Need char = 't' Line 760  Need char = 't'
760  No match  No match
761      cart      cart
762  No match  No match
763      horse-and-cart      horse-and-cart
764  No match  No match
765    
766  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
767  Capturing subpattern count = 0  Capturing subpattern count = 0
768    Max lookbehind = 3
769    May match empty string
770  No options  No options
 Case state changes  
771  No first char  No first char
772  No need char  No need char
773    
774  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
775  Capturing subpattern count = 2  Capturing subpattern count = 2
776    Max lookbehind = 4
777    May match empty string
778  No options  No options
779  First char at start or follows \n  No first char
780  No need char  No need char
781      alphabetabcd      alphabetabcd
782   0: alphabetabcd   0: alphabetabcd
# Line 767  No need char Line 786  No need char
786   1: <unset>   1: <unset>
787   2: xyz   2: xyz
788    
789  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
790  Capturing subpattern count = 0  Capturing subpattern count = 0
791    Max lookbehind = 4
792  No options  No options
 Case state changes  
793  First char = 'Z'  First char = 'Z'
794  Need char = 'Z'  Need char = 'Z'
795      abxyZZ      abxyZZ
# Line 783  Need char = 'Z' Line 802  Need char = 'Z'
802   0: ZZ   0: ZZ
803      bZZ      bZZ
804   0: ZZ   0: ZZ
805      BZZ      BZZ
806   0: ZZ   0: ZZ
807      *** Failers      *** Failers
808  No match  No match
809      ZZ      ZZ
810  No match  No match
811      abXYZZ      abXYZZ
812  No match  No match
813      zzz      zzz
814  No match  No match
815      bzz      bzz
816  No match  No match
817    
818  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
819  Capturing subpattern count = 1  Capturing subpattern count = 1
820    Max lookbehind = 4
821  No options  No options
822  First char = 'b'  First char = 'b'
823  Need char = 'r'  Need char = 'r'
824      bar      bar
825   0: bar   0: bar
826      foobbar      foobbar
827   0: bar   0: bar
828      *** Failers      *** Failers
829  No match  No match
830      fooabar      fooabar
 No match  
   
 /This one is here because Perl 5.005_02 doesn't fail it/  
 Capturing subpattern count = 0  
 No options  
 First char = 'T'  
 Need char = 't'  
   
 /^(a)?(?(1)a|b)+$/  
 Capturing subpattern count = 1  
 Options: anchored  
 No first char  
 No need char  
     *** Failers  
 No match  
     a  
831  No match  No match
832    
833  /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
834  Capturing subpattern count = 0  Capturing subpattern count = 0
835  No options  No options
836  First char = 'T'  First char = 'T'
837  Need char = 'g'  Need char = 'g'
838    
839  /^(a\1?){4}$/  /^(a\1?){4}$/I
840  Capturing subpattern count = 1  Capturing subpattern count = 1
841  Max back reference = 1  Max back reference = 1
842  Options: anchored  Options: anchored
843  No first char  No first char
844  No need char  No need char
845        aaaa
846    No match
847      aaaaaa      aaaaaa
848   0: aaaaaa  No match
  1: aa  
849    
850  /These are syntax tests from Perl 5.005/  /Perl does not fail these two for the final subjects. Neither did PCRE until/
851    /release 8.01. The problem is in backtracking into a subpattern that contains/
852    No match
853    /a recursive reference to itself. PCRE has now made these into atomic patterns./
854    No match
855    
856    /^(xa|=?\1a){2}$/
857        xa=xaa
858     0: xa=xaa
859     1: =xaa
860        ** Failers
861    No match
862        xa=xaaa
863    No match
864    
865    /^(xa|=?\1a)+$/
866        xa=xaa
867     0: xa=xaa
868     1: =xaa
869        ** Failers
870    No match
871        xa=xaaa
872    No match
873    
874    /These are syntax tests from Perl 5.005/I
875  Capturing subpattern count = 0  Capturing subpattern count = 0
876  No options  No options
877  First char = 'T'  First char = 'T'
# Line 884  Failed: reference to non-existent subpat Line 913  Failed: reference to non-existent subpat
913  /(a)|\2/  /(a)|\2/
914  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
915    
916  /a[b-a]/i  /a[b-a]/Ii
917  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
918    
919  /a[]b/i  /a[]b/Ii
920  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
921    
922  /a[/i  /a[/Ii
923  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
924    
925  /*a/i  /*a/Ii
926  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
927    
928  /(*)b/i  /(*)b/Ii
929  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
930    
931  /abc)/i  /abc)/Ii
932  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
933    
934  /(abc/i  /(abc/Ii
935  Failed: missing ) at offset 4  Failed: missing ) at offset 4
936    
937  /a**/i  /a**/Ii
938  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
939    
940  /)(/i  /)(/Ii
941  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
942    
943  /:(?:/  /:(?:/
# Line 918  Failed: missing ) at offset 4 Line 947  Failed: missing ) at offset 4
947  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
948    
949  /a(?{)b/  /a(?{)b/
950  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
951    
952  /a(?{{})b/  /a(?{{})b/
953  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
954    
955  /a(?{}})b/  /a(?{}})b/
956  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
957    
958  /a(?{"{"})b/  /a(?{"{"})b/
959  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
960    
961  /a(?{"{"}})b/  /a(?{"{"}})b/
962  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
963    
964  /(?(1?)a|b)/  /(?(1?)a|b)/
965  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  
966    
967  /[a[:xyz:/  /[a[:xyz:/
968  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 976  Failed: numbers out of order in {} quant
976  /abc/\  /abc/\
977  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
978    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
979  /abc/\i  /abc/\i
980  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
981    
982  /(a)bc(d)/  /(a)bc(d)/I
983  Capturing subpattern count = 2  Capturing subpattern count = 2
984  No options  No options
985  First char = 'a'  First char = 'a'
# Line 975  Need char = 'd' Line 998  Need char = 'd'
998   1: a   1: a
999   2: d   2: d
1000  copy substring 5 failed -7  copy substring 5 failed -7
1001    
1002  /(.{20})/  /(.{20})/I
1003  Capturing subpattern count = 1  Capturing subpattern count = 1
1004  No options  No options
1005  No first char  No first char
# Line 987  No need char Line 1010  No need char
1010      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1011   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1012   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1013  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1014      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1015   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1016   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1017   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1018    
1019  /(.{15})/  /(.{15})/I
1020  Capturing subpattern count = 1  Capturing subpattern count = 1
1021  No options  No options
1022  No first char  No first char
# Line 1007  No need char Line 1030  No need char
1030   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1031   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1032    
1033  /(.{16})/  /(.{16})/I
1034  Capturing subpattern count = 1  Capturing subpattern count = 1
1035  No options  No options
1036  No first char  No first char
# Line 1018  No need char Line 1041  No need char
1041      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1042   0: abcdefghijklmnop   0: abcdefghijklmnop
1043   1: abcdefghijklmnop   1: abcdefghijklmnop
1044  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1045   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1046   0L abcdefghijklmnop   0L abcdefghijklmnop
1047   1L abcdefghijklmnop   1L abcdefghijklmnop
1048    
1049  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1050  Capturing subpattern count = 3  Capturing subpattern count = 3
1051  Options: anchored  Options: anchored
1052  No first char  No first char
1053  No need char  No need char
1054      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1055   0: adef   0: adef
1056   1: a   1: a
1057   2: <unset>   2: <unset>
# Line 1041  get substring 4 failed -7 Line 1064  get substring 4 failed -7
1064   1L a   1L a
1065   2L   2L
1066   3L f   3L f
1067      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1068   0: bcdef   0: bcdef
1069   1: bc   1: bc
1070   2: bc   2: bc
# Line 1054  get substring 4 failed -7 Line 1077  get substring 4 failed -7
1077   1L bc   1L bc
1078   2L bc   2L bc
1079   3L f   3L f
1080      adefghijk\C0      adefghijk\C0
1081   0: adef   0: adef
1082   1: a   1: a
1083   2: <unset>   2: <unset>
1084   3: f   3: f
1085   0C adef (4)   0C adef (4)
1086    
1087  /^abc\00def/  /^abc\00def/I
1088  Capturing subpattern count = 0  Capturing subpattern count = 0
1089  Options: anchored  Options: anchored
1090  No first char  No first char
1091  No need char  No need char
1092      abc\00def\L\C0      abc\00def\L\C0
1093   0: abc\x00def   0: abc\x00def
1094   0C abc (7)   0C abc\x00def (7)
1095   0L abc   0L abc
1096    
1097  /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]+
1098  )((?:[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]+
1099  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 428  
1100  Capturing subpattern count = 8  Capturing subpattern count = 8
1101    Contains explicit CR or LF match
1102  No options  No options
1103  First char = 'w'  First char = 'w'
1104  Need char = 'd'  Need char = 'd'
1105    
1106  /.*X/D  /.*X/IDZ
1107  ------------------------------------------------------------------  ------------------------------------------------------------------
1108    0   8 Bra 0          Bra
1109    3     Any*          Any*
1110    5   1 X          X
1111    8   8 Ket          Ket
1112   11     End          End
1113  ------------------------------------------------------------------  ------------------------------------------------------------------
1114  Capturing subpattern count = 0  Capturing subpattern count = 0
1115  No options  No options
1116  First char at start or follows \n  First char at start or follows newline
1117  Need char = 'X'  Need char = 'X'
1118    
1119  /.*X/Ds  /.*X/IDZs
1120  ------------------------------------------------------------------  ------------------------------------------------------------------
1121    0   8 Bra 0          Bra
1122    3     Any*          AllAny*
1123    5   1 X          X
1124    8   8 Ket          Ket
1125   11     End          End
1126  ------------------------------------------------------------------  ------------------------------------------------------------------
1127  Capturing subpattern count = 0  Capturing subpattern count = 0
1128  Options: anchored dotall  Options: anchored dotall
1129  No first char  No first char
1130  Need char = 'X'  Need char = 'X'
1131    
1132  /(.*X|^B)/D  /(.*X|^B)/IDZ
1133  ------------------------------------------------------------------  ------------------------------------------------------------------
1134    0  21 Bra 0          Bra
1135    3   8 Bra 1          CBra 1
1136    6     Any*          Any*
1137    8   1 X          X
1138   11   7 Alt          Alt
1139   14     ^          ^
1140   15   1 B          B
1141   18  15 Ket          Ket
1142   21  21 Ket          Ket
1143   24     End          End
1144  ------------------------------------------------------------------  ------------------------------------------------------------------
1145  Capturing subpattern count = 1  Capturing subpattern count = 1
1146  No options  No options
1147  First char at start or follows \n  First char at start or follows newline
1148  No need char  No need char
1149    
1150  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1151  ------------------------------------------------------------------  ------------------------------------------------------------------
1152    0  21 Bra 0          Bra
1153    3   8 Bra 1          CBra 1
1154    6     Any*          AllAny*
1155    8   1 X          X
1156   11   7 Alt          Alt
1157   14     ^          ^
1158   15   1 B          B
1159   18  15 Ket          Ket
1160   21  21 Ket          Ket
1161   24     End          End
1162  ------------------------------------------------------------------  ------------------------------------------------------------------
1163  Capturing subpattern count = 1  Capturing subpattern count = 1
1164  Options: anchored dotall  Options: anchored dotall
1165  No first char  No first char
1166  No need char  No need char
1167    
1168  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1169  ------------------------------------------------------------------  ------------------------------------------------------------------
1170    0  21 Bra 0          Bra
1171    3   8 Bra 1          CBra 1
1172    6     Any*          AllAny*
1173    8   1 X          X
1174   11   7 Alt          Alt
1175   14     ^          ^
1176   15   1 B          B
1177   18  15 Ket          Ket
1178   21  21 Ket          Ket
1179   24     End          End
1180  ------------------------------------------------------------------  ------------------------------------------------------------------
1181  Capturing subpattern count = 1  Capturing subpattern count = 1
1182  Options: anchored dotall  Options: anchored dotall
1183  No first char  No first char
1184  No need char  No need char
1185    
1186  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1187  ------------------------------------------------------------------  ------------------------------------------------------------------
1188    0  27 Bra 0          Bra
1189    3  10 Bra 0          Bra
1190    6  04 Opt          AllAny*
1191    8     Any*          X
1192   10   1 X          Alt
1193   13   9 Alt          ^
1194   16  04 Opt          B
1195   18     ^          Ket
1196   19   1 B          Ket
1197   22  19 Ket          End
  25  00 Opt  
  27  27 Ket  
  30     End  
1198  ------------------------------------------------------------------  ------------------------------------------------------------------
1199  Capturing subpattern count = 0  Capturing subpattern count = 0
1200  No options  Options: anchored
1201  First char at start or follows \n  No first char
1202  No need char  No need char
1203    
1204  /\Biss\B/+  /\Biss\B/I+
1205  Capturing subpattern count = 0  Capturing subpattern count = 0
1206    Max lookbehind = 1
1207  No options  No options
1208  First char = 'i'  First char = 'i'
1209  Need char = 's'  Need char = 's'
# Line 1190  Need char = 's' Line 1211  Need char = 's'
1211   0: iss   0: iss
1212   0+ issippi   0+ issippi
1213    
1214  /\Biss\B/+P  /iss/IG+
     Mississippi  
  0: iss  
  0+ issippi  
   
 /iss/G+  
1215  Capturing subpattern count = 0  Capturing subpattern count = 0
1216  No options  No options
1217  First char = 'i'  First char = 'i'
# Line 1206  Need char = 's' Line 1222  Need char = 's'
1222   0: iss   0: iss
1223   0+ ippi   0+ ippi
1224    
1225  /\Biss\B/G+  /\Biss\B/IG+
1226  Capturing subpattern count = 0  Capturing subpattern count = 0
1227    Max lookbehind = 1
1228  No options  No options
1229  First char = 'i'  First char = 'i'
1230  Need char = 's'  Need char = 's'
# Line 1215  Need char = 's' Line 1232  Need char = 's'
1232   0: iss   0: iss
1233   0+ issippi   0+ issippi
1234    
1235  /\Biss\B/g+  /\Biss\B/Ig+
1236  Capturing subpattern count = 0  Capturing subpattern count = 0
1237    Max lookbehind = 1
1238  No options  No options
1239  First char = 'i'  First char = 'i'
1240  Need char = 's'  Need char = 's'
# Line 1230  No match Line 1248  No match
1248      Mississippi\A      Mississippi\A
1249  No match  No match
1250    
1251  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1252  Capturing subpattern count = 0  Capturing subpattern count = 0
1253    Max lookbehind = 1
1254  No options  No options
1255  First char = 'i'  First char = 'i'
1256  Need char = 's'  Need char = 's'
# Line 1241  Need char = 's' Line 1260  Need char = 's'
1260   0: iss   0: iss
1261   0+ ippi   0+ ippi
1262    
1263  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1264  Capturing subpattern count = 0  Capturing subpattern count = 0
1265    Max lookbehind = 1
1266  No options  No options
1267  First char = 'i'  First char = 'i'
1268  Need char = 's'  Need char = 's'
# Line 1250  Need char = 's' Line 1270  Need char = 's'
1270   0: iss   0: iss
1271   0+ issippi   0+ issippi
1272    
1273  /^iss/g+  /^iss/Ig+
1274  Capturing subpattern count = 0  Capturing subpattern count = 0
1275  Options: anchored  Options: anchored
1276  No first char  No first char
# Line 1258  No need char Line 1278  No need char
1278      ississippi      ississippi
1279   0: iss   0: iss
1280   0+ issippi   0+ issippi
1281    
1282  /.*iss/g+  /.*iss/Ig+
1283  Capturing subpattern count = 0  Capturing subpattern count = 0
1284  No options  No options
1285  First char at start or follows \n  First char at start or follows newline
1286  Need char = 's'  Need char = 's'
1287      abciss\nxyzisspqr      abciss\nxyzisspqr
1288   0: abciss   0: abciss
1289   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1290   0: xyziss   0: xyziss
1291   0+ pqr   0+ pqr
1292    
1293  /.i./+g  /.i./I+g
1294  Capturing subpattern count = 0  Capturing subpattern count = 0
1295  No options  No options
1296  No first char  No first char
# Line 1296  Need char = 'i' Line 1316  Need char = 'i'
1316   0+ river   0+ river
1317   0: riv   0: riv
1318   0+ er   0+ er
1319      Missouri river\A      Missouri river\A
1320   0: Mis   0: Mis
1321   0+ souri river   0+ souri river
1322    
1323  /^.is/+g  /^.is/I+g
1324  Capturing subpattern count = 0  Capturing subpattern count = 0
1325  Options: anchored  Options: anchored
1326  No first char  No first char
# Line 1309  No need char Line 1329  No need char
1329   0: Mis   0: Mis
1330   0+ sissippi   0+ sissippi
1331    
1332  /^ab\n/g+  /^ab\n/Ig+
1333  Capturing subpattern count = 0  Capturing subpattern count = 0
1334    Contains explicit CR or LF match
1335  Options: anchored  Options: anchored
1336  No first char  No first char
1337  No need char  No need char
# Line 1318  No need char Line 1339  No need char
1339   0: ab\x0a   0: ab\x0a
1340   0+ ab\x0acd   0+ ab\x0acd
1341    
1342  /^ab\n/mg+  /^ab\n/Img+
1343  Capturing subpattern count = 0  Capturing subpattern count = 0
1344    Contains explicit CR or LF match
1345  Options: multiline  Options: multiline
1346  First char at start or follows \n  First char at start or follows newline
1347  Need char = 10  Need char = \x0a
1348      ab\nab\ncd      ab\nab\ncd
1349   0: ab\x0a   0: ab\x0a
1350   0+ ab\x0acd   0+ ab\x0acd
1351   0: ab\x0a   0: ab\x0a
1352   0+ cd   0+ cd
1353    
1354  /abc/  /abc/I
1355  Capturing subpattern count = 0  Capturing subpattern count = 0
1356  No options  No options
1357  First char = 'a'  First char = 'a'
1358  Need char = 'c'  Need char = 'c'
1359    
1360  /abc|bac/  /abc|bac/I
1361  Capturing subpattern count = 0  Capturing subpattern count = 0
1362  No options  No options
1363  No first char  No first char
1364  Need char = 'c'  Need char = 'c'
1365    
1366  /(abc|bac)/  /(abc|bac)/I
1367  Capturing subpattern count = 1  Capturing subpattern count = 1
1368  No options  No options
1369  No first char  No first char
1370  Need char = 'c'  Need char = 'c'
1371    
1372  /(abc|(c|dc))/  /(abc|(c|dc))/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  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1379  Capturing subpattern count = 2  Capturing subpattern count = 2
1380  No options  No options
1381  No first char  No first char
1382  Need char = 'c'  Need char = 'c'
1383    
1384  /a*/  /a*/I
1385  Capturing subpattern count = 0  Capturing subpattern count = 0
1386    May match empty string
1387  No options  No options
1388  No first char  No first char
1389  No need char  No need char
1390    
1391  /a+/  /a+/I
1392  Capturing subpattern count = 0  Capturing subpattern count = 0
1393  No options  No options
1394  First char = 'a'  First char = 'a'
1395  No need char  No need char
1396    
1397  /(baa|a+)/  /(baa|a+)/I
1398  Capturing subpattern count = 1  Capturing subpattern count = 1
1399  No options  No options
1400  No first char  No first char
1401  Need char = 'a'  Need char = 'a'
1402    
1403  /a{0,3}/  /a{0,3}/I
1404  Capturing subpattern count = 0  Capturing subpattern count = 0
1405    May match empty string
1406  No options  No options
1407  No first char  No first char
1408  No need char  No need char
1409    
1410  /baa{3,}/  /baa{3,}/I
1411  Capturing subpattern count = 0  Capturing subpattern count = 0
1412  No options  No options
1413  First char = 'b'  First char = 'b'
1414  Need char = 'a'  Need char = 'a'
1415    
1416  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1417  Capturing subpattern count = 1  Capturing subpattern count = 1
1418  No options  No options
1419  First char = '"'  First char = '"'
1420  Need char = '"'  Need char = '"'
1421    
1422  /(abc|ab[cd])/  /(abc|ab[cd])/I
1423  Capturing subpattern count = 1  Capturing subpattern count = 1
1424  No options  No options
1425  First char = 'a'  First char = 'a'
1426  No need char  No need char
1427    
1428  /(a|.)/  /(a|.)/I
1429  Capturing subpattern count = 1  Capturing subpattern count = 1
1430  No options  No options
1431  No first char  No first char
1432  No need char  No need char
1433    
1434  /a|ba|\w/  /a|ba|\w/I
1435  Capturing subpattern count = 0  Capturing subpattern count = 0
1436  No options  No options
1437  No first char  No first char
1438  No need char  No need char
1439    
1440  /abc(?=pqr)/  /abc(?=pqr)/I
1441  Capturing subpattern count = 0  Capturing subpattern count = 0
1442  No options  No options
1443  First char = 'a'  First char = 'a'
1444  Need char = 'r'  Need char = 'r'
1445    
1446  /...(?<=abc)/  /...(?<=abc)/I
1447  Capturing subpattern count = 0  Capturing subpattern count = 0
1448    Max lookbehind = 3
1449  No options  No options
1450  No first char  No first char
1451  No need char  No need char
1452    
1453  /abc(?!pqr)/  /abc(?!pqr)/I
1454  Capturing subpattern count = 0  Capturing subpattern count = 0
1455  No options  No options
1456  First char = 'a'  First char = 'a'
1457  Need char = 'c'  Need char = 'c'
1458    
1459  /ab./  /ab./I
1460  Capturing subpattern count = 0  Capturing subpattern count = 0
1461  No options  No options
1462  First char = 'a'  First char = 'a'
1463  Need char = 'b'  Need char = 'b'
1464    
1465  /ab[xyz]/  /ab[xyz]/I
1466  Capturing subpattern count = 0  Capturing subpattern count = 0
1467  No options  No options
1468  First char = 'a'  First char = 'a'
1469  Need char = 'b'  Need char = 'b'
1470    
1471  /abc*/  /abc*/I
1472  Capturing subpattern count = 0  Capturing subpattern count = 0
1473  No options  No options
1474  First char = 'a'  First char = 'a'
1475  Need char = 'b'  Need char = 'b'
1476    
1477  /ab.c*/  /ab.c*/I
1478  Capturing subpattern count = 0  Capturing subpattern count = 0
1479  No options  No options
1480  First char = 'a'  First char = 'a'
1481  Need char = 'b'  Need char = 'b'
1482    
1483  /a.c*/  /a.c*/I
1484  Capturing subpattern count = 0  Capturing subpattern count = 0
1485  No options  No options
1486  First char = 'a'  First char = 'a'
1487  No need char  No need char
1488    
1489  /.c*/  /.c*/I
1490  Capturing subpattern count = 0  Capturing subpattern count = 0
1491  No options  No options
1492  No first char  No first char
1493  No need char  No need char
1494    
1495  /ac*/  /ac*/I
1496  Capturing subpattern count = 0  Capturing subpattern count = 0
1497  No options  No options
1498  First char = 'a'  First char = 'a'
1499  No need char  No need char
1500    
1501  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1502  Capturing subpattern count = 1  Capturing subpattern count = 1
1503  No options  No options
1504  No first char  No first char
1505  No need char  No need char
1506    
1507  /a.c*|aba/  /a.c*|aba/I
1508  Capturing subpattern count = 0  Capturing subpattern count = 0
1509  No options  No options
1510  First char = 'a'  First char = 'a'
1511  No need char  No need char
1512    
1513  /.+a/  /.+a/I
1514  Capturing subpattern count = 0  Capturing subpattern count = 0
1515  No options  No options
1516  No first char  No first char
1517  Need char = 'a'  Need char = 'a'
1518    
1519  /(?=abcda)a.*/  /(?=abcda)a.*/I
1520  Capturing subpattern count = 0  Capturing subpattern count = 0
1521  No options  No options
1522  First char = 'a'  First char = 'a'
1523  Need char = 'a'  Need char = 'a'
1524    
1525  /(?=a)a.*/  /(?=a)a.*/I
1526  Capturing subpattern count = 0  Capturing subpattern count = 0
1527  No options  No options
1528  First char = 'a'  First char = 'a'
1529  No need char  No need char
1530    
1531  /a(b)*/  /a(b)*/I
1532  Capturing subpattern count = 1  Capturing subpattern count = 1
1533  No options  No options
1534  First char = 'a'  First char = 'a'
1535  No need char  No need char
1536    
1537  /a\d*/  /a\d*/I
1538  Capturing subpattern count = 0  Capturing subpattern count = 0
1539  No options  No options
1540  First char = 'a'  First char = 'a'
1541  No need char  No need char
1542    
1543  /ab\d*/  /ab\d*/I
1544  Capturing subpattern count = 0  Capturing subpattern count = 0
1545  No options  No options
1546  First char = 'a'  First char = 'a'
1547  Need char = 'b'  Need char = 'b'
1548    
1549  /a(\d)*/  /a(\d)*/I
1550  Capturing subpattern count = 1  Capturing subpattern count = 1
1551  No options  No options
1552  First char = 'a'  First char = 'a'
1553  No need char  No need char
1554    
1555  /abcde{0,0}/  /abcde{0,0}/I
1556  Capturing subpattern count = 0  Capturing subpattern count = 0
1557  No options  No options
1558  First char = 'a'  First char = 'a'
1559  Need char = 'd'  Need char = 'd'
1560    
1561  /ab\d+/  /ab\d+/I
1562  Capturing subpattern count = 0  Capturing subpattern count = 0
1563  No options  No options
1564  First char = 'a'  First char = 'a'
1565  Need char = 'b'  Need char = 'b'
1566    
1567  /a(?(1)b)/  /a(?(1)b)(.)/I
1568  Capturing subpattern count = 0  Capturing subpattern count = 1
1569  No options  No options
1570  First char = 'a'  First char = 'a'
1571  No need char  No need char
1572    
1573  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1574  Capturing subpattern count = 0  Capturing subpattern count = 1
1575  No options  No options
1576  First char = 'a'  First char = 'a'
1577  Need char = 'g'  Need char = 'g'
1578    
1579  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1580  Capturing subpattern count = 0  Capturing subpattern count = 1
1581  No options  No options
1582  First char = 'a'  First char = 'a'
1583  No need char  No need char
1584    
1585  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1586  Capturing subpattern count = 0  Capturing subpattern count = 1
1587  No options  No options
1588  First char = 'a'  First char = 'a'
1589  Need char = 'g'  Need char = 'g'
1590    
1591  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1592  Capturing subpattern count = 0  Capturing subpattern count = 1
1593  No options  No options
1594  First char = 'a'  First char = 'a'
1595  Need char = 'b'  Need char = 'b'
1596    
1597  /ab\d{0}e/  /ab\d{0}e/I
1598  Capturing subpattern count = 0  Capturing subpattern count = 0
1599  No options  No options
1600  First char = 'a'  First char = 'a'
1601  Need char = 'e'  Need char = 'e'
1602    
1603  /a?b?/  /a?b?/I
1604  Capturing subpattern count = 0  Capturing subpattern count = 0
1605    May match empty string
1606  No options  No options
1607  No first char  No first char
1608  No need char  No need char
# Line 1590  No need char Line 1616  No need char
1616   0:   0:
1617      *** Failers      *** Failers
1618   0:   0:
1619      \N      \N
1620  No match  No match
1621    
1622  /|-/  /|-/I
1623  Capturing subpattern count = 0  Capturing subpattern count = 0
1624    May match empty string
1625  No options  No options
1626  No first char  No first char
1627  No need char  No need char
# Line 1606  No need char Line 1633  No need char
1633   0: -   0: -
1634      *** Failers      *** Failers
1635   0:   0:
1636      \Nabc      \Nabc
1637  No match  No match
1638    
1639  /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  
1640  Capturing subpattern count = 0  Capturing subpattern count = 0
1641  Options: anchored  Options: anchored
1642  No first char  No first char
1643  Need char = 'd'  Need char = 'd'
1644  Study returned NULL  Subject length lower bound = 4
1645    No starting char list
1646    
1647  /\(             # ( at start  /\(             # ( at start
1648    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1650  Study returned NULL Line 1651  Study returned NULL
1651    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1652    )*            # Zero or more contents    )*            # Zero or more contents
1653    \)            # Closing )    \)            # Closing )
1654    /x    /Ix
1655  Capturing subpattern count = 0  Capturing subpattern count = 0
1656  Options: extended  Options: extended
1657  First char = '('  First char = '('
# Line 1661  Need char = ')' Line 1662  Need char = ')'
1662   0: (abcd)   0: (abcd)
1663      xyz(abcd)      xyz(abcd)
1664   0: (abcd)   0: (abcd)
1665      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1666   0: (ab(xy)cd)   0: (ab(xy)cd)
1667      (ab(xycd)pqr      (ab(xycd)pqr
1668   0: (xycd)   0: (xycd)
1669      () abc ()      () abc ()
1670   0: ()   0: ()
1671      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1672   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1673      *** Failers      *** Failers
1674  No match  No match
1675      abcd      abcd
1676  No match  No match
1677      abcd)      abcd)
1678  No match  No match
1679      (abcd      (abcd
1680  No match  No match
1681    
1682  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1683  Capturing subpattern count = 1  Capturing subpattern count = 1
1684  Options: extended  Options: extended
1685  First char = '('  First char = '('
1686  Need char = ')'  Need char = ')'
1687      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1688   0: (ab(xy)cd)   0: (ab(xy)cd)
1689   1: cd   1: cd
1690      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1692  Need char = ')' Line 1693  Need char = ')'
1693   0: (x(y)z)   0: (x(y)z)
1694   1: z   1: z
1695    
1696  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1697  Capturing subpattern count = 0  Capturing subpattern count = 0
1698  Options: extended  Options: extended
1699  First char = '('  First char = '('
# Line 1701  Need char = ')' Line 1702  Need char = ')'
1702   0: (abcd)   0: (abcd)
1703      (ab(xy)cd)      (ab(xy)cd)
1704   0: (xy)   0: (xy)
1705      (a(b(c)d)e)      (a(b(c)d)e)
1706   0: (c)   0: (c)
1707      ((ab))      ((ab))
1708   0: ((ab))   0: ((ab))
1709      *** Failers      *** Failers
1710  No match  No match
1711      ()      ()
1712  No match  No match
1713    
1714  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1715  Capturing subpattern count = 0  Capturing subpattern count = 0
1716  Options: extended  Options: extended
1717  First char = '('  First char = '('
# Line 1720  Need char = ')' Line 1721  Need char = ')'
1721      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1722   0: (fsh)   0: (fsh)
1723    
1724  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1725  Capturing subpattern count = 1  Capturing subpattern count = 1
1726  Options: extended  Options: extended
1727  First char = '('  First char = '('
# Line 1729  Need char = ')' Line 1730  Need char = ')'
1730   0: (ab(xy)cd)   0: (ab(xy)cd)
1731   1: cd   1: cd
1732    
1733  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1734  Capturing subpattern count = 2  Capturing subpattern count = 2
1735  Options: extended  Options: extended
1736  First char = '('  First char = '('
# Line 1739  Need char = ')' Line 1740  Need char = ')'
1740   1: ab(xy)cd   1: ab(xy)cd
1741   2: cd   2: cd
1742    
1743  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( (123)? ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1744  Capturing subpattern count = 3  Capturing subpattern count = 3
1745  Options: extended  Options: extended
1746  First char = '('  First char = '('
# Line 1755  Need char = ')' Line 1756  Need char = ')'
1756   2: ab(xy)cd   2: ab(xy)cd
1757   3: cd   3: cd
1758    
1759  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1760  Capturing subpattern count = 3  Capturing subpattern count = 3
1761  Options: extended  Options: extended
1762  First char = '('  First char = '('
# Line 1771  Need char = ')' Line 1772  Need char = ')'
1772   2: 123   2: 123
1773   3: cd   3: cd
1774    
1775  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1776  Capturing subpattern count = 11  Capturing subpattern count = 11
1777  Options: extended  Options: extended
1778  First char = '('  First char = '('
# Line 1790  Need char = ')' Line 1791  Need char = ')'
1791  10: ab(xy)cd  10: ab(xy)cd
1792  11: cd  11: cd
1793    
1794  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1795  Capturing subpattern count = 3  Capturing subpattern count = 3
1796  Options: extended  Options: extended
1797  First char = '('  First char = '('
# Line 1799  Need char = ')' Line 1800  Need char = ')'
1800   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1801   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1802   2: 123   2: 123
  3: <unset>  
1803    
1804  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1805  Capturing subpattern count = 3  Capturing subpattern count = 3
1806  Options: extended  Options: extended
1807  First char = '('  First char = '('
# Line 1817  Need char = ')' Line 1817  Need char = ')'
1817   2: ij   2: ij
1818   3: (cd(ef)gh)   3: (cd(ef)gh)
1819    
1820  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1821    ------------------------------------------------------------------
1822            Bra
1823            ^
1824            [0-9A-Za-z]
1825            Ket
1826            End
1827    ------------------------------------------------------------------
1828    Capturing subpattern count = 0
1829    Options: anchored
1830    No first char
1831    No need char
1832    
1833    /^[[:^alnum:]]/DZ
1834    ------------------------------------------------------------------
1835            Bra
1836            ^
1837            [\x00-/:-@[-`{-\xff] (neg)
1838            Ket
1839            End
1840    ------------------------------------------------------------------
1841    Capturing subpattern count = 0
1842    Options: anchored
1843    No first char
1844    No need char
1845    
1846    /^[[:alpha:]]/DZ
1847    ------------------------------------------------------------------
1848            Bra
1849            ^
1850            [A-Za-z]
1851            Ket
1852            End
1853    ------------------------------------------------------------------
1854    Capturing subpattern count = 0
1855    Options: anchored
1856    No first char
1857    No need char
1858    
1859    /^[[:^alpha:]]/DZ
1860    ------------------------------------------------------------------
1861            Bra
1862            ^
1863            [\x00-@[-`{-\xff] (neg)
1864            Ket
1865            End
1866    ------------------------------------------------------------------
1867    Capturing subpattern count = 0
1868    Options: anchored
1869    No first char
1870    No need char
1871    
1872    /[_[:alpha:]]/IS
1873    Capturing subpattern count = 0
1874    No options
1875    No first char
1876    No need char
1877    Subject length lower bound = 1
1878    Starting chars: 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
1879      _ 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
1880    
1881    /^[[:ascii:]]/DZ
1882  ------------------------------------------------------------------  ------------------------------------------------------------------
1883    0  37 Bra 0          Bra
1884    3     ^          ^
1885    4     [0-9A-Za-z]          [\x00-\x7f]
1886   37  37 Ket          Ket
1887   40     End          End
1888  ------------------------------------------------------------------  ------------------------------------------------------------------
1889  Capturing subpattern count = 0  Capturing subpattern count = 0
1890  Options: anchored  Options: anchored
1891  No first char  No first char
1892  No need char  No need char
1893    
1894  /^[[:alpha:]]/D  /^[[:^ascii:]]/DZ
1895  ------------------------------------------------------------------  ------------------------------------------------------------------
1896    0  37 Bra 0          Bra
1897    3     ^          ^
1898    4     [A-Za-z]          [\x80-\xff] (neg)
1899   37  37 Ket          Ket
1900   40     End          End
1901  ------------------------------------------------------------------  ------------------------------------------------------------------
1902  Capturing subpattern count = 0  Capturing subpattern count = 0
1903  Options: anchored  Options: anchored
1904  No first char  No first char
1905  No need char  No need char
1906    
1907  /^[[:ascii:]]/D  /^[[:blank:]]/DZ
1908  ------------------------------------------------------------------  ------------------------------------------------------------------
1909    0  37 Bra 0          Bra
1910    3     ^          ^
1911    4     [\x00-\x7f]          [\x09 ]
1912   37  37 Ket          Ket
1913   40     End          End
1914  ------------------------------------------------------------------  ------------------------------------------------------------------
1915  Capturing subpattern count = 0  Capturing subpattern count = 0
1916  Options: anchored  Options: anchored
1917  No first char  No first char
1918  No need char  No need char
1919    
1920  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1921  ------------------------------------------------------------------  ------------------------------------------------------------------
1922    0  37 Bra 0          Bra
1923    3     ^          ^
1924    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1925   37  37 Ket          Ket
1926   40     End          End
1927  ------------------------------------------------------------------  ------------------------------------------------------------------
1928  Capturing subpattern count = 0  Capturing subpattern count = 0
1929  Options: anchored  Options: anchored
1930  No first char  No first char
1931  No need char  No need char
1932    
1933  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1934    Capturing subpattern count = 0
1935    Contains explicit CR or LF match
1936    No options
1937    No first char
1938    No need char
1939    Subject length lower bound = 1
1940    Starting chars: \x09 \x0a \x0b \x0c \x0d \x20
1941    
1942    /^[[:cntrl:]]/DZ
1943  ------------------------------------------------------------------  ------------------------------------------------------------------
1944    0  37 Bra 0          Bra
1945    3     ^          ^
1946    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
1947   37  37 Ket          Ket
1948   40     End          End
1949  ------------------------------------------------------------------  ------------------------------------------------------------------
1950  Capturing subpattern count = 0  Capturing subpattern count = 0
1951  Options: anchored  Options: anchored
1952  No first char  No first char
1953  No need char  No need char
1954    
1955  /^[[:digit:]]/D  /^[[:digit:]]/DZ
1956  ------------------------------------------------------------------  ------------------------------------------------------------------
1957    0  37 Bra 0          Bra
1958    3     ^          ^
1959    4     [0-9]          [0-9]
1960   37  37 Ket          Ket
1961   40     End          End
1962  ------------------------------------------------------------------  ------------------------------------------------------------------
1963  Capturing subpattern count = 0  Capturing subpattern count = 0
1964  Options: anchored  Options: anchored
1965  No first char  No first char
1966  No need char  No need char
1967    
1968  /^[[:graph:]]/D  /^[[:graph:]]/DZ
1969  ------------------------------------------------------------------  ------------------------------------------------------------------
1970    0  37 Bra 0          Bra
1971    3     ^          ^
1972    4     [!-~]          [!-~]
1973   37  37 Ket          Ket
1974   40     End          End
1975  ------------------------------------------------------------------  ------------------------------------------------------------------
1976  Capturing subpattern count = 0  Capturing subpattern count = 0
1977  Options: anchored  Options: anchored
1978  No first char  No first char
1979  No need char  No need char
1980    
1981  /^[[:lower:]]/D  /^[[:lower:]]/DZ
1982  ------------------------------------------------------------------  ------------------------------------------------------------------
1983    0  37 Bra 0          Bra
1984    3     ^          ^
1985    4     [a-z]          [a-z]
1986   37  37 Ket          Ket
1987   40     End          End
1988  ------------------------------------------------------------------  ------------------------------------------------------------------
1989  Capturing subpattern count = 0  Capturing subpattern count = 0
1990  Options: anchored  Options: anchored
1991  No first char  No first char
1992  No need char  No need char
1993    
1994  /^[[:print:]]/D  /^[[:print:]]/DZ
1995  ------------------------------------------------------------------  ------------------------------------------------------------------
1996    0  37 Bra 0          Bra
1997    3     ^          ^
1998    4     [ -~]          [ -~]
1999   37  37 Ket          Ket
2000   40     End          End
2001  ------------------------------------------------------------------  ------------------------------------------------------------------
2002  Capturing subpattern count = 0  Capturing subpattern count = 0
2003  Options: anchored  Options: anchored
2004  No first char  No first char
2005  No need char  No need char
2006    
2007  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2008  ------------------------------------------------------------------  ------------------------------------------------------------------
2009    0  37 Bra 0          Bra
2010    3     ^          ^
2011    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2012   37  37 Ket          Ket
2013   40     End          End
2014  ------------------------------------------------------------------  ------------------------------------------------------------------
2015  Capturing subpattern count = 0  Capturing subpattern count = 0
2016  Options: anchored  Options: anchored
2017  No first char  No first char
2018  No need char  No need char
2019    
2020  /^[[:space:]]/D  /^[[:space:]]/DZ
2021  ------------------------------------------------------------------  ------------------------------------------------------------------
2022    0  37 Bra 0          Bra
2023    3     ^          ^
2024    4     [\x09-\x0d ]          [\x09-\x0d ]
2025   37  37 Ket          Ket
2026   40     End          End
2027  ------------------------------------------------------------------  ------------------------------------------------------------------
2028  Capturing subpattern count = 0  Capturing subpattern count = 0
2029  Options: anchored  Options: anchored
2030  No first char  No first char
2031  No need char  No need char
2032    
2033  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2034  ------------------------------------------------------------------  ------------------------------------------------------------------
2035    0  37 Bra 0          Bra
2036    3     ^          ^
2037    4     [A-Z]          [A-Z]
2038   37  37 Ket          Ket
2039   40     End          End
2040  ------------------------------------------------------------------  ------------------------------------------------------------------
2041  Capturing subpattern count = 0  Capturing subpattern count = 0
2042  Options: anchored  Options: anchored
2043  No first char  No first char
2044  No need char  No need char
2045    
2046  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2047  ------------------------------------------------------------------  ------------------------------------------------------------------
2048    0  37 Bra 0          Bra
2049    3     ^          ^
2050    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2051   37  37 Ket          Ket
2052   40     End          End
2053  ------------------------------------------------------------------  ------------------------------------------------------------------
2054  Capturing subpattern count = 0  Capturing subpattern count = 0
2055  Options: anchored  Options: anchored
2056  No first char  No first char
2057  No need char  No need char
2058    
2059  /^[[:word:]]/D  /^[[:word:]]/DZ
2060  ------------------------------------------------------------------  ------------------------------------------------------------------
2061    0  37 Bra 0          Bra
2062    3     ^          ^
2063    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2064   37  37 Ket          Ket
2065   40     End          End
2066  ------------------------------------------------------------------  ------------------------------------------------------------------
2067  Capturing subpattern count = 0  Capturing subpattern count = 0
2068  Options: anchored  Options: anchored
2069  No first char  No first char
2070  No need char  No need char
2071    
2072  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2073  ------------------------------------------------------------------  ------------------------------------------------------------------
2074    0  37 Bra 0          Bra
2075    3     ^          ^
2076    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2077   37  37 Ket          Ket
2078   40     End          End
2079  ------------------------------------------------------------------  ------------------------------------------------------------------
2080  Capturing subpattern count = 0  Capturing subpattern count = 0
2081  Options: anchored  Options: anchored
2082  No first char  No first char
2083  No need char  No need char
2084    
2085  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2086  ------------------------------------------------------------------  ------------------------------------------------------------------
2087    0  37 Bra 0          Bra
2088    3     ^          ^
2089    4     [\x00-/1-2:-\xff]          [\x00-/12:-\xff] (neg)
2090   37  37 Ket          Ket
2091   40     End          End
2092  ------------------------------------------------------------------  ------------------------------------------------------------------
2093  Capturing subpattern count = 0  Capturing subpattern count = 0
2094  Options: anchored  Options: anchored
2095  No first char  No first char
2096  No need char  No need char
2097    
2098  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2099  ------------------------------------------------------------------  ------------------------------------------------------------------
2100    0  37 Bra 0          Bra
2101    3     ^          ^
2102    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2103   37  37 Ket          Ket
2104   40     End          End
2105  ------------------------------------------------------------------  ------------------------------------------------------------------
2106  Capturing subpattern count = 0  Capturing subpattern count = 0
2107  Options: anchored  Options: anchored
2108  No first char  No first char
2109  No need char  No need char
2110    
2111  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2112  ------------------------------------------------------------------  ------------------------------------------------------------------
2113    0  36 Bra 0          Bra
2114    3     [%0-1A-Za-z]          [%01A-Za-z]
2115   36  36 Ket          Ket
2116   39     End          End
2117  ------------------------------------------------------------------  ------------------------------------------------------------------
2118  Capturing subpattern count = 0  Capturing subpattern count = 0
2119  No options  No options
2120  No first char  No first char
2121  No need char  No need char
2122    
2123  /[[.ch.]]/  /[[.ch.]]/I
2124  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2125    
2126  /[[=ch=]]/  /[[=ch=]]/I
2127  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2128    
2129  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2130  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2131    
2132  /[[:upper:]]/i  /[[:upper:]]/Ii
2133  Capturing subpattern count = 0  Capturing subpattern count = 0
2134  Options: caseless  Options: caseless
2135  No first char  No first char
2136  No need char  No need char
2137      A      A
2138   0: A   0: A
2139      a      a
2140   0: a   0: a
2141    
2142  /[[:lower:]]/i  /[[:lower:]]/Ii
2143  Capturing subpattern count = 0  Capturing subpattern count = 0
2144  Options: caseless  Options: caseless
2145  No first char  No first char
2146  No need char  No need char
2147      A      A
2148   0: A   0: A
2149      a      a
2150   0: a   0: a
2151    
2152  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2153  Capturing subpattern count = 1  Capturing subpattern count = 1
2154  Options: caseless  Options: caseless
 Case state changes  
2155  No first char  No first char
2156  No need char  No need char
2157      ab      ab
# Line 2096  No need char Line 2165  No need char
2165   1: a   1: a
2166      Ab      Ab
2167  No match  No match
2168      AB      AB
2169  No match  No match
2170    
2171  /[\200-\410]/  /[\200-\110]/I
2172  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2173    
2174  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2175  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2176    
2177  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2178  Capturing subpattern count = 0  Capturing subpattern count = 0
2179  No options  No options
2180  First char = 'T'  First char = 'T'
2181  Need char = 'd'  Need char = 'd'
2182    
2183  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2184  Capturing subpattern count = 271  Capturing subpattern count = 271
2185  Max back reference = 270  Max back reference = 270
2186  No options  No options
# Line 2391  No need char Line 2460  No need char
2460  270: ABC  270: ABC
2461  271: ABC  271: ABC
2462    
2463  /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
2464  Capturing subpattern count = 0  Capturing subpattern count = 0
2465  No options  No options
2466  First char = 'T'  First char = 'T'
2467  Need char = 't'  Need char = 't'
2468    
2469  /(main(O)?)+/  /(main(O)?)+/I
2470  Capturing subpattern count = 2  Capturing subpattern count = 2
2471  No options  No options
2472  First char = 'm'  First char = 'm'
# Line 2409  Need char = 'n' Line 2478  Need char = 'n'
2478   0: mainOmain   0: mainOmain
2479   1: main   1: main
2480   2: O   2: O
2481    
2482  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2483  Capturing subpattern count = 1  Capturing subpattern count = 1
2484  No options  No options
2485  First char = 'T'  First char = 'T'
2486  Need char = 's'  Need char = 's'
2487    
2488  /^(a(b)?)+$/  /^(a(b)?)+$/I
2489  Capturing subpattern count = 2  Capturing subpattern count = 2
2490  Options: anchored  Options: anchored
2491  No first char  No first char
# Line 2425  No need char Line 2494  No need char
2494   0: aba   0: aba
2495   1: a   1: a
2496   2: b   2: b
2497    
2498  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2499  Capturing subpattern count = 2  Capturing subpattern count = 2
2500  Options: anchored  Options: anchored
2501  No first char  No first char
2502  No need char  No need char
2503      aabbaa      aabbaa
2504   0: aabbaa   0: aabbaa
2505   1: aa   1: aa
2506   2: bb   2: bb
2507    
2508  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2509  Capturing subpattern count = 2  Capturing subpattern count = 2
2510  Options: anchored  Options: anchored
2511  No first char  No first char
2512  No need char  No need char
2513      aabbaa      aabbaa
2514   0: aabbaa   0: aabbaa
2515   1: aa   1: aa
2516   2: bb   2: bb
2517    
2518  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2519  Capturing subpattern count = 2  Capturing subpattern count = 2
2520  Options: anchored  Options: anchored
2521  No first char  No first char
2522  No need char  No need char
2523      aabbaa      aabbaa
2524   0: aabbaa   0: aabbaa
2525   1: aa   1: aa
2526   2: bb   2: bb
2527    
2528  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2529  Capturing subpattern count = 1  Capturing subpattern count = 1
2530  Options: anchored  Options: anchored
2531  No first char  No first char
2532  No need char  No need char
2533      aabbaa      aabbaa
2534   0: aabbaa   0: aabbaa
2535   1: bb   1: bb
2536    
2537  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2538  Capturing subpattern count = 3  Capturing subpattern count = 3
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: aa   1: aa
2545   2: bb   2: bb
2546   3: b   3: b
2547    
2548  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2549  Capturing subpattern count = 2  Capturing subpattern count = 2
2550  Options: anchored  Options: anchored
2551  No first char  No first char
2552  No need char  No need char
2553      aabbaa      aabbaa
2554   0: aabbaa   0: aabbaa
2555   1: bb   1: bb
2556   2: b   2: b
2557    
2558  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2559  Capturing subpattern count = 1  Capturing subpattern count = 1
2560  Options: anchored  Options: anchored
2561  No first char  No first char
2562  No need char  No need char
2563      aabbaa      aabbaa
2564   0: aabbaa   0: aabbaa
2565   1: bb   1: bb
2566    
2567  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2568  Capturing subpattern count = 1  Capturing subpattern count = 1
2569  Options: anchored  Options: anchored
2570  No first char  No first char
2571  No need char  No need char
2572      aabbbaa      aabbbaa
2573   0: aabbbaa   0: aabbbaa
2574   1: bbb   1: bbb
2575    
2576  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2577  Capturing subpattern count = 1  Capturing subpattern count = 1
2578  Options: anchored  Options: anchored
2579  No first char  No first char
2580  No need char  No need char
2581      aabbbaa      aabbbaa
2582   0: aabbbaa   0: aabbbaa
2583   1: bbb   1: bbb
2584    
2585  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2586  Capturing subpattern count = 1  Capturing subpattern count = 1
2587  Options: anchored  Options: anchored
2588  No first char  No first char
2589  No need char  No need char
2590      aabbaa      aabbaa
2591   0: aabbaa   0: aabbaa
2592   1: b   1: b
2593    
2594  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2595  Capturing subpattern count = 1  Capturing subpattern count = 1
2596  Options: anchored  Options: anchored
2597  No first char  No first char
2598  No need char  No need char
2599      aabbbaa      aabbbaa
2600   0: aabbbaa   0: aabbbaa
2601   1: bb   1: bb
2602    
2603  /^(aa(b(bb))?)+$/  /^(aa(b(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      aabbbaa      aabbbaa
2609   0: aabbbaa   0: aabbbaa
2610   1: aa   1: aa
2611   2: bbb   2: bbb
2612   3: bb   3: bb
2613    
2614  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2615  Capturing subpattern count = 3  Capturing subpattern count = 3
2616  Options: anchored  Options: anchored
2617  No first char  No first char
2618  No need char  No need char
2619      aabbbbaa      aabbbbaa
2620   0: aabbbbaa   0: aabbbbaa
2621   1: aa   1: aa
2622   2: bbbb   2: bbbb
2623   3: bb   3: bb
2624    
2625  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2626  Capturing subpattern count = 0  Capturing subpattern count = 0
2627  No options  No options
2628  First char = '-'  First char = '-'
2629  Need char = '-'  Need char = '-'
2630    
2631  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2632  ------------------------------------------------------------------  ------------------------------------------------------------------
2633    0   3 Bra 0          Bra
2634    3   3 Ket          Ket
2635    6     End          End
2636  ------------------------------------------------------------------  ------------------------------------------------------------------
2637  Capturing subpattern count = 0  Capturing subpattern count = 0
2638    May match empty string
2639  Options: extended  Options: extended
2640  No first char  No first char
2641  No need char  No need char
2642    
2643  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 13  
2644  ------------------------------------------------------------------  ------------------------------------------------------------------
2645    0   6 Bra 0          Bra
2646    3   1 a          a
2647    6   6 Ket          Ket
2648    9     End          End
2649  ------------------------------------------------------------------  ------------------------------------------------------------------
2650  Capturing subpattern count = 0  Capturing subpattern count = 0
2651  Options: extended  Options: extended
2652  First char = 'a'  First char = 'a'
2653  No need char  No need char
2654    
2655  /[\s]/D  /[\s]/DZ
2656  ------------------------------------------------------------------  ------------------------------------------------------------------
2657    0  36 Bra 0          Bra
2658    3     [\x09-\x0a\x0c-\x0d ]          [\x09-\x0d ]
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  /[\S]/D  /[\S]/DZ
2668  ------------------------------------------------------------------  ------------------------------------------------------------------
2669    0  36 Bra 0          Bra
2670    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0e-\x1f!-\xff] (neg)
2671   36  36 Ket          Ket
2672   39     End          End
2673  ------------------------------------------------------------------  ------------------------------------------------------------------
2674  Capturing subpattern count = 0  Capturing subpattern count = 0
2675  No options  No options
2676  No first char  No first char
2677  No need char  No need char
2678    
2679  /a(?i)b/D  /a(?i)b/DZ
2680  ------------------------------------------------------------------  ------------------------------------------------------------------
2681    0  11 Bra 0          Bra
2682    3   1 a          a
2683    6  01 Opt       /i b
2684    8   1 b          Ket
2685   11  11 Ket          End
  14     End  
2686  ------------------------------------------------------------------  ------------------------------------------------------------------
2687  Capturing subpattern count = 0  Capturing subpattern count = 0
2688  No options  No options
 Case state changes  
2689  First char = 'a'  First char = 'a'
2690  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2691      ab      ab
2692   0: ab   0: ab
2693      aB      aB
2694   0: aB   0: aB
2695      *** Failers      *** Failers
2696  No match  No match
2697      AB      AB
2698  No match  No match
2699    
2700  /(a(?i)b)/D  /(a(?i)b)/DZ
2701  ------------------------------------------------------------------  ------------------------------------------------------------------
2702    0  19 Bra 0          Bra
2703    3  11 Bra 1          CBra 1
2704    6   1 a          a
2705    9  01 Opt       /i b
2706   11   1 b          Ket
2707   14  11 Ket          Ket
2708   17  00 Opt          End
  19  19 Ket  
  22     End  
2709  ------------------------------------------------------------------  ------------------------------------------------------------------
2710  Capturing subpattern count = 1  Capturing subpattern count = 1
2711  No options  No options
 Case state changes  
2712  First char = 'a'  First char = 'a'
2713  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2714      ab      ab
# Line 2654  Need char = 'b' (caseless) Line 2717  Need char = 'b' (caseless)
2717      aB      aB
2718   0: aB   0: aB
2719   1: aB   1: aB
2720      *** Failers      *** Failers
2721  No match  No match
2722      AB      AB
2723  No match  No match
2724    
2725  /   (?i)abc/xD  /   (?i)abc/IxDZ
2726  ------------------------------------------------------------------  ------------------------------------------------------------------
2727    0   8 Bra 0          Bra
2728    3   3 abc       /i abc
2729    8   8 Ket          Ket
2730   11     End          End
2731  ------------------------------------------------------------------  ------------------------------------------------------------------
2732  Capturing subpattern count = 0  Capturing subpattern count = 0
2733  Options: caseless extended  Options: caseless extended
# Line 2672  First char = 'a' (caseless) Line 2735  First char = 'a' (caseless)
2735  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2736    
2737  /#this is a comment  /#this is a comment
2738    (?i)abc/xD    (?i)abc/IxDZ
2739  ------------------------------------------------------------------  ------------------------------------------------------------------
2740    0   8 Bra 0          Bra
2741    3   3 abc       /i abc
2742    8   8 Ket          Ket
2743   11     End          End
2744  ------------------------------------------------------------------  ------------------------------------------------------------------
2745  Capturing subpattern count = 0  Capturing subpattern count = 0
2746  Options: caseless extended  Options: caseless extended
2747  First char = 'a' (caseless)  First char = 'a' (caseless)
2748  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2749    
2750  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/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  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2763  ------------------------------------------------------------------  ------------------------------------------------------------------
2764    0 307 Bra 0          Bra
2765    3 250 1234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2766  255  50 12345678901234567890123456789012345678901234567890          Ket
2767  307 307 Ket          End
 310     End  
2768  ------------------------------------------------------------------  ------------------------------------------------------------------
2769  Capturing subpattern count = 0  Capturing subpattern count = 0
2770  No options  No options
2771  First char = '1'  First char = '1'
2772  Need char = '0'  Need char = '0'
2773    
2774  /\Q\E/D  /\Q\E/DZ
2775  ------------------------------------------------------------------  ------------------------------------------------------------------
2776    0   3 Bra 0          Bra
2777    3   3 Ket          Ket
2778    6     End          End
2779  ------------------------------------------------------------------  ------------------------------------------------------------------
2780  Capturing subpattern count = 0  Capturing subpattern count = 0
2781    May match empty string
2782  No options  No options
2783  No first char  No first char
2784  No need char  No need char
2785      \      \
2786   0:   0:
2787    
2788  /\Q\Ex/D  /\Q\Ex/DZ
2789  ------------------------------------------------------------------  ------------------------------------------------------------------
2790    0   6 Bra 0          Bra
2791    3   1 x          x
2792    6   6 Ket          Ket
2793    9     End          End
2794  ------------------------------------------------------------------  ------------------------------------------------------------------
2795  Capturing subpattern count = 0  Capturing subpattern count = 0
2796  No options  No options
2797  First char = 'x'  First char = 'x'
2798  No need char  No need char
2799    
2800  / \Q\E/D  / \Q\E/DZ
2801  ------------------------------------------------------------------  ------------------------------------------------------------------
2802    0   6 Bra 0          Bra
2803    3   1  
2804    6   6 Ket          Ket
2805    9     End          End
2806  ------------------------------------------------------------------  ------------------------------------------------------------------
2807  Capturing subpattern count = 0  Capturing subpattern count = 0
2808  No options  No options
2809  First char = ' '  First char = ' '
2810  No need char  No need char
2811    
2812  /a\Q\E/D  /a\Q\E/DZ
2813  ------------------------------------------------------------------  ------------------------------------------------------------------
2814    0   6 Bra 0          Bra
2815    3   1 a          a
2816    6   6 Ket          Ket
2817    9     End          End
2818  ------------------------------------------------------------------  ------------------------------------------------------------------
2819  Capturing subpattern count = 0  Capturing subpattern count = 0
2820  No options  No options
# Line 2762  No need char Line 2824  No need char
2824   0: a   0: a
2825    bca    bca
2826   0: a   0: a
2827    bac    bac
2828   0: a   0: a
2829    
2830  /a\Q\Eb/D  /a\Q\Eb/DZ
2831  ------------------------------------------------------------------  ------------------------------------------------------------------
2832    0   9 Bra 0          Bra
2833    3   1 a          ab
2834    6   1 b          Ket
2835    9   9 Ket          End
  12     End  
2836  ------------------------------------------------------------------  ------------------------------------------------------------------
2837  Capturing subpattern count = 0  Capturing subpattern count = 0
2838  No options  No options
# Line 2780  Need char = 'b' Line 2841  Need char = 'b'
2841    abc    abc
2842   0: ab   0: ab
2843    
2844  /\Q\Eabc/D  /\Q\Eabc/DZ
2845  ------------------------------------------------------------------  ------------------------------------------------------------------
2846    0   8 Bra 0          Bra
2847    3   3 abc          abc
2848    8   8 Ket          Ket
2849   11     End          End
2850  ------------------------------------------------------------------  ------------------------------------------------------------------
2851  Capturing subpattern count = 0  Capturing subpattern count = 0
2852  No options  No options
2853  First char = 'a'  First char = 'a'
2854  Need char = 'c'  Need char = 'c'
2855    
2856  /x*+\w/D  /x*+\w/DZ
2857  ------------------------------------------------------------------  ------------------------------------------------------------------
2858    0  12 Bra 0          Bra
2859    3   5 Once          x*+
2860    6     x*          \w
2861    8   5 Ket          Ket
2862   11     \w          End
  12  12 Ket  
  15     End  
2863  ------------------------------------------------------------------  ------------------------------------------------------------------
2864  Capturing subpattern count = 0  Capturing subpattern count = 0
2865  No options  No options
# Line 2810  No need char Line 2869  No need char
2869   0: F   0: F
2870      xxxxx      xxxxx
2871  No match  No match
2872    
2873  /x?+/D  /x?+/DZ
2874  ------------------------------------------------------------------  ------------------------------------------------------------------
2875    0  11 Bra 0          Bra
2876    3   5 Once          x?+
2877    6     x?          Ket
2878    8   5 Ket          End
  11  11 Ket  
  14     End  
2879  ------------------------------------------------------------------  ------------------------------------------------------------------
2880  Capturing subpattern count = 0  Capturing subpattern count = 0
2881    May match empty string
2882  No options  No options
2883  No first char  No first char
2884  No need char  No need char
2885    
2886  /x++/D  /x++/DZ
2887  ------------------------------------------------------------------  ------------------------------------------------------------------
2888    0  11 Bra 0          Bra
2889    3   5 Once          x++
2890    6     x+          Ket
2891    8   5 Ket          End
  11  11 Ket  
  14     End  
2892  ------------------------------------------------------------------  ------------------------------------------------------------------
2893  Capturing subpattern count = 0  Capturing subpattern count = 0
2894  No options  No options
2895  First char = 'x'  First char = 'x'
2896  No need char  No need char
2897    
2898  /x{1,3}+/D  /x{1,3}+/BZO
2899  ------------------------------------------------------------------  ------------------------------------------------------------------
2900    0  16 Bra 0          Bra
2901    3  10 Once          x
2902    6   1 x          x{0,2}+
2903    9     x{,2}          Ket
2904   13  10 Ket          End
2905   16  16 Ket  ------------------------------------------------------------------
2906   19     End  
2907    /x{1,3}+/BZOi
2908    ------------------------------------------------------------------
2909            Bra
2910         /i x
2911         /i x{0,2}+
2912            Ket
2913            End
2914  ------------------------------------------------------------------  ------------------------------------------------------------------
 Capturing subpattern count = 0  
 No options  
 First char = 'x'  
 No need char  
2915    
2916  /(x)*+/D  /[^x]{1,3}+/BZO
2917  ------------------------------------------------------------------  ------------------------------------------------------------------
2918    0  19 Bra 0          Bra
2919    3  13 Once          [^x]
2920    6     Brazero          [^x]{0,2}+
2921    7   6 Bra 1          Ket
2922   10   1 x          End
2923   13   6 KetRmax  ------------------------------------------------------------------
2924   16  13 Ket  
2925   19  19 Ket  /[^x]{1,3}+/BZOi
2926   22     End  ------------------------------------------------------------------
2927            Bra
2928         /i [^x]
2929         /i [^x]{0,2}+
2930            Ket
2931            End
2932    ------------------------------------------------------------------
2933    
2934    /(x)*+/DZ
2935    ------------------------------------------------------------------
2936            Bra
2937            Braposzero
2938            CBraPos 1
2939            x
2940            KetRpos
2941            Ket
2942            End
2943  ------------------------------------------------------------------  ------------------------------------------------------------------
2944  Capturing subpattern count = 1  Capturing subpattern count = 1
2945    May match empty string
2946  No options  No options
2947  No first char  No first char
2948  No need char  No need char
2949    
2950  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2951  Capturing subpattern count = 1  Capturing subpattern count = 1
2952    May match empty string
2953  Options: anchored  Options: anchored
2954  No first char  No first char
2955  No need char  No need char
# Line 2883  No need char Line 2960  No need char
2960  No match  No match
2961      this is not a line with only words and spaces!      this is not a line with only words and spaces!
2962  No match  No match
2963    
2964  /(\d++)(\w)/  /(\d++)(\w)/I
2965  Capturing subpattern count = 2  Capturing subpattern count = 2
2966  No options  No options
2967  No first char  No first char
# Line 2895  No need char Line 2972  No need char
2972   2: a   2: a
2973      *** Failers      *** Failers
2974  No match  No match
2975      12345+      12345+
2976  No match  No match
2977    
2978  /a++b/  /a++b/I
2979  Capturing subpattern count = 0  Capturing subpattern count = 0
2980  No options  No options
2981  First char = 'a'  First char = 'a'
# Line 2906  Need char = 'b' Line 2983  Need char = 'b'
2983      aaab      aaab
2984   0: aaab   0: aaab
2985    
2986  /(a++b)/  /(a++b)/I
2987  Capturing subpattern count = 1  Capturing subpattern count = 1
2988  No options  No options
2989  First char = 'a'  First char = 'a'
# Line 2915  Need char = 'b' Line 2992  Need char = 'b'
2992   0: aaab   0: aaab
2993   1: aaab   1: aaab
2994    
2995  /(a++)b/  /(a++)b/I
2996  Capturing subpattern count = 1  Capturing subpattern count = 1
2997  No options  No options
2998  First char = 'a'  First char = 'a'
# Line 2924  Need char = 'b' Line 3001  Need char = 'b'
3001   0: aaab   0: aaab
3002   1: aaa   1: aaa
3003    
3004  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
3005  Capturing subpattern count = 1  Capturing subpattern count = 1
3006  No options  No options
3007  No first char  No first char
# Line 2932  No need char Line 3009  No need char
3009      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
3010   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
3011   1: x   1: x
3012    
3013  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
3014  Capturing subpattern count = 1  Capturing subpattern count = 1
3015  No options  No options
3016  First char = '('  First char = '('
# Line 2946  Need char = ')' Line 3023  Need char = ')'
3023   1: xyz   1: xyz
3024      *** Failers      *** Failers
3025  No match  No match
3026      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3027  No match  No match
3028    
3029  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3030  ------------------------------------------------------------------  ------------------------------------------------------------------
3031    0  50 Bra 0          Bra
3032    3  44 Once          Once
3033    6   8 Bra 1          CBra 1
3034    9   3 abc          abc
3035   14   8 Ket          Ket
3036   17     Brazero          Brazero
3037   18  26 Bra 0          Bra
3038   21   8 Bra 1          CBra 1
3039   24   3 abc          abc
3040   29   8 Ket          Ket
3041   32     Brazero          Brazero
3042   33   8 Bra 1          CBra 1
3043   36   3 abc          abc
3044   41   8 Ket          Ket
3045   44  26 Ket          Ket
3046   47  44 Ket          Ket
3047   50  50 Ket          Ket
3048   53     End          End
3049  ------------------------------------------------------------------  ------------------------------------------------------------------
3050  Capturing subpattern count = 1  Capturing subpattern count = 1
3051  No options  No options
3052  First char = 'a'  First char = 'a'
3053  Need char = 'c'  Need char = 'c'
3054    
3055  /a+?+/  /a+?+/I
3056  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3057    
3058  /a{2,3}?+b/  /a{2,3}?+b/I
3059  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3060    
3061  /(?U)a+?+/  /(?U)a+?+/I
3062  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3063    
3064  /a{2,3}?+b/U  /a{2,3}?+b/IU
3065  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3066    
3067  /x(?U)a++b/D  /x(?U)a++b/DZ
3068  ------------------------------------------------------------------  ------------------------------------------------------------------
3069    0  17 Bra 0          Bra
3070    3   1 x          x
3071    6   5 Once          a++
3072    9     a+          b
3073   11   5 Ket          Ket
3074   14   1 b          End
  17  17 Ket  
  20     End  
3075  ------------------------------------------------------------------  ------------------------------------------------------------------
3076  Capturing subpattern count = 0  Capturing subpattern count = 0
3077  No options  No options
# Line 3005  Need char = 'b' Line 3080  Need char = 'b'
3080      xaaaab      xaaaab
3081   0: xaaaab   0: xaaaab
3082    
3083  /(?U)xa++b/D  /(?U)xa++b/DZ
3084  ------------------------------------------------------------------  ------------------------------------------------------------------
3085    0  17 Bra 0          Bra
3086    3   1 x          x
3087    6   5 Once          a++
3088    9     a+          b
3089   11   5 Ket          Ket
3090   14   1 b          End
  17  17 Ket  
  20     End  
3091  ------------------------------------------------------------------  ------------------------------------------------------------------
3092  Capturing subpattern count = 0  Capturing subpattern count = 0
3093  Options: ungreedy  Options: ungreedy
# Line 3023  Need char = 'b' Line 3096  Need char = 'b'
3096      xaaaab      xaaaab
3097   0: xaaaab   0: xaaaab
3098    
3099  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3100  ------------------------------------------------------------------  ------------------------------------------------------------------
3101    0 106 Bra 0          Bra
3102    3     ^          ^
3103    4  99 Bra 1          CBra 1
3104    7   5 Bra 2          CBra 2
3105   10     a+          a+
3106   12   5 Ket          Ket
3107   15  37 Bra 3          CBra 3
3108   18     [a-b]+?          [ab]+?
3109   52  37 Ket          Ket
3110   55  37 Bra 4          CBra 4
3111   58     [b-c]+          [bc]+
3112   92  37 Ket          Ket
3113   95   5 Bra 5          CBra 5
3114   98     \w*          \w*+
3115  100   5 Ket          Ket
3116  103  99 Ket          Ket
3117  106 106 Ket          Ket
3118  109     End          End
3119  ------------------------------------------------------------------  ------------------------------------------------------------------
3120  Capturing subpattern count = 5  Capturing subpattern count = 5
3121  Options: anchored  Options: anchored
3122  No first char  No first char
3123  No need char  No need char
3124    
3125  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3126  ------------------------------------------------------------------  ------------------------------------------------------------------
3127    0  12 Bra 0          Bra
3128    3     ^          ^
3129    4   1 x          x
3130    7     a+?          a++
3131    9   1 b          b
3132   12  12 Ket          Ket
3133   15     End          End
3134  ------------------------------------------------------------------  ------------------------------------------------------------------
3135  Capturing subpattern count = 0  Capturing subpattern count = 0
3136  Options: anchored  Options: anchored
3137  No first char  No first char
3138  Need char = 'b'  Need char = 'b'
3139    
3140  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3141  ------------------------------------------------------------------  ------------------------------------------------------------------
3142    0  18 Bra 0          Bra
3143    3     ^          ^
3144    4   1 x          x
3145    7   5 Bra 1          CBra 1
3146   10     a+?          a+?
3147   12   5 Ket          Ket
3148   15   1 b          b
3149   18  18 Ket          Ket
3150   21     End          End
3151  ------------------------------------------------------------------  ------------------------------------------------------------------
3152  Capturing subpattern count = 1  Capturing subpattern count = 1
3153  Options: anchored  Options: anchored
3154  No first char  No first char
3155  Need char = 'b'  Need char = 'b'
3156    
3157  /[.x.]/  /[.x.]/I
3158  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3159    
3160  /[=x=]/  /[=x=]/I
3161  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3162    
3163  /[:x:]/  /[:x:]/I
3164  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
3165    
3166  /\l/  /\l/I
3167  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  
3168    
3169  /\pP/  /\L/I
3170  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
3171    
3172  /\PP/  /\N{name}/I
3173  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
3174    
3175  /\p{prop}/  /\u/I
3176  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
3177    
3178  /\P{prop}/  /\U/I
3179  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
3180    
3181  /\u/  /a{1,3}b/U
3182  Failed: PCRE does not support \L, \l, \N, \P, \p, \U, \u, or \X at offset 1      ab
3183     0: ab
 /\U/  
 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  
3184    
3185  /[/  /[/I
3186  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3187    
3188  /[a-/  /[a-/I
3189  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3190    
3191  /[[:space:]/  /[[:space:]/I
3192  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3193    
3194  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3195  ------------------------------------------------------------------  ------------------------------------------------------------------
3196    0  36 Bra 0          Bra
3197    3     [\x09-\x0a\x0c-\x0d ]          [\x09-\x0d ]
3198   36  36 Ket          Ket
3199   39     End          End
3200  ------------------------------------------------------------------  ------------------------------------------------------------------
3201  Capturing subpattern count = 0  Capturing subpattern count = 0
3202  No options  No options
3203  No first char  No first char
3204  No need char  No need char
3205    
3206  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3207  ------------------------------------------------------------------  ------------------------------------------------------------------
3208    0  36 Bra 0          Bra
3209    3     [\x09-\x0d ]          [\x09-\x0d ]
3210   36  36 Ket          Ket
3211   39     End          End
3212  ------------------------------------------------------------------  ------------------------------------------------------------------
3213  Capturing subpattern count = 0  Capturing subpattern count = 0
3214  No options  No options
3215  No first char  No first char
3216  No need char  No need char
3217    
3218  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3219  ------------------------------------------------------------------  ------------------------------------------------------------------
3220    0  36 Bra 0          Bra
3221    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3222   36  36 Ket          Ket
3223   39     End          End
3224  ------------------------------------------------------------------  ------------------------------------------------------------------
3225  Capturing subpattern count = 0  Capturing subpattern count = 0
3226  No options  No options
3227  No first char  No first char
3228  No need char  No need char
3229    
3230  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3231  Capturing subpattern count = 0  Capturing subpattern count = 0
3232  Options: extended  Options: extended
3233  First char = '<'  First char = '<'
# Line 3181  Need char = '>' Line 3240  Need char = '>'
3240   0: <abc <123> hij>   0: <abc <123> hij>
3241      <abc <def> hij>      <abc <def> hij>
3242   0: <def>   0: <def>
3243      <abc<>def>      <abc<>def>
3244   0: <abc<>def>   0: <abc<>def>
3245      <abc<>      <abc<>
3246   0: <>   0: <>
3247      *** Failers      *** Failers
3248  No match  No match
3249      <abc      <abc
3250  No match  No match
3251    
3252  |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  
3253  ------------------------------------------------------------------  ------------------------------------------------------------------
3254    0 417 Bra 0          Bra
3255    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
3256  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
3257  416     \b          Ket
3258  417 417 Ket          End
 420     End  
3259  ------------------------------------------------------------------  ------------------------------------------------------------------
3260  Capturing subpattern count = 0  Capturing subpattern count = 0
3261    Max lookbehind = 1
3262  No options  No options
3263  First char = '8'  First char = '8'
3264  Need char = 'X'  Need char = 'X'
3265    
3266  |\$\<\.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  
3267  ------------------------------------------------------------------  ------------------------------------------------------------------
3268    0 412 Bra 0          Bra
3269    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
3270  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
3271  411     \b          Ket
3272  412 412 Ket          End
 415     End  
3273  ------------------------------------------------------------------  ------------------------------------------------------------------
3274  Capturing subpattern count = 0  Capturing subpattern count = 0
3275    Max lookbehind = 1
3276  No options  No options
3277  First char = '$'  First char = '$'
3278  Need char = 'X'  Need char = 'X'
# Line 3230  No need char Line 3287  No need char
3287  /(.*)\d+/I  /(.*)\d+/I
3288  Capturing subpattern count = 1  Capturing subpattern count = 1
3289  No options  No options
3290  First char at start or follows \n  First char at start or follows newline
3291  No need char  No need char
3292    
3293  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3294  Capturing subpattern count = 1  Capturing subpattern count = 1
3295  Max back reference = 1  Max back reference = 1
# Line 3250  No need char Line 3307  No need char
3307  Capturing subpattern count = 2  Capturing subpattern count = 2
3308  Max back reference = 2  Max back reference = 2
3309  No options  No options
3310  First char at start or follows \n  First char at start or follows newline
3311  Need char = 'z'  Need char = 'z'
3312    
3313  /((.*))\d+\1/I  /((.*))\d+\1/I
# Line 3263  No need char Line 3320  No need char
3320   0: bc123bc   0: bc123bc
3321   1: bc   1: bc
3322   2: bc   2: bc
3323    
3324  /a[b]/I  /a[b]/I
3325  Capturing subpattern count = 0  Capturing subpattern count = 0
3326  No options  No options
# Line 3272  Need char = 'b' Line 3329  Need char = 'b'
3329    
3330  /(?=a).*/I  /(?=a).*/I
3331  Capturing subpattern count = 0  Capturing subpattern count = 0
3332    May match empty string
3333  No options  No options
3334  First char = 'a'  First char = 'a'
3335  No need char  No need char
3336    
3337  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3338  Capturing subpattern count = 0  Capturing subpattern count = 0
3339  Options: caseless  Options: caseless
3340  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3285  Need char = 'z' (caseless) Line 3343  Need char = 'z' (caseless)
3343  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3344  Capturing subpattern count = 0  Capturing subpattern count = 0
3345  No options  No options
 Case state changes  
3346  First char = 'a'  First char = 'a'
3347  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3348    
3349  /(?=a)(?=b)/I  /(?=a)(?=b)/I
3350  Capturing subpattern count = 0  Capturing subpattern count = 0
3351    May match empty string
3352  No options  No options
3353  First char = 'a'  First char = 'a'
3354  No need char  No need char
# Line 3319  No options Line 3377  No options
3377  No first char  No first char
3378  Need char = 'a'  Need char = 'a'
3379    
3380  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3381  Capturing subpattern count = 0  Capturing subpattern count = 1
3382  No options  No options
3383  First char = 'a'  First char = 'a'
3384  No need char  No need char
3385    
3386  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3387  Capturing subpattern count = 0  Capturing subpattern count = 1
3388  No options  No options
3389  First char = 'a'  First char = 'a'
3390  Need char = 'z'  Need char = 'z'
3391    
3392  /(?(1)abz)/I  /(?(1)abz)(.)/I
3393  Capturing subpattern count = 0  Capturing subpattern count = 1
3394  No options  No options
3395  No first char  No first char
3396  No need char  No need char
3397    
3398  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3399  Capturing subpattern count = 0  Capturing subpattern count = 1
3400  No options  No options
3401  No first char  No first char
3402  Need char = '3'  Need char = '3'
# Line 3357  Need char = 'a' Line 3415  Need char = 'a'
3415    
3416  /(a)*/I  /(a)*/I
3417  Capturing subpattern count = 1  Capturing subpattern count = 1
3418    May match empty string
3419  No options  No options
3420  No first char  No first char
3421  No need char  No need char
# Line 3378  Capturing subpattern count = 0 Line 3437  Capturing subpattern count = 0
3437  No options  No options
3438  No first char  No first char
3439  No need char  No need char
3440  Study size = 40  Subject length lower bound = 1
3441  Starting character set: a b  Starting chars: a b
3442    
3443  /[^a]/I  /[^a]/I
3444  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3398  Capturing subpattern count = 0 Line 3457  Capturing subpattern count = 0
3457  No options  No options
3458  No first char  No first char
3459  Need char = '6'  Need char = '6'
3460  Study size = 40  Subject length lower bound = 4
3461  Starting character set: 0 1 2 3 4 5 6 7 8 9  Starting chars: 0 1 2 3 4 5 6 7 8 9
3462    
3463  /a^b/I  /a^b/I
3464  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 3407  No options Line 3466  No options
3466  First char = 'a'  First char = 'a'
3467  Need char = 'b'  Need char = 'b'
3468    
3469  /^a/mI  /^a/Im
3470  Capturing subpattern count = 0  Capturing subpattern count = 0
3471  Options: multiline  Options: multiline
3472  First char at start or follows \n  First char at start or follows newline
3473  Need char = 'a'  Need char = 'a'
3474    abcde    abcde
3475   0: a   0: a
3476    xy\nabc    xy\nabc
3477   0: a   0: a
3478    *** Failers    *** Failers
3479  No match  No match
3480    xyabc    xyabc
3481  No match  No match
3482    
3483  /c|abc/I  /c|abc/I
# Line 3432  Capturing subpattern count = 0 Line 3491  Capturing subpattern count = 0
3491  Options: caseless  Options: caseless
3492  No first char  No first char
3493  No need char  No need char
3494  Study size = 40  Subject length lower bound = 1
3495  Starting character set: A B a b  Starting chars: A B a b
3496    
3497  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3498  Capturing subpattern count = 0  Capturing subpattern count = 0
3499  No options  No options
 Case state changes  
3500  No first char  No first char
3501  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3502  Study size = 40  Subject length lower bound = 3
3503  Starting character set: a b  Starting chars: a b
3504    
3505  /abc(?C)def/  /abc(?C)def/I
3506  Capturing subpattern count = 0  Capturing subpattern count = 0
3507  No options  No options
3508  First char = 'a'  First char = 'a'
3509  Need char = 'f'  Need char = 'f'
3510      abcdef      abcdef
3511  --->abcdef  --->abcdef
3512    0 ^  ^    0 ^  ^       d
3513   0: abcdef   0: abcdef
3514      1234abcdef      1234abcdef
3515  --->1234abcdef  --->1234abcdef
3516    0     ^  ^    0     ^  ^       d
3517   0: abcdef   0: abcdef
3518      *** Failers      *** Failers
3519  No match  No match
3520      abcxyz      abcxyz
3521  No match  No match
3522      abcxyzf      abcxyzf
3523  --->abcxyzf  --->abcxyzf
3524    0 ^  ^    0 ^  ^        d
3525  No match  No match
3526    
3527  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3528  Capturing subpattern count = 0  Capturing subpattern count = 0
3529  No options  No options
3530  First char = 'a'  First char = 'a'
3531  Need char = 'f'  Need char = 'f'
3532      123abcdef      123abcdef
3533  --->123abcdef  --->123abcdef
3534    0    ^  ^    0    ^  ^       d
3535    1    ^    ^    1    ^    ^     f
3536   0: abcdef   0: abcdef
3537    
3538  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/IS
3539    Capturing subpattern count = 0
3540    No options
3541    No first char
3542    Need char = 'f'
3543    Subject length lower bound = 7
3544    Starting chars: 0 1 2 3 4 5 6 7 8 9
3545        1234abcdef
3546    --->1234abcdef
3547      1 ^              \d
3548      1  ^             \d
3549      1   ^            \d
3550      1    ^           \d
3551      2    ^   ^       d
3552     0: 4abcdef
3553        *** Failers
3554    No match
3555        abcdef
3556    No match
3557    
3558    /(?C1)\dabc(?C2)def/ISS
3559  Capturing subpattern count = 0  Capturing subpattern count = 0
3560  No options  No options
3561  No first char  No first char
3562  Need char = 'f'  Need char = 'f'
3563      1234abcdef      1234abcdef
3564  --->1234abcdef  --->1234abcdef
3565    1 ^    1 ^              \d
3566    1  ^    1  ^             \d
3567    1   ^    1   ^            \d
3568    1    ^    1    ^           \d
3569    2    ^   ^    2    ^   ^       d
3570   0: 4abcdef   0: 4abcdef
3571      *** Failers      *** Failers
3572  No match  No match
3573      abcdef      abcdef
3574  --->abcdef  --->abcdef
3575    1 ^    1 ^          \d
3576    1  ^    1  ^         \d
3577    1   ^    1   ^        \d
3578    1    ^    1    ^       \d
3579    1     ^    1     ^      \d
3580    1      ^    1      ^     \d
3581  No match  No match
3582    
3583  /(?C255)ab/  /(?C255)ab/I
3584  Capturing subpattern count = 0  Capturing subpattern count = 0
3585  No options  No options
3586  First char = 'a'  First char = 'a'
3587  Need char = 'b'  Need char = 'b'
3588    
3589  /(?C256)ab/  /(?C256)ab/I
3590  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3591    
3592  /(?Cab)xx/  /(?Cab)xx/I
3593  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3594    
3595  /(?C12vr)x/  /(?C12vr)x/I
3596  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3597    
3598  /abc(?C)def/  /abc(?C)def/I
3599  Capturing subpattern count = 0  Capturing subpattern count = 0
3600  No options  No options
3601  First char = 'a'  First char = 'a'
# Line 3526  Need char = 'f' Line 3604  Need char = 'f'
3604  No match  No match
3605      \x83\x0\x61bcdef      \x83\x0\x61bcdef
3606  --->\x83\x00abcdef  --->\x83\x00abcdef
3607    0         ^  ^    0         ^  ^       d
3608   0: abcdef   0: abcdef
3609    
3610  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3611  Capturing subpattern count = 1  Capturing subpattern count = 1
3612  No options  No options
3613  First char = 'a'  First char = 'a'
3614  Need char = 'f'  Need char = 'f'
3615      123abcdef      123abcdef
3616  --->123abcdef  --->123abcdef
3617    0    ^  ^    0    ^  ^       d
3618    1    ^    ^    1    ^    ^     f
3619   0: abcdef   0: abcdef
3620   1: abc   1: abc
3621      123abcdef\C+      123abcdef\C+
3622  Callout 0: last capture = 1  Callout 0: last capture = 1
3623   0: <unset>   0: <unset>
3624   1: abc   1: abc
3625  --->123abcdef  --->123abcdef
3626         ^  ^         ^  ^       d
3627  Callout 1: last capture = 1  Callout 1: last capture = 1
3628   0: <unset>   0: <unset>
3629   1: abc   1: abc
3630  --->123abcdef  --->123abcdef
3631         ^    ^         ^    ^     f
3632   0: abcdef   0: abcdef
3633   1: abc   1: abc
3634      123abcdef\C-      123abcdef\C-
3635   0: abcdef   0: abcdef
3636   1: abc   1: abc
3637      *** Failers      *** Failers
3638  No match  No match
3639      123abcdef\C!1      123abcdef\C!1
3640  --->123abcdef  --->123abcdef
3641    0    ^  ^    0    ^  ^       d
3642    1    ^    ^    1    ^    ^     f
3643  No match  No match
3644    
3645  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3646  Capturing subpattern count = 1  Capturing subpattern count = 1
3647    May match empty string
3648  No options  No options
3649  No first char  No first char
3650  No need char  No need char
3651      abcabcabc      abcabcabc
3652  --->abcabcabc  --->abcabcabc
3653    0 ^    0 ^             (abc(?C1))*
3654    1 ^  ^    1 ^  ^          )
3655    1 ^     ^    1 ^     ^       )
3656    1 ^        ^    1 ^        ^    )
3657   0: abcabcabc   0: abcabcabc
3658   1: abc   1: abc
3659      abcabc\C!1!3      abcabc\C!1!3
3660  --->abcabc  --->abcabc
3661    0 ^    0 ^          (abc(?C1))*
3662    1 ^  ^    1 ^  ^       )
3663    1 ^     ^    1 ^     ^    )
3664   0: abcabc   0: abcabc
3665   1: abc   1: abc
3666      *** Failers      *** Failers
3667  --->*** Failers  --->*** Failers
3668    0 ^    0 ^               (abc(?C1))*
3669   0:   0:
3670      abcabcabc\C!1!3      abcabcabc\C!1!3
3671  --->abcabcabc  --->abcabcabc
3672    0 ^    0 ^             (abc(?C1))*
3673    1 ^  ^    1 ^  ^          )
3674    1 ^     ^    1 ^     ^       )
3675    1 ^        ^    1 ^        ^    )
3676   0: abcabc   0: abcabc
3677   1: abc   1: abc
3678    
3679  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3680  Capturing subpattern count = 1  Capturing subpattern count = 1
3681    May match empty string
3682  No options  No options
3683  No first char  No first char
3684  No need char  No need char
# Line 3606  No need char Line 3686  No need char
3686  Callout 0: last capture = -1  Callout 0: last capture = -1
3687   0: <unset>   0: <unset>
3688  --->123  --->123
3689      ^  ^      ^  ^    )
3690   0: 123   0: 123
3691   1: 123   1: 123
3692      123456\C+      123456\C+
3693  Callout 0: last capture = -1  Callout 0: last capture = -1
3694   0: <unset>   0: <unset>
3695  --->123456  --->123456
3696      ^  ^      ^  ^       )
3697  Callout 0: last capture = 1  Callout 0: last capture = 1
3698   0: <unset>   0: <unset>
3699   1: 123   1: 123
3700  --->123456  --->123456
3701      ^     ^      ^     ^    )
3702   0: 123456   0: 123456
3703   1: 456   1: 456
3704      123456789\C+      123456789\C+
3705  Callout 0: last capture = -1  Callout 0: last capture = -1
3706   0: <unset>   0: <unset>
3707  --->123456789  --->123456789
3708      ^  ^      ^  ^          )
3709  Callout 0: last capture = 1  Callout 0: last capture = 1
3710   0: <unset>   0: <unset>
3711   1: 123   1: 123
3712  --->123456789  --->123456789
3713      ^     ^      ^     ^       )
3714  Callout 0: last capture = 1  Callout 0: last capture = 1
3715   0: <unset>   0: <unset>
3716   1: 456   1: 456
3717  --->123456789  --->123456789
3718      ^        ^      ^        ^    )
3719   0: 123456789   0: 123456789
3720   1: 789   1: 789
3721    
3722  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3723  Capturing subpattern count = 2  Capturing subpattern count = 2
3724  No options  No options
3725  First char = 'x'  First char = 'x'
# Line 3650  Callout 0: last capture = 2 Line 3730  Callout 0: last capture = 2
3730   1: <unset>   1: <unset>
3731   2: xyz   2: xyz
3732  --->xyzabc  --->xyzabc
3733      ^  ^      ^  ^       p
3734  Callout 1: last capture = -1  Callout 1: last capture = -1
3735   0: <unset>   0: <unset>
3736  --->xyzabc  --->xyzabc
3737      ^      ^          x
3738   0: xyzabc   0: xyzabc
3739   1: xyzabc   1: xyzabc
3740    
3741  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3742  Capturing subpattern count = 3  Capturing subpattern count = 3
3743  No options  No options
3744  First char = 'X'  First char = 'X'
# Line 3670  Callout 0: last capture = 3 Line 3750  Callout 0: last capture = 3
3750   2: <unset>   2: <unset>
3751   3: xyz   3: xyz
3752  --->Xxyzabc  --->Xxyzabc
3753      ^   ^      ^   ^       p
3754  Callout 1: last capture = 1  Callout 1: last capture = 1
3755   0: <unset>   0: <unset>
3756   1: X   1: X
3757  --->Xxyzabc  --->Xxyzabc
3758      ^^      ^^          x
3759   0: Xxyzabc   0: Xxyzabc
3760   1: X   1: X
3761   2: xyzabc   2: xyzabc
3762    
3763  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3764  Capturing subpattern count = 1  Capturing subpattern count = 1
3765  No options  No options
3766  First char = 'a'  First char = 'a'
# Line 3690  Callout 0: last capture = 1 Line 3770  Callout 0: last capture = 1
3770   0: <unset>   0: <unset>
3771   1: abc   1: abc
3772  --->abcdef  --->abcdef
3773      ^      ^          a
3774   0: abcdef   0: abcdef
3775   1: abc   1: abc
3776    
3777  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3778  Capturing subpattern count = 1  Capturing subpattern count = 1
3779  No options  No options
3780  First char = 'a'  First char = 'a'
3781  Need char = 'z'  Need char = 'z'
3782      abcxyz\C+      abcxyz\C+
3783  Callout 1: last capture = 1  Callout 1: last capture = 1
3784   0: <unset>   0: <unset>
3785   1: abc   1: abc
3786  --->abcxyz  --->abcxyz
3787      ^  ^      ^  ^       d
3788  Callout 2: last capture = -1  Callout 2: last capture = -1
3789   0: <unset>   0: <unset>
3790  --->abcxyz  --->abcxyz
3791      ^      ^          a
3792   0: abcxyz   0: abcxyz
3793    
3794  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3795  Capturing subpattern count = 1  Capturing subpattern count = 1
3796    Max lookbehind = 3
3797  No options  No options
3798  First char = 'x'  First char = 'x'
3799  Need char = 'z'  Need char = 'z'
# Line 3721  Callout 0: last capture = 1 Line 3802  Callout 0: last capture = 1
3802   0: <unset>   0: <unset>
3803   1: abc   1: abc
3804  --->abcxyz  --->abcxyz
3805         ^         ^       )
3806   0: xyz   0: xyz
3807   1: abc   1: abc
3808    
3809  /(?C)abc/  /a(b+)(c*)(?C1)/I
3810    Capturing subpattern count = 2
3811    No options
3812    First char = 'a'
3813    Need char = 'b'
3814        abbbbbccc\C*1
3815    --->abbbbbccc
3816      1 ^        ^
3817    Callout data = 1
3818    No match
3819    
3820    /a(b+?)(c*?)(?C1)/I
3821    Capturing subpattern count = 2
3822    No options
3823    First char = 'a'
3824    Need char = 'b'
3825        abbbbbccc\C*1
3826    --->abbbbbccc
3827      1 ^ ^
3828    Callout data = 1
3829      1 ^  ^
3830    Callout data = 1
3831      1 ^   ^
3832    Callout data = 1
3833      1 ^    ^
3834    Callout data = 1
3835      1 ^     ^
3836    Callout data = 1
3837      1 ^      ^
3838    Callout data = 1
3839      1 ^       ^
3840    Callout data = 1
3841      1 ^        ^
3842    Callout data = 1
3843    No match
3844    
3845    /(?C)abc/I
3846  Capturing subpattern count = 0  Capturing subpattern count = 0
3847  No options  No options
3848  First char = 'a'  First char = 'a'
3849  Need char = 'c'  Need char = 'c'
3850    
3851  /(?C)^abc/  /(?C)^abc/I
3852  Capturing subpattern count = 0  Capturing subpattern count = 0
3853  Options: anchored  Options: anchored
3854  No first char  No first char
3855  No need char  No need char
3856    
3857  /(?C)a|b/S  /(?C)a|b/IS
3858  Capturing subpattern count = 0  Capturing subpattern count = 0
3859  No options  No options
3860  No first char  No first char
3861  No need char  No need char
3862  Study size = 40  Subject length lower bound = 1
3863  Starting character set: a b  Starting chars: a b
3864    
3865  /(?R)/  /(?R)/I
3866  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3867    
3868  /(a|(?R))/  /(a|(?R))/I
3869  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3870    
3871  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/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|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3875  Capturing subpattern count = 3  Capturing subpattern count = 3
3876  No options  No options
3877  First char = 'x'  First char = 'x'
# Line 3783  No need char Line 3900  No need char
3900   3: xxab   3: xxab
3901      *** Failers      *** Failers
3902  No match  No match
3903      xyab      xyab
3904  No match  No match
3905    
3906  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3907  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3908    
3909  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3910  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3911    
3912  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3913  Capturing subpattern count = 1  Capturing subpattern count = 1
3914    May match empty string
3915  Options: anchored  Options: anchored
3916  No first char  No first char
3917  No need char  No need char
# Line 3803  No need char Line 3921  No need char
3921      a(b)c      a(b)c
3922   0: a(b)c   0: a(b)c
3923   1: c   1: c
3924      a(b(c))d      a(b(c))d
3925   0: a(b(c))d   0: a(b(c))d
3926   1: d   1: d
3927      *** Failers)      *** Failers)
3928  No match  No match
3929      a(b(c)d      a(b(c)d
3930  No match  No match
3931    
3932  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3933  Capturing subpattern count = 1  Capturing subpattern count = 1
3934  Options: anchored  Options: anchored
3935  No first char  No first char
# Line 3826  Need char = '<' Line 3944  Need char = '<'
3944   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3945   1: (1(2)3)   1: (1(2)3)
3946    
3947  /(a(?1)b)/D  /(a(?1)b)/DZ
3948  ------------------------------------------------------------------  ------------------------------------------------------------------
3949    0  18 Bra 0          Bra
3950    3  12 Bra 1          CBra 1
3951    6   1 a          a
3952    9   3 Recurse          Recurse
3953   12   1 b          b
3954   15  12 Ket          Ket
3955   18  18 Ket          Ket
3956   21     End          End
3957  ------------------------------------------------------------------  ------------------------------------------------------------------
3958  Capturing subpattern count = 1  Capturing subpattern count = 1
3959  No options  No options
3960  First char = 'a'  First char = 'a'
3961  Need char = 'b'  Need char = 'b'
3962    
3963  /(a(?1)+b)/D  /(a(?1)+b)/DZ
3964  ------------------------------------------------------------------  ------------------------------------------------------------------
3965    0  24 Bra 0          Bra
3966    3  18 Bra 1          CBra 1
3967    6   1 a          a
3968    9   6 Bra 0          Once
3969   12   3 Recurse          Recurse
3970   15   6 KetRmax          KetRmax
3971   18   1 b          b
3972   21  18 Ket          Ket
3973   24  24 Ket          Ket
3974   27     End          End
3975  ------------------------------------------------------------------  ------------------------------------------------------------------
3976  Capturing subpattern count = 1  Capturing subpattern count = 1
3977  No options  No options
3978  First char = 'a'  First char = 'a'
3979  Need char = 'b'  Need char = 'b'
3980    
3981  /^\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))$/  
3982  Capturing subpattern count = 2  Capturing subpattern count = 2
3983  Options: anchored  Options: anchored
3984  No first char  No first char
# Line 3912  No need char Line 3997  No need char
3997  No match  No match
3998      ((2+2)*-3)-7)      ((2+2)*-3)-7)
3999  No match  No match
4000    
4001  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
4002  Capturing subpattern count = 2  Capturing subpattern count = 2
4003  Options: anchored  Options: anchored
4004  No first char  No first char
# Line 3922  No need char Line 4007  No need char
4007   0: xyz   0: xyz
4008   1: xyz   1: xyz
4009   2: y   2: y
4010      xxyzxyzz      xxyzxyzz
4011   0: xxyzxyzz   0: xxyzxyzz
4012   1: xxyzxyzz   1: xxyzxyzz
4013   2: xyzxyz   2: xyzxyz
# Line 3930  No need char Line 4015  No need char
4015  No match  No match
4016      xxyzz      xxyzz
4017  No match  No match
4018      xxyzxyzxyzz      xxyzxyzxyzz
4019  No match  No match
4020    
4021  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4022  Capturing subpattern count = 2  Capturing subpattern count = 2
4023  Options: extended  Options: extended
4024  First char = '<'  First char = '<'
# Line 3954  Need char = '>' Line 4039  Need char = '>'
4039   0: <def>   0: <def>
4040   1: <def>   1: <def>
4041   2: <def>   2: <def>
4042      <abc<>def>      <abc<>def>
4043   0: <abc<>def>   0: <abc<>def>
4044   1: <abc<>def>   1: <abc<>def>
4045   2: <abc<>def>   2: <abc<>def>
4046      <abc<>      <abc<>
4047   0: <>   0: <>
4048   1: <>   1: <>
4049   2: <>   2: <>
# Line 3967  No match Line 4052  No match
4052      <abc      <abc
4053  No match  No match
4054    
4055  /(?1)/  /(?1)/I
4056  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4057    
4058  /((?2)(abc)/  /((?2)(abc)/I
4059  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4060    
4061  /^(abc)def(?1)/  /^(abc)def(?1)/I
4062  Capturing subpattern count = 1  Capturing subpattern count = 1
4063  Options: anchored  Options: anchored