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