/[pcre]/code/trunk/testdata/testoutput2
ViewVC logotype

Diff of /code/trunk/testdata/testoutput2

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 75 by nigel, Sat Feb 24 21:40:37 2007 UTC revision 963 by ph10, Sat Apr 21 18:06:31 2012 UTC
# Line 1  Line 1 
1  PCRE version 5.0 13-Sep-2004  /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3  /(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    Max lookbehind = 6
455      foo      foo
456   0: foo   0: foo
457      catfoo      catfoo
458   0: foo   0: foo
459      *** Failers      *** Failers
460  No match  No match
461      the barfoo      the barfoo
462  No match  No match
463      and cattlefoo      and cattlefoo
464  No match  No match
465    
466  /(?<=a+)b/  /(?<=a+)b/
# Line 498  Failed: lookbehind assertion is not fixe Line 472  Failed: lookbehind assertion is not fixe
472  /(?<!(foo)a\1)bar/  /(?<!(foo)a\1)bar/
473  Failed: lookbehind assertion is not fixed length at offset 12  Failed: lookbehind assertion is not fixed length at offset 12
474    
475  /(?i)abc/  /(?i)abc/I
476  Capturing subpattern count = 0  Capturing subpattern count = 0
477  Options: caseless  Options: caseless
478  First char = 'a' (caseless)  First char = 'a' (caseless)
479  Need char = 'c' (caseless)  Need char = 'c' (caseless)
480    
481  /(a|(?m)a)/  /(a|(?m)a)/I
482  Capturing subpattern count = 1  Capturing subpattern count = 1
483  No options  No options
484  First char = 'a'  First char = 'a'
485  No need char  No need char
486    
487  /(?i)^1234/  /(?i)^1234/I
488  Capturing subpattern count = 0  Capturing subpattern count = 0
489  Options: anchored caseless  Options: anchored caseless
490  No first char  No first char
491  No need char  No need char
492    
493  /(^b|(?i)^d)/  /(^b|(?i)^d)/I
494  Capturing subpattern count = 1  Capturing subpattern count = 1
495  Options: anchored  Options: anchored
 Case state changes  
496  No first char  No first char
497  No need char  No need char
498    
499  /(?s).*/  /(?s).*/I
500  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
501  Options: anchored dotall  Options: anchored dotall
502  No first char  No first char
503  No need char  No need char
504    
505  /[abcd]/S  /[abcd]/IS
506  Capturing subpattern count = 0  Capturing subpattern count = 0
507  No options  No options
508  No first char  No first char
509  No need char  No need char
510    Subject length lower bound = 1
511  Starting byte set: a b c d  Starting byte set: a b c d
512    
513  /(?i)[abcd]/S  /(?i)[abcd]/IS
514  Capturing subpattern count = 0  Capturing subpattern count = 0
515  Options: caseless  Options: caseless
516  No first char  No first char
517  No need char  No need char
518    Subject length lower bound = 1
519  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
520    
521  /(?m)[xy]|(b|c)/S  /(?m)[xy]|(b|c)/IS
522  Capturing subpattern count = 1  Capturing subpattern count = 1
523  Options: multiline  Options: multiline
524  No first char  No first char
525  No need char  No need char
526    Subject length lower bound = 1
527  Starting byte set: b c x y  Starting byte set: b c x y
528    
529  /(^a|^b)/m  /(^a|^b)/Im
530  Capturing subpattern count = 1  Capturing subpattern count = 1
531  Options: multiline  Options: multiline
532  First char at start or follows \n  First char at start or follows newline
533  No need char  No need char
534    
535  /(?i)(^a|^b)/m  /(?i)(^a|^b)/Im
536  Capturing subpattern count = 1  Capturing subpattern count = 1
537  Options: caseless multiline  Options: caseless multiline
538  First char at start or follows \n  First char at start or follows newline
539  No need char  No need char
540    
541  /(a)(?(1)a|b|c)/  /(a)(?(1)a|b|c)/
# Line 570  Failed: conditional group contains more Line 545  Failed: conditional group contains more
545  Failed: conditional group contains more than two branches at offset 12  Failed: conditional group contains more than two branches at offset 12
546    
547  /(?(1a)/  /(?(1a)/
548  Failed: malformed number after (?( at offset 4  Failed: missing ) at offset 6
549    
550    /(?(1a))/
551    Failed: reference to non-existent subpattern at offset 6
552    
553  /(?(?i))/  /(?(?i))/
554  Failed: assertion expected after (?( at offset 3  Failed: assertion expected after (?( at offset 3
555    
556  /(?(abc))/  /(?(abc))/
557  Failed: assertion expected after (?( at offset 3  Failed: reference to non-existent subpattern at offset 7
558    
559  /(?(?<ab))/  /(?(?<ab))/
560  Failed: unrecognized character after (?< at offset 5  Failed: syntax error in subpattern name (missing terminator) at offset 7
561    
562  /((?s)blah)\s+\1/  /((?s)blah)\s+\1/I
563  Capturing subpattern count = 1  Capturing subpattern count = 1
564  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
565  No options  No options
566  First char = 'b'  First char = 'b'
567  Need char = 'h'  Need char = 'h'
568    
569  /((?i)blah)\s+\1/  /((?i)blah)\s+\1/I
570  Capturing subpattern count = 1  Capturing subpattern count = 1
571  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
572  No options  No options
 Case state changes  
573  First char = 'b' (caseless)  First char = 'b' (caseless)
574  Need char = 'h' (caseless)  Need char = 'h' (caseless)
575    
576  /((?i)b)/DS  /((?i)b)/IDZS
577  ------------------------------------------------------------------  ------------------------------------------------------------------
578    0  15 Bra 0          Bra
579    3   7 Bra 1          CBra 1
580    6  01 Opt       /i b
581    8  NC b          Ket
582   10   7 Ket          Ket
583   13  00 Opt          End
  15  15 Ket  
  18     End  
584  ------------------------------------------------------------------  ------------------------------------------------------------------
585  Capturing subpattern count = 1  Capturing subpattern count = 1
586  No options  No options
 Case state changes  
587  First char = 'b' (caseless)  First char = 'b' (caseless)
588  No need char  No need char
589  Study returned NULL  Subject length lower bound = 1
590    No set of starting bytes
591    
592  /(a*b|(?i:c*(?-i)d))/S  /(a*b|(?i:c*(?-i)d))/IS
593  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
594  No options  No options
 Case state changes  
595  No first char  No first char
596  No need char  No need char
597    Subject length lower bound = 1
598  Starting byte set: C a b c d  Starting byte set: C a b c d
599    
600  /a$/  /a$/I
601  Capturing subpattern count = 0  Capturing subpattern count = 0
602  No options  No options
603  First char = 'a'  First char = 'a'
# Line 634  No need char Line 606  No need char
606   0: a   0: a
607      a\n      a\n
608   0: a   0: a
609      *** Failers      *** Failers
610  No match  No match
611      \Za      \Za
612  No match  No match
613      \Za\n      \Za\n
614  No match  No match
615    
616  /a$/m  /a$/Im
617  Capturing subpattern count = 0  Capturing subpattern count = 0
618  Options: multiline  Options: multiline
619  First char = 'a'  First char = 'a'
# Line 650  No need char Line 622  No need char
622   0: a   0: a
623      a\n      a\n
624   0: a   0: a
625      \Za\n      \Za\n
626   0: a   0: a
627      *** Failers      *** Failers
628  No match  No match
629      \Za      \Za
630  No match  No match
631    
632  /\Aabc/m  /\Aabc/Im
633  Capturing subpattern count = 0  Capturing subpattern count = 0
634  Options: anchored multiline  Options: anchored multiline
635  No first char  No first char
636  No need char  No need char
637    
638  /^abc/m  /^abc/Im
639  Capturing subpattern count = 0  Capturing subpattern count = 0
640  Options: multiline  Options: multiline
641  First char at start or follows \n  First char at start or follows newline
642  Need char = 'c'  Need char = 'c'
643    
644  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/I
645  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
646  Options: anchored  Options: anchored
647  No first char  No first char
648  No need char  No need char
# Line 683  No need char Line 654  No need char
654   4: bbbbccccc   4: bbbbccccc
655   5: def   5: def
656    
657  /(?<=foo)[ab]/S  /(?<=foo)[ab]/IS
658  Capturing subpattern count = 0  Capturing subpattern count = 0
659  No options  No options
660  No first char  No first char
661  No need char  No need char
662    Max lookbehind = 3
663    Subject length lower bound = 1
664  Starting byte set: a b  Starting byte set: a b
665    
666  /(?<!foo)(alpha|omega)/S  /(?<!foo)(alpha|omega)/IS
667  Capturing subpattern count = 1  Capturing subpattern count = 1
668  No options  No options
669  No first char  No first char
670  Need char = 'a'  Need char = 'a'
671    Max lookbehind = 3
672    Subject length lower bound = 5
673  Starting byte set: a o  Starting byte set: a o
674    
675  /(?!alphabet)[ab]/S  /(?!alphabet)[ab]/IS
676  Capturing subpattern count = 0  Capturing subpattern count = 0
677  No options  No options
678  No first char  No first char
679  No need char  No need char
680    Subject length lower bound = 1
681  Starting byte set: a b  Starting byte set: a b
682    
683  /(?<=foo\n)^bar/m  /(?<=foo\n)^bar/Im
684  Capturing subpattern count = 0  Capturing subpattern count = 0
685    Contains explicit CR or LF match
686  Options: multiline  Options: multiline
687  No first char  No first char
688  Need char = 'r'  Need char = 'r'
689      foo\nbarbar  Max lookbehind = 4
690        foo\nbarbar
691   0: bar   0: bar
692      ***Failers      ***Failers
693  No match  No match
694      rhubarb      rhubarb
695  No match  No match
696      barbell      barbell
697  No match  No match
698      abc\nbarton      abc\nbarton
699  No match  No match
700    
701  /^(?<=foo\n)bar/m  /^(?<=foo\n)bar/Im
702  Capturing subpattern count = 0  Capturing subpattern count = 0
703    Contains explicit CR or LF match
704  Options: multiline  Options: multiline
705  First char at start or follows \n  First char at start or follows newline
706  Need char = 'r'  Need char = 'r'
707      foo\nbarbar  Max lookbehind = 4
708        foo\nbarbar
709   0: bar   0: bar
710      ***Failers      ***Failers
711  No match  No match
712      rhubarb      rhubarb
713  No match  No match
714      barbell      barbell
715  No match  No match
716      abc\nbarton      abc\nbarton
717  No match  No match
718    
719  /(?>^abc)/m  /(?>^abc)/Im
720  Capturing subpattern count = 0  Capturing subpattern count = 0
721  Options: multiline  Options: multiline
722  First char at start or follows \n  First char at start or follows newline
723  Need char = 'c'  Need char = 'c'
724      abc      abc
725   0: abc   0: abc
# Line 747  Need char = 'c' Line 727  Need char = 'c'
727   0: abc   0: abc
728      *** Failers      *** Failers
729  No match  No match
730      defabc      defabc
731  No match  No match
732    
733  /(?<=ab(c+)d)ef/  /(?<=ab(c+)d)ef/
# Line 760  Failed: lookbehind assertion is not fixe Line 740  Failed: lookbehind assertion is not fixe
740  Failed: lookbehind assertion is not fixed length at offset 13  Failed: lookbehind assertion is not fixed length at offset 13
741    
742  /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'  
743    
744  /(?<=bullock|donkey)-cart/  /(?<=bullock|donkey)-cart/I
745  Capturing subpattern count = 0  Capturing subpattern count = 0
746  No options  No options
747  First char = '-'  First char = '-'
748  Need char = 't'  Need char = 't'
749    Max lookbehind = 7
750      the bullock-cart      the bullock-cart
751   0: -cart   0: -cart
752      a donkey-cart race      a donkey-cart race
# Line 778  Need char = 't' Line 755  Need char = 't'
755  No match  No match
756      cart      cart
757  No match  No match
758      horse-and-cart      horse-and-cart
759  No match  No match
760    
761  /(?<=ab(?i)x|y|z)/  /(?<=ab(?i)x|y|z)/I
762  Capturing subpattern count = 0  Capturing subpattern count = 0
763  No options  No options
 Case state changes  
764  No first char  No first char
765  No need char  No need char
766    Max lookbehind = 3
767    
768  /(?>.*)(?<=(abcd)|(xyz))/  /(?>.*)(?<=(abcd)|(xyz))/I
769  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
770  No options  No options
771  First char at start or follows \n  First char at start or follows newline
772  No need char  No need char
773    Max lookbehind = 4
774      alphabetabcd      alphabetabcd
775   0: alphabetabcd   0: alphabetabcd
776   1: abcd   1: abcd
# Line 802  No need char Line 779  No need char
779   1: <unset>   1: <unset>
780   2: xyz   2: xyz
781    
782  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/  /(?<=ab(?i)x(?-i)y|(?i)z|b)ZZ/I
783  Capturing subpattern count = 0  Capturing subpattern count = 0
784  No options  No options
 Case state changes  
785  First char = 'Z'  First char = 'Z'
786  Need char = 'Z'  Need char = 'Z'
787    Max lookbehind = 4
788      abxyZZ      abxyZZ
789   0: ZZ   0: ZZ
790      abXyZZ      abXyZZ
# Line 818  Need char = 'Z' Line 795  Need char = 'Z'
795   0: ZZ   0: ZZ
796      bZZ      bZZ
797   0: ZZ   0: ZZ
798      BZZ      BZZ
799   0: ZZ   0: ZZ
800      *** Failers      *** Failers
801  No match  No match
802      ZZ      ZZ
803  No match  No match
804      abXYZZ      abXYZZ
805  No match  No match
806      zzz      zzz
807  No match  No match
808      bzz      bzz
809  No match  No match
810    
811  /(?<!(foo)a)bar/  /(?<!(foo)a)bar/I
812  Capturing subpattern count = 1  Capturing subpattern count = 1
813  No options  No options
814  First char = 'b'  First char = 'b'
815  Need char = 'r'  Need char = 'r'
816    Max lookbehind = 4
817      bar      bar
818   0: bar   0: bar
819      foobbar      foobbar
820   0: bar   0: bar
821      *** Failers      *** Failers
822  No match  No match
823      fooabar      fooabar
824  No match  No match
825    
826  /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
827  Capturing subpattern count = 0  Capturing subpattern count = 0
828  No options  No options
829  First char = 'T'  First char = 'T'
830  Need char = 't'  Need char = 't'
831    
832  /^(a)?(?(1)a|b)+$/  /^(a)?(?(1)a|b)+$/I
833  Capturing subpattern count = 1  Capturing subpattern count = 1
834  Options: anchored  Options: anchored
835  No first char  No first char
836  No need char  No need char
837      *** Failers      *** Failers
838  No match  No match
839      a      a
840  No match  No match
841    
842  /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
843  Capturing subpattern count = 0  Capturing subpattern count = 0
844  No options  No options
845  First char = 'T'  First char = 'T'
846  Need char = 'g'  Need char = 'g'
847    
848  /^(a\1?){4}$/  /^(a\1?){4}$/I
849  Capturing subpattern count = 1  Capturing subpattern count = 1
850  Max back reference = 1  Max back reference = 1
851  Options: anchored  Options: anchored
852  No first char  No first char
853  No need char  No need char
854        aaaa
855    No match
856      aaaaaa      aaaaaa
857   0: aaaaaa  No match
  1: aa  
858    
859  /These are syntax tests from Perl 5.005/  /Perl does not fail these two for the final subjects. Neither did PCRE until/
860    /release 8.01. The problem is in backtracking into a subpattern that contains/
861    No match
862    /a recursive reference to itself. PCRE has now made these into atomic patterns./
863    No match
864    
865    /^(xa|=?\1a){2}$/
866        xa=xaa
867     0: xa=xaa
868     1: =xaa
869        ** Failers
870    No match
871        xa=xaaa
872    No match
873    
874    /^(xa|=?\1a)+$/
875        xa=xaa
876     0: xa=xaa
877     1: =xaa
878        ** Failers
879    No match
880        xa=xaaa
881    No match
882    
883    /These are syntax tests from Perl 5.005/I
884  Capturing subpattern count = 0  Capturing subpattern count = 0
885  No options  No options
886  First char = 'T'  First char = 'T'
# Line 919  Failed: reference to non-existent subpat Line 922  Failed: reference to non-existent subpat
922  /(a)|\2/  /(a)|\2/
923  Failed: reference to non-existent subpattern at offset 6  Failed: reference to non-existent subpattern at offset 6
924    
925  /a[b-a]/i  /a[b-a]/Ii
926  Failed: range out of order in character class at offset 4  Failed: range out of order in character class at offset 4
927    
928  /a[]b/i  /a[]b/Ii
929  Failed: missing terminating ] for character class at offset 4  Failed: missing terminating ] for character class at offset 4
930    
931  /a[/i  /a[/Ii
932  Failed: missing terminating ] for character class at offset 2  Failed: missing terminating ] for character class at offset 2
933    
934  /*a/i  /*a/Ii
935  Failed: nothing to repeat at offset 0  Failed: nothing to repeat at offset 0
936    
937  /(*)b/i  /(*)b/Ii
938  Failed: nothing to repeat at offset 1  Failed: nothing to repeat at offset 1
939    
940  /abc)/i  /abc)/Ii
941  Failed: unmatched parentheses at offset 3  Failed: unmatched parentheses at offset 3
942    
943  /(abc/i  /(abc/Ii
944  Failed: missing ) at offset 4  Failed: missing ) at offset 4
945    
946  /a**/i  /a**/Ii
947  Failed: nothing to repeat at offset 2  Failed: nothing to repeat at offset 2
948    
949  /)(/i  /)(/Ii
950  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
951    
952  /:(?:/  /:(?:/
# Line 953  Failed: missing ) at offset 4 Line 956  Failed: missing ) at offset 4
956  Failed: unrecognized character after (?< at offset 3  Failed: unrecognized character after (?< at offset 3
957    
958  /a(?{)b/  /a(?{)b/
959  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
960    
961  /a(?{{})b/  /a(?{{})b/
962  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
963    
964  /a(?{}})b/  /a(?{}})b/
965  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
966    
967  /a(?{"{"})b/  /a(?{"{"})b/
968  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
969    
970  /a(?{"{"}})b/  /a(?{"{"}})b/
971  Failed: unrecognized character after (? at offset 3  Failed: unrecognized character after (? or (?- at offset 3
972    
973  /(?(1?)a|b)/  /(?(1?)a|b)/
974  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  
975    
976  /[a[:xyz:/  /[a[:xyz:/
977  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 985  Failed: numbers out of order in {} quant
985  /abc/\  /abc/\
986  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
987    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
988  /abc/\i  /abc/\i
989  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
990    
991  /(a)bc(d)/  /(a)bc(d)/I
992  Capturing subpattern count = 2  Capturing subpattern count = 2
993  No options  No options
994  First char = 'a'  First char = 'a'
# Line 1010  Need char = 'd' Line 1007  Need char = 'd'
1007   1: a   1: a
1008   2: d   2: d
1009  copy substring 5 failed -7  copy substring 5 failed -7
1010    
1011  /(.{20})/  /(.{20})/I
1012  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1013  No options  No options
1014  No first char  No first char
1015  No need char  No need char
# Line 1023  No need char Line 1019  No need char
1019      abcdefghijklmnopqrstuvwxyz\C1      abcdefghijklmnopqrstuvwxyz\C1
1020   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1021   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1022  copy substring 1 failed -6   1C abcdefghijklmnopqrst (20)
1023      abcdefghijklmnopqrstuvwxyz\G1      abcdefghijklmnopqrstuvwxyz\G1
1024   0: abcdefghijklmnopqrst   0: abcdefghijklmnopqrst
1025   1: abcdefghijklmnopqrst   1: abcdefghijklmnopqrst
1026   1G abcdefghijklmnopqrst (20)   1G abcdefghijklmnopqrst (20)
1027    
1028  /(.{15})/  /(.{15})/I
1029  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1030  No options  No options
1031  No first char  No first char
1032  No need char  No need char
# Line 1044  No need char Line 1039  No need char
1039   1C abcdefghijklmno (15)   1C abcdefghijklmno (15)
1040   1G abcdefghijklmno (15)   1G abcdefghijklmno (15)
1041    
1042  /(.{16})/  /(.{16})/I
1043  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1044  No options  No options
1045  No first char  No first char
1046  No need char  No need char
# Line 1056  No need char Line 1050  No need char
1050      abcdefghijklmnopqrstuvwxyz\C1\G1\L      abcdefghijklmnopqrstuvwxyz\C1\G1\L
1051   0: abcdefghijklmnop   0: abcdefghijklmnop
1052   1: abcdefghijklmnop   1: abcdefghijklmnop
1053  copy substring 1 failed -6   1C abcdefghijklmnop (16)
1054   1G abcdefghijklmnop (16)   1G abcdefghijklmnop (16)
1055   0L abcdefghijklmnop   0L abcdefghijklmnop
1056   1L abcdefghijklmnop   1L abcdefghijklmnop
1057    
1058  /^(a|(bc))de(f)/  /^(a|(bc))de(f)/I
1059  Capturing subpattern count = 3  Capturing subpattern count = 3
1060  Options: anchored  Options: anchored
1061  No first char  No first char
1062  No need char  No need char
1063      adef\G1\G2\G3\G4\L      adef\G1\G2\G3\G4\L
1064   0: adef   0: adef
1065   1: a   1: a
1066   2: <unset>   2: <unset>
# Line 1079  get substring 4 failed -7 Line 1073  get substring 4 failed -7
1073   1L a   1L a
1074   2L   2L
1075   3L f   3L f
1076      bcdef\G1\G2\G3\G4\L      bcdef\G1\G2\G3\G4\L
1077   0: bcdef   0: bcdef
1078   1: bc   1: bc
1079   2: bc   2: bc
# Line 1092  get substring 4 failed -7 Line 1086  get substring 4 failed -7
1086   1L bc   1L bc
1087   2L bc   2L bc
1088   3L f   3L f
1089      adefghijk\C0      adefghijk\C0
1090   0: adef   0: adef
1091   1: a   1: a
1092   2: <unset>   2: <unset>
1093   3: f   3: f
1094   0C adef (4)   0C adef (4)
1095    
1096  /^abc\00def/  /^abc\00def/I
1097  Capturing subpattern count = 0  Capturing subpattern count = 0
1098  Options: anchored  Options: anchored
1099  No first char  No first char
1100  No need char  No need char
1101      abc\00def\L\C0      abc\00def\L\C0
1102   0: abc\x00def   0: abc\x00def
1103   0C abc (7)   0C abc\x00def (7)
1104   0L abc   0L abc
1105    
1106  /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]+
1107  )((?:[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]+
1108  )?)?)?)?)?)?)?)?)?otherword/M  )?)?)?)?)?)?)?)?)?otherword/I
 Memory allocation (code space): 432  
1109  Capturing subpattern count = 8  Capturing subpattern count = 8
1110  Partial matching not supported  Contains explicit CR or LF match
1111  No options  No options
1112  First char = 'w'  First char = 'w'
1113  Need char = 'd'  Need char = 'd'
1114    
1115  /.*X/D  /.*X/IDZ
1116  ------------------------------------------------------------------  ------------------------------------------------------------------
1117    0   7 Bra 0          Bra
1118    3     Any*          Any*
1119    5     X          X
1120    7   7 Ket          Ket
1121   10     End          End
1122  ------------------------------------------------------------------  ------------------------------------------------------------------
1123  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1124  No options  No options
1125  First char at start or follows \n  First char at start or follows newline
1126  Need char = 'X'  Need char = 'X'
1127    
1128  /.*X/Ds  /.*X/IDZs
1129  ------------------------------------------------------------------  ------------------------------------------------------------------
1130    0   7 Bra 0          Bra
1131    3     Any*          AllAny*
1132    5     X          X
1133    7   7 Ket          Ket
1134   10     End          End
1135  ------------------------------------------------------------------  ------------------------------------------------------------------
1136  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1137  Options: anchored dotall  Options: anchored dotall
1138  No first char  No first char
1139  Need char = 'X'  Need char = 'X'
1140    
1141  /(.*X|^B)/D  /(.*X|^B)/IDZ
1142  ------------------------------------------------------------------  ------------------------------------------------------------------
1143    0  19 Bra 0          Bra
1144    3   7 Bra 1          CBra 1
1145    6     Any*          Any*
1146    8     X          X
1147   10   6 Alt          Alt
1148   13     ^          ^
1149   14     B          B
1150   16  13 Ket          Ket
1151   19  19 Ket          Ket
1152   22     End          End
1153  ------------------------------------------------------------------  ------------------------------------------------------------------
1154  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1155  No options  No options
1156  First char at start or follows \n  First char at start or follows newline
1157  No need char  No need char
1158    
1159  /(.*X|^B)/Ds  /(.*X|^B)/IDZs
1160  ------------------------------------------------------------------  ------------------------------------------------------------------
1161    0  19 Bra 0          Bra
1162    3   7 Bra 1          CBra 1
1163    6     Any*          AllAny*
1164    8     X          X
1165   10   6 Alt          Alt
1166   13     ^          ^
1167   14     B          B
1168   16  13 Ket          Ket
1169   19  19 Ket          Ket
1170   22     End          End
1171  ------------------------------------------------------------------  ------------------------------------------------------------------
1172  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1173  Options: anchored dotall  Options: anchored dotall
1174  No first char  No first char
1175  No need char  No need char
1176    
1177  /(?s)(.*X|^B)/D  /(?s)(.*X|^B)/IDZ
1178  ------------------------------------------------------------------  ------------------------------------------------------------------
1179    0  19 Bra 0          Bra
1180    3   7 Bra 1          CBra 1
1181    6     Any*          AllAny*
1182    8     X          X
1183   10   6 Alt          Alt
1184   13     ^          ^
1185   14     B          B
1186   16  13 Ket          Ket
1187   19  19 Ket          Ket
1188   22     End          End
1189  ------------------------------------------------------------------  ------------------------------------------------------------------
1190  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1191  Options: anchored dotall  Options: anchored dotall
1192  No first char  No first char
1193  No need char  No need char
1194    
1195  /(?s:.*X|^B)/D  /(?s:.*X|^B)/IDZ
1196  ------------------------------------------------------------------  ------------------------------------------------------------------
1197    0  25 Bra 0          Bra
1198    3   9 Bra 0          Bra
1199    6  04 Opt          AllAny*
1200    8     Any*          X
1201   10     X          Alt
1202   12   8 Alt          ^
1203   15  04 Opt          B
1204   17     ^          Ket
1205   18     B          Ket
1206   20  17 Ket          End
  23  00 Opt  
  25  25 Ket  
  28     End  
1207  ------------------------------------------------------------------  ------------------------------------------------------------------
1208  Capturing subpattern count = 0  Capturing subpattern count = 0
1209  Partial matching not supported  Options: anchored
1210  No options  No first char
 First char at start or follows \n  
1211  No need char  No need char
1212    
1213  /\Biss\B/+  /\Biss\B/I+
1214  Capturing subpattern count = 0  Capturing subpattern count = 0
1215  No options  No options
1216  First char = 'i'  First char = 'i'
1217  Need char = 's'  Need char = 's'
1218    Max lookbehind = 1
1219      Mississippi      Mississippi
1220   0: iss   0: iss
1221   0+ issippi   0+ issippi
1222    
1223  /\Biss\B/+P  /iss/IG+
     Mississippi  
  0: iss  
  0+ issippi  
   
 /iss/G+  
1224  Capturing subpattern count = 0  Capturing subpattern count = 0
1225  No options  No options
1226  First char = 'i'  First char = 'i'
# Line 1251  Need char = 's' Line 1231  Need char = 's'
1231   0: iss   0: iss
1232   0+ ippi   0+ ippi
1233    
1234  /\Biss\B/G+  /\Biss\B/IG+
1235  Capturing subpattern count = 0  Capturing subpattern count = 0
1236  No options  No options
1237  First char = 'i'  First char = 'i'
1238  Need char = 's'  Need char = 's'
1239    Max lookbehind = 1
1240      Mississippi      Mississippi
1241   0: iss   0: iss
1242   0+ issippi   0+ issippi
1243    
1244  /\Biss\B/g+  /\Biss\B/Ig+
1245  Capturing subpattern count = 0  Capturing subpattern count = 0
1246  No options  No options
1247  First char = 'i'  First char = 'i'
1248  Need char = 's'  Need char = 's'
1249    Max lookbehind = 1
1250      Mississippi      Mississippi
1251   0: iss   0: iss
1252   0+ issippi   0+ issippi
# Line 1275  No match Line 1257  No match
1257      Mississippi\A      Mississippi\A
1258  No match  No match
1259    
1260  /(?<=[Ms])iss/g+  /(?<=[Ms])iss/Ig+
1261  Capturing subpattern count = 0  Capturing subpattern count = 0
1262  No options  No options
1263  First char = 'i'  First char = 'i'
1264  Need char = 's'  Need char = 's'
1265    Max lookbehind = 1
1266      Mississippi      Mississippi
1267   0: iss   0: iss
1268   0+ issippi   0+ issippi
1269   0: iss   0: iss
1270   0+ ippi   0+ ippi
1271    
1272  /(?<=[Ms])iss/G+  /(?<=[Ms])iss/IG+
1273  Capturing subpattern count = 0  Capturing subpattern count = 0
1274  No options  No options
1275  First char = 'i'  First char = 'i'
1276  Need char = 's'  Need char = 's'
1277    Max lookbehind = 1
1278      Mississippi      Mississippi
1279   0: iss   0: iss
1280   0+ issippi   0+ issippi
1281    
1282  /^iss/g+  /^iss/Ig+
1283  Capturing subpattern count = 0  Capturing subpattern count = 0
1284  Options: anchored  Options: anchored
1285  No first char  No first char
# Line 1303  No need char Line 1287  No need char
1287      ississippi      ississippi
1288   0: iss   0: iss
1289   0+ issippi   0+ issippi
1290    
1291  /.*iss/g+  /.*iss/Ig+
1292  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1293  No options  No options
1294  First char at start or follows \n  First char at start or follows newline
1295  Need char = 's'  Need char = 's'
1296      abciss\nxyzisspqr      abciss\nxyzisspqr
1297   0: abciss   0: abciss
1298   0+ \x0axyzisspqr   0+ \x0axyzisspqr
1299   0: xyziss   0: xyziss
1300   0+ pqr   0+ pqr
1301    
1302  /.i./+g  /.i./I+g
1303  Capturing subpattern count = 0  Capturing subpattern count = 0
1304  No options  No options
1305  No first char  No first char
# Line 1342  Need char = 'i' Line 1325  Need char = 'i'
1325   0+ river   0+ river
1326   0: riv   0: riv
1327   0+ er   0+ er
1328      Missouri river\A      Missouri river\A
1329   0: Mis   0: Mis
1330   0+ souri river   0+ souri river
1331    
1332  /^.is/+g  /^.is/I+g
1333  Capturing subpattern count = 0  Capturing subpattern count = 0
1334  Options: anchored  Options: anchored
1335  No first char  No first char
# Line 1355  No need char Line 1338  No need char
1338   0: Mis   0: Mis
1339   0+ sissippi   0+ sissippi
1340    
1341  /^ab\n/g+  /^ab\n/Ig+
1342  Capturing subpattern count = 0  Capturing subpattern count = 0
1343    Contains explicit CR or LF match
1344  Options: anchored  Options: anchored
1345  No first char  No first char
1346  No need char  No need char
# Line 1364  No need char Line 1348  No need char
1348   0: ab\x0a   0: ab\x0a
1349   0+ ab\x0acd   0+ ab\x0acd
1350    
1351  /^ab\n/mg+  /^ab\n/Img+
1352  Capturing subpattern count = 0  Capturing subpattern count = 0
1353    Contains explicit CR or LF match
1354  Options: multiline  Options: multiline
1355  First char at start or follows \n  First char at start or follows newline
1356  Need char = 10  Need char = \x0a
1357      ab\nab\ncd      ab\nab\ncd
1358   0: ab\x0a   0: ab\x0a
1359   0+ ab\x0acd   0+ ab\x0acd
1360   0: ab\x0a   0: ab\x0a
1361   0+ cd   0+ cd
1362    
1363  /abc/  /abc/I
1364  Capturing subpattern count = 0  Capturing subpattern count = 0
1365  No options  No options
1366  First char = 'a'  First char = 'a'
1367  Need char = 'c'  Need char = 'c'
1368    
1369  /abc|bac/  /abc|bac/I
1370  Capturing subpattern count = 0  Capturing subpattern count = 0
1371  No options  No options
1372  No first char  No first char
1373  Need char = 'c'  Need char = 'c'
1374    
1375  /(abc|bac)/  /(abc|bac)/I
1376  Capturing subpattern count = 1  Capturing subpattern count = 1
1377  No options  No options
1378  No first char  No first char
1379  Need char = 'c'  Need char = 'c'
1380    
1381  /(abc|(c|dc))/  /(abc|(c|dc))/I
1382  Capturing subpattern count = 2  Capturing subpattern count = 2
1383  No options  No options
1384  No first char  No first char
1385  Need char = 'c'  Need char = 'c'
1386    
1387  /(abc|(d|de)c)/  /(abc|(d|de)c)/I
1388  Capturing subpattern count = 2  Capturing subpattern count = 2
1389  No options  No options
1390  No first char  No first char
1391  Need char = 'c'  Need char = 'c'
1392    
1393  /a*/  /a*/I
1394  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1395  No options  No options
1396  No first char  No first char
1397  No need char  No need char
1398    
1399  /a+/  /a+/I
1400  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1401  No options  No options
1402  First char = 'a'  First char = 'a'
1403  No need char  No need char
1404    
1405  /(baa|a+)/  /(baa|a+)/I
1406  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1407  No options  No options
1408  No first char  No first char
1409  Need char = 'a'  Need char = 'a'
1410    
1411  /a{0,3}/  /a{0,3}/I
1412  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1413  No options  No options
1414  No first char  No first char
1415  No need char  No need char
1416    
1417  /baa{3,}/  /baa{3,}/I
1418  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1419  No options  No options
1420  First char = 'b'  First char = 'b'
1421  Need char = 'a'  Need char = 'a'
1422    
1423  /"([^\\"]+|\\.)*"/  /"([^\\"]+|\\.)*"/I
1424  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1425  No options  No options
1426  First char = '"'  First char = '"'
1427  Need char = '"'  Need char = '"'
1428    
1429  /(abc|ab[cd])/  /(abc|ab[cd])/I
1430  Capturing subpattern count = 1  Capturing subpattern count = 1
1431  No options  No options
1432  First char = 'a'  First char = 'a'
1433  No need char  No need char
1434    
1435  /(a|.)/  /(a|.)/I
1436  Capturing subpattern count = 1  Capturing subpattern count = 1
1437  No options  No options
1438  No first char  No first char
1439  No need char  No need char
1440    
1441  /a|ba|\w/  /a|ba|\w/I
1442  Capturing subpattern count = 0  Capturing subpattern count = 0
1443  No options  No options
1444  No first char  No first char
1445  No need char  No need char
1446    
1447  /abc(?=pqr)/  /abc(?=pqr)/I
1448  Capturing subpattern count = 0  Capturing subpattern count = 0
1449  No options  No options
1450  First char = 'a'  First char = 'a'
1451  Need char = 'r'  Need char = 'r'
1452    
1453  /...(?<=abc)/  /...(?<=abc)/I
1454  Capturing subpattern count = 0  Capturing subpattern count = 0
1455  No options  No options
1456  No first char  No first char
1457  No need char  No need char
1458    Max lookbehind = 3
1459    
1460  /abc(?!pqr)/  /abc(?!pqr)/I
1461  Capturing subpattern count = 0  Capturing subpattern count = 0
1462  No options  No options
1463  First char = 'a'  First char = 'a'
1464  Need char = 'c'  Need char = 'c'
1465    
1466  /ab./  /ab./I
1467  Capturing subpattern count = 0  Capturing subpattern count = 0
1468  No options  No options
1469  First char = 'a'  First char = 'a'
1470  Need char = 'b'  Need char = 'b'
1471    
1472  /ab[xyz]/  /ab[xyz]/I
1473  Capturing subpattern count = 0  Capturing subpattern count = 0
1474  No options  No options
1475  First char = 'a'  First char = 'a'
1476  Need char = 'b'  Need char = 'b'
1477    
1478  /abc*/  /abc*/I
1479  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1480  No options  No options
1481  First char = 'a'  First char = 'a'
1482  Need char = 'b'  Need char = 'b'
1483    
1484  /ab.c*/  /ab.c*/I
1485  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1486  No options  No options
1487  First char = 'a'  First char = 'a'
1488  Need char = 'b'  Need char = 'b'
1489    
1490  /a.c*/  /a.c*/I
1491  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1492  No options  No options
1493  First char = 'a'  First char = 'a'
1494  No need char  No need char
1495    
1496  /.c*/  /.c*/I
1497  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1498  No options  No options
1499  No first char  No first char
1500  No need char  No need char
1501    
1502  /ac*/  /ac*/I
1503  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1504  No options  No options
1505  First char = 'a'  First char = 'a'
1506  No need char  No need char
1507    
1508  /(a.c*|b.c*)/  /(a.c*|b.c*)/I
1509  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1510  No options  No options
1511  No first char  No first char
1512  No need char  No need char
1513    
1514  /a.c*|aba/  /a.c*|aba/I
1515  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1516  No options  No options
1517  First char = 'a'  First char = 'a'
1518  No need char  No need char
1519    
1520  /.+a/  /.+a/I
1521  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1522  No options  No options
1523  No first char  No first char
1524  Need char = 'a'  Need char = 'a'
1525    
1526  /(?=abcda)a.*/  /(?=abcda)a.*/I
1527  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1528  No options  No options
1529  First char = 'a'  First char = 'a'
1530  Need char = 'a'  Need char = 'a'
1531    
1532  /(?=a)a.*/  /(?=a)a.*/I
1533  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1534  No options  No options
1535  First char = 'a'  First char = 'a'
1536  No need char  No need char
1537    
1538  /a(b)*/  /a(b)*/I
1539  Capturing subpattern count = 1  Capturing subpattern count = 1
1540  No options  No options
1541  First char = 'a'  First char = 'a'
1542  No need char  No need char
1543    
1544  /a\d*/  /a\d*/I
1545  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1546  No options  No options
1547  First char = 'a'  First char = 'a'
1548  No need char  No need char
1549    
1550  /ab\d*/  /ab\d*/I
1551  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1552  No options  No options
1553  First char = 'a'  First char = 'a'
1554  Need char = 'b'  Need char = 'b'
1555    
1556  /a(\d)*/  /a(\d)*/I
1557  Capturing subpattern count = 1  Capturing subpattern count = 1
1558  No options  No options
1559  First char = 'a'  First char = 'a'
1560  No need char  No need char
1561    
1562  /abcde{0,0}/  /abcde{0,0}/I
1563  Capturing subpattern count = 0  Capturing subpattern count = 0
1564  No options  No options
1565  First char = 'a'  First char = 'a'
1566  Need char = 'd'  Need char = 'd'
1567    
1568  /ab\d+/  /ab\d+/I
1569  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1570  No options  No options
1571  First char = 'a'  First char = 'a'
1572  Need char = 'b'  Need char = 'b'
1573    
1574  /a(?(1)b)/  /a(?(1)b)(.)/I
1575  Capturing subpattern count = 0  Capturing subpattern count = 1
1576  No options  No options
1577  First char = 'a'  First char = 'a'
1578  No need char  No need char
1579    
1580  /a(?(1)bag|big)/  /a(?(1)bag|big)(.)/I
1581  Capturing subpattern count = 0  Capturing subpattern count = 1
1582  No options  No options
1583  First char = 'a'  First char = 'a'
1584  Need char = 'g'  Need char = 'g'
1585    
1586  /a(?(1)bag|big)*/  /a(?(1)bag|big)*(.)/I
1587  Capturing subpattern count = 0  Capturing subpattern count = 1
1588  No options  No options
1589  First char = 'a'  First char = 'a'
1590  No need char  No need char
1591    
1592  /a(?(1)bag|big)+/  /a(?(1)bag|big)+(.)/I
1593  Capturing subpattern count = 0  Capturing subpattern count = 1
1594  No options  No options
1595  First char = 'a'  First char = 'a'
1596  Need char = 'g'  Need char = 'g'
1597    
1598  /a(?(1)b..|b..)/  /a(?(1)b..|b..)(.)/I
1599  Capturing subpattern count = 0  Capturing subpattern count = 1
1600  No options  No options
1601  First char = 'a'  First char = 'a'
1602  Need char = 'b'  Need char = 'b'
1603    
1604  /ab\d{0}e/  /ab\d{0}e/I
1605  Capturing subpattern count = 0  Capturing subpattern count = 0
1606  No options  No options
1607  First char = 'a'  First char = 'a'
1608  Need char = 'e'  Need char = 'e'
1609    
1610  /a?b?/  /a?b?/I
1611  Capturing subpattern count = 0  Capturing subpattern count = 0
1612  No options  No options
1613  No first char  No first char
# Line 1655  No need char Line 1622  No need char
1622   0:   0:
1623      *** Failers      *** Failers
1624   0:   0:
1625      \N      \N
1626  No match  No match
1627    
1628  /|-/  /|-/I
1629  Capturing subpattern count = 0  Capturing subpattern count = 0
1630  No options  No options
1631  No first char  No first char
# Line 1671  No need char Line 1638  No need char
1638   0: -   0: -
1639      *** Failers      *** Failers
1640   0:   0:
1641      \Nabc      \Nabc
1642  No match  No match
1643    
1644  /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  
1645  Capturing subpattern count = 0  Capturing subpattern count = 0
1646  Options: anchored  Options: anchored
1647  No first char  No first char
1648  Need char = 'd'  Need char = 'd'
1649  Study returned NULL  Subject length lower bound = 4
1650    No set of starting bytes
1651    
1652  /\(             # ( at start  /\(             # ( at start
1653    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1715  Study returned NULL Line 1656  Study returned NULL
1656    (?R)          # Recurse - i.e. nested bracketed string    (?R)          # Recurse - i.e. nested bracketed string
1657    )*            # Zero or more contents    )*            # Zero or more contents
1658    \)            # Closing )    \)            # Closing )
1659    /x    /Ix
1660  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1661  Options: extended  Options: extended
1662  First char = '('  First char = '('
1663  Need char = ')'  Need char = ')'
# Line 1727  Need char = ')' Line 1667  Need char = ')'
1667   0: (abcd)   0: (abcd)
1668      xyz(abcd)      xyz(abcd)
1669   0: (abcd)   0: (abcd)
1670      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1671   0: (ab(xy)cd)   0: (ab(xy)cd)
1672      (ab(xycd)pqr      (ab(xycd)pqr
1673   0: (xycd)   0: (xycd)
1674      () abc ()      () abc ()
1675   0: ()   0: ()
1676      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1677   0: (abcde(fsh)xyz(foo(bar))lmno)   0: (abcde(fsh)xyz(foo(bar))lmno)
1678      *** Failers      *** Failers
1679  No match  No match
1680      abcd      abcd
1681  No match  No match
1682      abcd)      abcd)
1683  No match  No match
1684      (abcd      (abcd
1685  No match  No match
1686    
1687  /\(  ( (?>[^()]+) | (?R) )* \) /xg  /\(  ( (?>[^()]+) | (?R) )* \) /Ixg
1688  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1689  Options: extended  Options: extended
1690  First char = '('  First char = '('
1691  Need char = ')'  Need char = ')'
1692      (ab(xy)cd)pqr      (ab(xy)cd)pqr
1693   0: (ab(xy)cd)   0: (ab(xy)cd)
1694   1: cd   1: cd
1695      1(abcd)(x(y)z)pqr      1(abcd)(x(y)z)pqr
# Line 1759  Need char = ')' Line 1698  Need char = ')'
1698   0: (x(y)z)   0: (x(y)z)
1699   1: z   1: z
1700    
1701  /\(  (?: (?>[^()]+) | (?R) ) \) /x  /\(  (?: (?>[^()]+) | (?R) ) \) /Ix
1702  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1703  Options: extended  Options: extended
1704  First char = '('  First char = '('
1705  Need char = ')'  Need char = ')'
# Line 1769  Need char = ')' Line 1707  Need char = ')'
1707   0: (abcd)   0: (abcd)
1708      (ab(xy)cd)      (ab(xy)cd)
1709   0: (xy)   0: (xy)
1710      (a(b(c)d)e)      (a(b(c)d)e)
1711   0: (c)   0: (c)
1712      ((ab))      ((ab))
1713   0: ((ab))   0: ((ab))
1714      *** Failers      *** Failers
1715  No match  No match
1716      ()      ()
1717  No match  No match
1718    
1719  /\(  (?: (?>[^()]+) | (?R) )? \) /x  /\(  (?: (?>[^()]+) | (?R) )? \) /Ix
1720  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
1721  Options: extended  Options: extended
1722  First char = '('  First char = '('
1723  Need char = ')'  Need char = ')'
# Line 1789  Need char = ')' Line 1726  Need char = ')'
1726      12(abcde(fsh)xyz(foo(bar))lmno)89      12(abcde(fsh)xyz(foo(bar))lmno)89
1727   0: (fsh)   0: (fsh)
1728    
1729  /\(  ( (?>[^()]+) | (?R) )* \) /x  /\(  ( (?>[^()]+) | (?R) )* \) /Ix
1730  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
1731  Options: extended  Options: extended
1732  First char = '('  First char = '('
1733  Need char = ')'  Need char = ')'
# Line 1799  Need char = ')' Line 1735  Need char = ')'
1735   0: (ab(xy)cd)   0: (ab(xy)cd)
1736   1: cd   1: cd
1737    
1738  /\( ( ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( ( (?>[^()]+) | (?R) )* ) \) /Ix
1739  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
1740  Options: extended  Options: extended
1741  First char = '('  First char = '('
1742  Need char = ')'  Need char = ')'
# Line 1810  Need char = ')' Line 1745  Need char = ')'
1745   1: ab(xy)cd   1: ab(xy)cd
1746   2: cd   2: 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 1827  Need char = ')' Line 1761  Need char = ')'
1761   2: ab(xy)cd   2: ab(xy)cd
1762   3: cd   3: cd
1763    
1764  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /x  /\( ( (123)? ( (?>[^()]+) | (?R) )* ) \) /Ix
1765  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1766  Options: extended  Options: extended
1767  First char = '('  First char = '('
1768  Need char = ')'  Need char = ')'
# Line 1844  Need char = ')' Line 1777  Need char = ')'
1777   2: 123   2: 123
1778   3: cd   3: cd
1779    
1780  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /x  /\( (((((((((( ( (?>[^()]+) | (?R) )* )))))))))) \) /Ix
1781  Capturing subpattern count = 11  Capturing subpattern count = 11
 Partial matching not supported  
1782  Options: extended  Options: extended
1783  First char = '('  First char = '('
1784  Need char = ')'  Need char = ')'
# Line 1864  Need char = ')' Line 1796  Need char = ')'
1796  10: ab(xy)cd  10: ab(xy)cd
1797  11: cd  11: cd
1798    
1799  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /x  /\( ( ( (?>[^()<>]+) | ((?>[^()]+)) | (?R) )* ) \) /Ix
1800  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1801  Options: extended  Options: extended
1802  First char = '('  First char = '('
1803  Need char = ')'  Need char = ')'
# Line 1874  Need char = ')' Line 1805  Need char = ')'
1805   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1806   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1807   2: 123   2: 123
  3: <unset>  
1808    
1809  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /x  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1810  Capturing subpattern count = 3  Capturing subpattern count = 3
 Partial matching not supported  
1811  Options: extended  Options: extended
1812  First char = '('  First char = '('
1813  Need char = ')'  Need char = ')'
# Line 1893  Need char = ')' Line 1822  Need char = ')'
1822   2: ij   2: ij
1823   3: (cd(ef)gh)   3: (cd(ef)gh)
1824    
1825  /^[[:alnum:]]/D  /^[[:alnum:]]/DZ
1826    ------------------------------------------------------------------
1827            Bra
1828            ^
1829            [0-9A-Za-z]
1830            Ket
1831            End
1832    ------------------------------------------------------------------
1833    Capturing subpattern count = 0
1834    Options: anchored
1835    No first char
1836    No need char
1837    
1838    /^[[:^alnum:]]/DZ
1839  ------------------------------------------------------------------  ------------------------------------------------------------------
1840    0  37 Bra 0          Bra
1841    3     ^          ^
1842    4     [0-9A-Za-z]          [\x00-/:-@[-`{-\xff] (neg)
1843   37  37 Ket          Ket
1844   40     End          End
1845  ------------------------------------------------------------------  ------------------------------------------------------------------
1846  Capturing subpattern count = 0  Capturing subpattern count = 0
1847  Options: anchored  Options: anchored
1848  No first char  No first char
1849  No need char  No need char
1850    
1851  /^[[:^alnum:]]/D  /^[[:alpha:]]/DZ
1852  ------------------------------------------------------------------  ------------------------------------------------------------------
1853    0  37 Bra 0          Bra
1854    3     ^          ^
1855    4     [\x00-/:-@[-`{-\xff]          [A-Za-z]
1856   37  37 Ket          Ket
1857   40     End          End
1858  ------------------------------------------------------------------  ------------------------------------------------------------------
1859  Capturing subpattern count = 0  Capturing subpattern count = 0
1860  Options: anchored  Options: anchored
1861  No first char  No first char
1862  No need char  No need char
1863    
1864  /^[[:alpha:]]/D  /^[[:^alpha:]]/DZ
1865  ------------------------------------------------------------------  ------------------------------------------------------------------
1866    0  37 Bra 0          Bra
1867    3     ^          ^
1868    4     [A-Za-z]          [\x00-@[-`{-\xff] (neg)
1869   37  37 Ket          Ket
1870   40     End          End
1871  ------------------------------------------------------------------  ------------------------------------------------------------------
1872  Capturing subpattern count = 0  Capturing subpattern count = 0
1873  Options: anchored  Options: anchored
1874  No first char  No first char
1875  No need char  No need char
1876    
1877  /^[[:^alpha:]]/D  /[_[:alpha:]]/IS
1878    Capturing subpattern count = 0
1879    No options
1880    No first char
1881    No need char
1882    Subject length lower bound = 1
1883    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
1884      _ 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
1885    
1886    /^[[:ascii:]]/DZ
1887  ------------------------------------------------------------------  ------------------------------------------------------------------
1888    0  37 Bra 0          Bra
1889    3     ^          ^
1890    4     [\x00-@[-`{-\xff]          [\x00-\x7f]
1891   37  37 Ket          Ket
1892   40     End          End
1893  ------------------------------------------------------------------  ------------------------------------------------------------------
1894  Capturing subpattern count = 0  Capturing subpattern count = 0
1895  Options: anchored  Options: anchored
1896  No first char  No first char
1897  No need char  No need char
1898    
1899  /^[[:ascii:]]/D  /^[[:^ascii:]]/DZ
1900  ------------------------------------------------------------------  ------------------------------------------------------------------
1901    0  37 Bra 0          Bra
1902    3     ^          ^
1903    4     [\x00-\x7f]          [\x80-\xff] (neg)
1904   37  37 Ket          Ket
1905   40     End          End
1906  ------------------------------------------------------------------  ------------------------------------------------------------------
1907  Capturing subpattern count = 0  Capturing subpattern count = 0
1908  Options: anchored  Options: anchored
1909  No first char  No first char
1910  No need char  No need char
1911    
1912  /^[[:^ascii:]]/D  /^[[:blank:]]/DZ
1913  ------------------------------------------------------------------  ------------------------------------------------------------------
1914    0  37 Bra 0          Bra
1915    3     ^          ^
1916    4     [\x80-\xff]          [\x09 ]
1917   37  37 Ket          Ket
1918   40     End          End
1919  ------------------------------------------------------------------  ------------------------------------------------------------------
1920  Capturing subpattern count = 0  Capturing subpattern count = 0
1921  Options: anchored  Options: anchored
1922  No first char  No first char
1923  No need char  No need char
1924    
1925  /^[[:blank:]]/D  /^[[:^blank:]]/DZ
1926  ------------------------------------------------------------------  ------------------------------------------------------------------
1927    0  37 Bra 0          Bra
1928    3     ^          ^
1929    4     [\x09 ]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
1930   37  37 Ket          Ket
1931   40     End          End
1932  ------------------------------------------------------------------  ------------------------------------------------------------------
1933  Capturing subpattern count = 0  Capturing subpattern count = 0
1934  Options: anchored  Options: anchored
1935  No first char  No first char
1936  No need char  No need char
1937    
1938  /^[[:cntrl:]]/D  /[\n\x0b\x0c\x0d[:blank:]]/IS
1939    Capturing subpattern count = 0
1940    Contains explicit CR or LF match
1941    No options
1942    No first char
1943    No need char
1944    Subject length lower bound = 1
1945    Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
1946    
1947    /^[[:cntrl:]]/DZ
1948  ------------------------------------------------------------------  ------------------------------------------------------------------
1949    0  37 Bra 0          Bra
1950    3     ^          ^
1951    4     [\x00-\x1f\x7f]          [\x00-\x1f\x7f]
1952   37  37 Ket          Ket
1953   40     End          End
1954  ------------------------------------------------------------------  ------------------------------------------------------------------
1955  Capturing subpattern count = 0  Capturing subpattern count = 0
1956  Options: anchored  Options: anchored
1957  No first char  No first char
1958  No need char  No need char
1959    
1960  /^[[:digit:]]/D  /^[[:digit:]]/DZ
1961  ------------------------------------------------------------------  ------------------------------------------------------------------
1962    0  37 Bra 0          Bra
1963    3     ^          ^
1964    4     [0-9]          [0-9]
1965   37  37 Ket          Ket
1966   40     End          End
1967  ------------------------------------------------------------------  ------------------------------------------------------------------
1968  Capturing subpattern count = 0  Capturing subpattern count = 0
1969  Options: anchored  Options: anchored
1970  No first char  No first char
1971  No need char  No need char
1972    
1973  /^[[:graph:]]/D  /^[[:graph:]]/DZ
1974  ------------------------------------------------------------------  ------------------------------------------------------------------
1975    0  37 Bra 0          Bra
1976    3     ^          ^
1977    4     [!-~]          [!-~]
1978   37  37 Ket          Ket
1979   40     End          End
1980  ------------------------------------------------------------------  ------------------------------------------------------------------
1981  Capturing subpattern count = 0  Capturing subpattern count = 0
1982  Options: anchored  Options: anchored
1983  No first char  No first char
1984  No need char  No need char
1985    
1986  /^[[:lower:]]/D  /^[[:lower:]]/DZ
1987  ------------------------------------------------------------------  ------------------------------------------------------------------
1988    0  37 Bra 0          Bra
1989    3     ^          ^
1990    4     [a-z]          [a-z]
1991   37  37 Ket          Ket
1992   40     End          End
1993  ------------------------------------------------------------------  ------------------------------------------------------------------
1994  Capturing subpattern count = 0  Capturing subpattern count = 0
1995  Options: anchored  Options: anchored
1996  No first char  No first char
1997  No need char  No need char
1998    
1999  /^[[:print:]]/D  /^[[:print:]]/DZ
2000  ------------------------------------------------------------------  ------------------------------------------------------------------
2001    0  37 Bra 0          Bra
2002    3     ^          ^
2003    4     [ -~]          [ -~]
2004   37  37 Ket          Ket
2005   40     End          End
2006  ------------------------------------------------------------------  ------------------------------------------------------------------
2007  Capturing subpattern count = 0  Capturing subpattern count = 0
2008  Options: anchored  Options: anchored
2009  No first char  No first char
2010  No need char  No need char
2011    
2012  /^[[:punct:]]/D  /^[[:punct:]]/DZ
2013  ------------------------------------------------------------------  ------------------------------------------------------------------
2014    0  37 Bra 0          Bra
2015    3     ^          ^
2016    4     [!-/:-@[-`{-~]          [!-/:-@[-`{-~]
2017   37  37 Ket          Ket
2018   40     End          End
2019  ------------------------------------------------------------------  ------------------------------------------------------------------
2020  Capturing subpattern count = 0  Capturing subpattern count = 0
2021  Options: anchored  Options: anchored
2022  No first char  No first char
2023  No need char  No need char
2024    
2025  /^[[:space:]]/D  /^[[:space:]]/DZ
2026  ------------------------------------------------------------------  ------------------------------------------------------------------
2027    0  37 Bra 0          Bra
2028    3     ^          ^
2029    4     [\x09-\x0d ]          [\x09-\x0d ]
2030   37  37 Ket          Ket
2031   40     End          End
2032  ------------------------------------------------------------------  ------------------------------------------------------------------
2033  Capturing subpattern count = 0  Capturing subpattern count = 0
2034  Options: anchored  Options: anchored
2035  No first char  No first char
2036  No need char  No need char
2037    
2038  /^[[:upper:]]/D  /^[[:upper:]]/DZ
2039  ------------------------------------------------------------------  ------------------------------------------------------------------
2040    0  37 Bra 0          Bra
2041    3     ^          ^
2042    4     [A-Z]          [A-Z]
2043   37  37 Ket          Ket
2044   40     End          End
2045  ------------------------------------------------------------------  ------------------------------------------------------------------
2046  Capturing subpattern count = 0  Capturing subpattern count = 0
2047  Options: anchored  Options: anchored
2048  No first char  No first char
2049  No need char  No need char
2050    
2051  /^[[:xdigit:]]/D  /^[[:xdigit:]]/DZ
2052  ------------------------------------------------------------------  ------------------------------------------------------------------
2053    0  37 Bra 0          Bra
2054    3     ^          ^
2055    4     [0-9A-Fa-f]          [0-9A-Fa-f]
2056   37  37 Ket          Ket
2057   40     End          End
2058  ------------------------------------------------------------------  ------------------------------------------------------------------
2059  Capturing subpattern count = 0  Capturing subpattern count = 0
2060  Options: anchored  Options: anchored
2061  No first char  No first char
2062  No need char  No need char
2063    
2064  /^[[:word:]]/D  /^[[:word:]]/DZ
2065  ------------------------------------------------------------------  ------------------------------------------------------------------
2066    0  37 Bra 0          Bra
2067    3     ^          ^
2068    4     [0-9A-Z_a-z]          [0-9A-Z_a-z]
2069   37  37 Ket          Ket
2070   40     End          End
2071  ------------------------------------------------------------------  ------------------------------------------------------------------
2072  Capturing subpattern count = 0  Capturing subpattern count = 0
2073  Options: anchored  Options: anchored
2074  No first char  No first char
2075  No need char  No need char
2076    
2077  /^[[:^cntrl:]]/D  /^[[:^cntrl:]]/DZ
2078  ------------------------------------------------------------------  ------------------------------------------------------------------
2079    0  37 Bra 0          Bra
2080    3     ^          ^
2081    4     [ -~\x80-\xff]          [ -~\x80-\xff] (neg)
2082   37  37 Ket          Ket
2083   40     End          End
2084  ------------------------------------------------------------------  ------------------------------------------------------------------
2085  Capturing subpattern count = 0  Capturing subpattern count = 0
2086  Options: anchored  Options: anchored
2087  No first char  No first char
2088  No need char  No need char
2089    
2090  /^[12[:^digit:]]/D  /^[12[:^digit:]]/DZ
2091  ------------------------------------------------------------------  ------------------------------------------------------------------
2092    0  37 Bra 0          Bra
2093    3     ^          ^
2094    4     [\x00-/12:-\xff]          [\x00-/12:-\xff] (neg)
2095   37  37 Ket          Ket
2096   40     End          End
2097  ------------------------------------------------------------------  ------------------------------------------------------------------
2098  Capturing subpattern count = 0  Capturing subpattern count = 0
2099  Options: anchored  Options: anchored
2100  No first char  No first char
2101  No need char  No need char
2102    
2103  /^[[:^blank:]]/D  /^[[:^blank:]]/DZ
2104  ------------------------------------------------------------------  ------------------------------------------------------------------
2105    0  37 Bra 0          Bra
2106    3     ^          ^
2107    4     [\x00-\x08\x0a-\x1f!-\xff]          [\x00-\x08\x0a-\x1f!-\xff] (neg)
2108   37  37 Ket          Ket
2109   40     End          End
2110  ------------------------------------------------------------------  ------------------------------------------------------------------
2111  Capturing subpattern count = 0  Capturing subpattern count = 0
2112  Options: anchored  Options: anchored
2113  No first char  No first char
2114  No need char  No need char
2115    
2116  /[01[:alpha:]%]/D  /[01[:alpha:]%]/DZ
2117  ------------------------------------------------------------------  ------------------------------------------------------------------
2118    0  36 Bra 0          Bra
2119    3     [%01A-Za-z]          [%01A-Za-z]
2120   36  36 Ket          Ket
2121   39     End          End
2122  ------------------------------------------------------------------  ------------------------------------------------------------------
2123  Capturing subpattern count = 0  Capturing subpattern count = 0
2124  No options  No options
2125  No first char  No first char
2126  No need char  No need char
2127    
2128  /[[.ch.]]/  /[[.ch.]]/I
2129  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2130    
2131  /[[=ch=]]/  /[[=ch=]]/I
2132  Failed: POSIX collating elements are not supported at offset 1  Failed: POSIX collating elements are not supported at offset 1
2133    
2134  /[[:rhubarb:]]/  /[[:rhubarb:]]/I
2135  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
2136    
2137  /[[:upper:]]/i  /[[:upper:]]/Ii
2138  Capturing subpattern count = 0  Capturing subpattern count = 0
2139  Options: caseless  Options: caseless
2140  No first char  No first char
2141  No need char  No need char
2142      A      A
2143   0: A   0: A
2144      a      a
2145   0: a   0: a
2146    
2147  /[[:lower:]]/i  /[[:lower:]]/Ii
2148  Capturing subpattern count = 0  Capturing subpattern count = 0
2149  Options: caseless  Options: caseless
2150  No first char  No first char
2151  No need char  No need char
2152      A      A
2153   0: A   0: A
2154      a      a
2155   0: a   0: a
2156    
2157  /((?-i)[[:lower:]])[[:lower:]]/i  /((?-i)[[:lower:]])[[:lower:]]/Ii
2158  Capturing subpattern count = 1  Capturing subpattern count = 1
2159  Options: caseless  Options: caseless
 Case state changes  
2160  No first char  No first char
2161  No need char  No need char
2162      ab      ab
# Line 2211  No need char Line 2170  No need char
2170   1: a   1: a
2171      Ab      Ab
2172  No match  No match
2173      AB      AB
2174  No match  No match
2175    
2176  /[\200-\410]/  /[\200-\110]/I
2177  Failed: range out of order in character class at offset 9  Failed: range out of order in character class at offset 9
2178    
2179  /^(?(0)f|b)oo/  /^(?(0)f|b)oo/I
2180  Failed: invalid condition (?(0) at offset 5  Failed: invalid condition (?(0) at offset 6
2181    
2182  /This one's here because of the large output vector needed/  /This one's here because of the large output vector needed/I
2183  Capturing subpattern count = 0  Capturing subpattern count = 0
2184  No options  No options
2185  First char = 'T'  First char = 'T'
2186  Need char = 'd'  Need char = 'd'
2187    
2188  /(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\d+(?:\s|$))(\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
2189  Capturing subpattern count = 271  Capturing subpattern count = 271
2190  Max back reference = 270  Max back reference = 270
 Partial matching not supported  
2191  No options  No options
2192  No first char  No first char
2193  No need char  No need char
# Line 2507  No need char Line 2465  No need char
2465  270: ABC  270: ABC
2466  271: ABC  271: ABC
2467    
2468  /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
2469  Capturing subpattern count = 0  Capturing subpattern count = 0
2470  No options  No options
2471  First char = 'T'  First char = 'T'
2472  Need char = 't'  Need char = 't'
2473    
2474  /(main(O)?)+/  /(main(O)?)+/I
2475  Capturing subpattern count = 2  Capturing subpattern count = 2
2476  No options  No options
2477  First char = 'm'  First char = 'm'
# Line 2525  Need char = 'n' Line 2483  Need char = 'n'
2483   0: mainOmain   0: mainOmain
2484   1: main   1: main
2485   2: O   2: O
2486    
2487  /These are all cases where Perl does it differently (nested captures)/  /These are all cases where Perl does it differently (nested captures)/I
2488  Capturing subpattern count = 1  Capturing subpattern count = 1
2489  No options  No options
2490  First char = 'T'  First char = 'T'
2491  Need char = 's'  Need char = 's'
2492    
2493  /^(a(b)?)+$/  /^(a(b)?)+$/I
2494  Capturing subpattern count = 2  Capturing subpattern count = 2
2495  Options: anchored  Options: anchored
2496  No first char  No first char
# Line 2541  No need char Line 2499  No need char
2499   0: aba   0: aba
2500   1: a   1: a
2501   2: b   2: b
2502    
2503  /^(aa(bb)?)+$/  /^(aa(bb)?)+$/I
2504  Capturing subpattern count = 2  Capturing subpattern count = 2
2505  Options: anchored  Options: anchored
2506  No first char  No first char
2507  No need char  No need char
2508      aabbaa      aabbaa
2509   0: aabbaa   0: aabbaa
2510   1: aa   1: aa
2511   2: bb   2: bb
2512    
2513  /^(aa|aa(bb))+$/  /^(aa|aa(bb))+$/I
2514  Capturing subpattern count = 2  Capturing subpattern count = 2
2515  Options: anchored  Options: anchored
2516  No first char  No first char
2517  No need char  No need char
2518      aabbaa      aabbaa
2519   0: aabbaa   0: aabbaa
2520   1: aa   1: aa
2521   2: bb   2: bb
2522    
2523  /^(aa(bb)??)+$/  /^(aa(bb)??)+$/I
2524  Capturing subpattern count = 2  Capturing subpattern count = 2
2525  Options: anchored  Options: anchored
2526  No first char  No first char
2527  No need char  No need char
2528      aabbaa      aabbaa
2529   0: aabbaa   0: aabbaa
2530   1: aa   1: aa
2531   2: bb   2: bb
2532    
2533  /^(?:aa(bb)?)+$/  /^(?:aa(bb)?)+$/I
2534  Capturing subpattern count = 1  Capturing subpattern count = 1
2535  Options: anchored  Options: anchored
2536  No first char  No first char
2537  No need char  No need char
2538      aabbaa      aabbaa
2539   0: aabbaa   0: aabbaa
2540   1: bb   1: bb
2541    
2542  /^(aa(b(b))?)+$/  /^(aa(b(b))?)+$/I
2543  Capturing subpattern count = 3  Capturing subpattern count = 3
2544  Options: anchored  Options: anchored
2545  No first char  No first char
2546  No need char  No need char
2547      aabbaa      aabbaa
2548   0: aabbaa   0: aabbaa
2549   1: aa   1: aa
2550   2: bb   2: bb
2551   3: b   3: b
2552    
2553  /^(?:aa(b(b))?)+$/  /^(?:aa(b(b))?)+$/I
2554  Capturing subpattern count = 2  Capturing subpattern count = 2
2555  Options: anchored  Options: anchored
2556  No first char  No first char
2557  No need char  No need char
2558      aabbaa      aabbaa
2559   0: aabbaa   0: aabbaa
2560   1: bb   1: bb
2561   2: b   2: b
2562    
2563  /^(?:aa(b(?:b))?)+$/  /^(?:aa(b(?:b))?)+$/I
2564  Capturing subpattern count = 1  Capturing subpattern count = 1
2565  Options: anchored  Options: anchored
2566  No first char  No first char
2567  No need char  No need char
2568      aabbaa      aabbaa
2569   0: aabbaa   0: aabbaa
2570   1: bb   1: bb
2571    
2572  /^(?:aa(bb(?:b))?)+$/  /^(?:aa(bb(?:b))?)+$/I
2573  Capturing subpattern count = 1  Capturing subpattern count = 1
2574  Options: anchored  Options: anchored
2575  No first char  No first char
2576  No need char  No need char
2577      aabbbaa      aabbbaa
2578   0: aabbbaa   0: aabbbaa
2579   1: bbb   1: bbb
2580    
2581  /^(?:aa(b(?:bb))?)+$/  /^(?:aa(b(?:bb))?)+$/I
2582  Capturing subpattern count = 1  Capturing subpattern count = 1
2583  Options: anchored  Options: anchored
2584  No first char  No first char
2585  No need char  No need char
2586      aabbbaa      aabbbaa
2587   0: aabbbaa   0: aabbbaa
2588   1: bbb   1: bbb
2589    
2590  /^(?:aa(?:b(b))?)+$/  /^(?:aa(?:b(b))?)+$/I
2591  Capturing subpattern count = 1  Capturing subpattern count = 1
2592  Options: anchored  Options: anchored
2593  No first char  No first char
2594  No need char  No need char
2595      aabbaa      aabbaa
2596   0: aabbaa   0: aabbaa
2597   1: b   1: b
2598    
2599  /^(?:aa(?:b(bb))?)+$/  /^(?:aa(?:b(bb))?)+$/I
2600  Capturing subpattern count = 1  Capturing subpattern count = 1
2601  Options: anchored  Options: anchored
2602  No first char  No first char
2603  No need char  No need char
2604      aabbbaa      aabbbaa
2605   0: aabbbaa   0: aabbbaa
2606   1: bb   1: bb
2607    
2608  /^(aa(b(bb))?)+$/  /^(aa(b(bb))?)+$/I
2609  Capturing subpattern count = 3  Capturing subpattern count = 3
2610  Options: anchored  Options: anchored
2611  No first char  No first char
2612  No need char  No need char
2613      aabbbaa      aabbbaa
2614   0: aabbbaa   0: aabbbaa
2615   1: aa   1: aa
2616   2: bbb   2: bbb
2617   3: bb   3: bb
2618    
2619  /^(aa(bb(bb))?)+$/  /^(aa(bb(bb))?)+$/I
2620  Capturing subpattern count = 3  Capturing subpattern count = 3
2621  Options: anchored  Options: anchored
2622  No first char  No first char
2623  No need char  No need char
2624      aabbbbaa      aabbbbaa
2625   0: aabbbbaa   0: aabbbbaa
2626   1: aa   1: aa
2627   2: bbbb   2: bbbb
2628   3: bb   3: bb
2629    
2630  /--------------------------------------------------------------------/  /--------------------------------------------------------------------/I
2631  Capturing subpattern count = 0  Capturing subpattern count = 0
2632  No options  No options
2633  First char = '-'  First char = '-'
2634  Need char = '-'  Need char = '-'
2635    
2636  /#/xMD  /#/IxDZ
 Memory allocation (code space): 7  
2637  ------------------------------------------------------------------  ------------------------------------------------------------------
2638    0   3 Bra 0          Bra
2639    3   3 Ket          Ket
2640    6     End          End
2641  ------------------------------------------------------------------  ------------------------------------------------------------------
2642  Capturing subpattern count = 0  Capturing subpattern count = 0
2643  Options: extended  Options: extended
2644  No first char  No first char
2645  No need char  No need char
2646    
2647  /a#/xMD  /a#/IxDZ
 Memory allocation (code space): 9  
2648  ------------------------------------------------------------------  ------------------------------------------------------------------
2649    0   5 Bra 0          Bra
2650    3     a          a
2651    5   5 Ket          Ket
2652    8     End          End
2653  ------------------------------------------------------------------  ------------------------------------------------------------------
2654  Capturing subpattern count = 0  Capturing subpattern count = 0
2655  Options: extended  Options: extended
2656  First char = 'a'  First char = 'a'
2657  No need char  No need char
2658    
2659  /[\s]/D  /[\s]/DZ
2660  ------------------------------------------------------------------  ------------------------------------------------------------------
2661    0  36 Bra 0          Bra
2662    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
2663   36  36 Ket          Ket
2664   39     End          End
2665  ------------------------------------------------------------------  ------------------------------------------------------------------
2666  Capturing subpattern count = 0  Capturing subpattern count = 0
2667  No options  No options
2668  No first char  No first char
2669  No need char  No need char
2670    
2671  /[\S]/D  /[\S]/DZ
2672  ------------------------------------------------------------------  ------------------------------------------------------------------
2673    0  36 Bra 0          Bra
2674    3     [\x00-\x08\x0b\x0e-\x1f!-\xff]          [\x00-\x08\x0b\x0e-\x1f!-\xff] (neg)
2675   36  36 Ket          Ket
2676   39     End          End
2677  ------------------------------------------------------------------  ------------------------------------------------------------------
2678  Capturing subpattern count = 0  Capturing subpattern count = 0
2679  No options  No options
2680  No first char  No first char
2681  No need char  No need char
2682    
2683  /a(?i)b/D  /a(?i)b/DZ
2684  ------------------------------------------------------------------  ------------------------------------------------------------------
2685    0   9 Bra 0          Bra
2686    3     a          a
2687    5  01 Opt       /i b
2688    7  NC b          Ket
2689    9   9 Ket          End
  12     End  
2690  ------------------------------------------------------------------  ------------------------------------------------------------------
2691  Capturing subpattern count = 0  Capturing subpattern count = 0
2692  No options  No options
 Case state changes  
2693  First char = 'a'  First char = 'a'
2694  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2695      ab      ab
2696   0: ab   0: ab
2697      aB      aB
2698   0: aB   0: aB
2699      *** Failers      *** Failers
2700  No match  No match
2701      AB      AB
2702  No match  No match
2703    
2704  /(a(?i)b)/D  /(a(?i)b)/DZ
2705  ------------------------------------------------------------------  ------------------------------------------------------------------
2706    0  17 Bra 0          Bra
2707    3   9 Bra 1          CBra 1
2708    6     a          a
2709    8  01 Opt       /i b
2710   10  NC b          Ket
2711   12   9 Ket          Ket
2712   15  00 Opt          End
  17  17 Ket  
  20     End  
2713  ------------------------------------------------------------------  ------------------------------------------------------------------
2714  Capturing subpattern count = 1  Capturing subpattern count = 1
2715  No options  No options
 Case state changes  
2716  First char = 'a'  First char = 'a'
2717  Need char = 'b' (caseless)  Need char = 'b' (caseless)
2718      ab      ab
# Line 2770  Need char = 'b' (caseless) Line 2721  Need char = 'b' (caseless)
2721      aB      aB
2722   0: aB   0: aB
2723   1: aB   1: aB
2724      *** Failers      *** Failers
2725  No match  No match
2726      AB      AB
2727  No match  No match
2728    
2729  /   (?i)abc/xD  /   (?i)abc/IxDZ
2730  ------------------------------------------------------------------  ------------------------------------------------------------------
2731    0   9 Bra 0          Bra
2732    3  NC abc       /i abc
2733    9   9 Ket          Ket
2734   12     End          End
2735  ------------------------------------------------------------------  ------------------------------------------------------------------
2736  Capturing subpattern count = 0  Capturing subpattern count = 0
2737  Options: caseless extended  Options: caseless extended
# Line 2788  First char = 'a' (caseless) Line 2739  First char = 'a' (caseless)
2739  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2740    
2741  /#this is a comment  /#this is a comment
2742    (?i)abc/xD    (?i)abc/IxDZ
2743  ------------------------------------------------------------------  ------------------------------------------------------------------
2744    0   9 Bra 0          Bra
2745    3  NC abc       /i abc
2746    9   9 Ket          Ket
2747   12     End          End
2748  ------------------------------------------------------------------  ------------------------------------------------------------------
2749  Capturing subpattern count = 0  Capturing subpattern count = 0
2750  Options: caseless extended  Options: caseless extended
2751  First char = 'a' (caseless)  First char = 'a' (caseless)
2752  Need char = 'c' (caseless)  Need char = 'c' (caseless)
2753    
2754  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2755  ------------------------------------------------------------------  ------------------------------------------------------------------
2756    0 603 Bra 0          Bra
2757    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2758  603 603 Ket          Ket
2759  606     End          End
2760  ------------------------------------------------------------------  ------------------------------------------------------------------
2761  Capturing subpattern count = 0  Capturing subpattern count = 0
2762  No options  No options
2763  First char = '1'  First char = '1'
2764  Need char = '0'  Need char = '0'
2765    
2766  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/D  /\Q123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890/DZ
2767  ------------------------------------------------------------------  ------------------------------------------------------------------
2768    0 603 Bra 0          Bra
2769    3     123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890          123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890123456789012345678901234567890
2770  603 603 Ket          Ket
2771  606     End          End
2772  ------------------------------------------------------------------  ------------------------------------------------------------------
2773  Capturing subpattern count = 0  Capturing subpattern count = 0
2774  No options  No options
2775  First char = '1'  First char = '1'
2776  Need char = '0'  Need char = '0'
2777    
2778  /\Q\E/D  /\Q\E/DZ
2779  ------------------------------------------------------------------  ------------------------------------------------------------------
2780    0   3 Bra 0          Bra
2781    3   3 Ket          Ket
2782    6     End          End
2783  ------------------------------------------------------------------  ------------------------------------------------------------------
2784  Capturing subpattern count = 0  Capturing subpattern count = 0
2785  No options  No options
# Line 2837  No need char Line 2788  No need char
2788      \      \
2789   0:   0:
2790    
2791  /\Q\Ex/D  /\Q\Ex/DZ
2792  ------------------------------------------------------------------  ------------------------------------------------------------------
2793    0   5 Bra 0          Bra
2794    3     x          x
2795    5   5 Ket          Ket
2796    8     End          End
2797  ------------------------------------------------------------------  ------------------------------------------------------------------
2798  Capturing subpattern count = 0  Capturing subpattern count = 0
2799  No options  No options
2800  First char = 'x'  First char = 'x'
2801  No need char  No need char
2802    
2803  / \Q\E/D  / \Q\E/DZ
2804  ------------------------------------------------------------------  ------------------------------------------------------------------
2805    0   5 Bra 0          Bra
2806    3  
2807    5   5 Ket          Ket
2808    8     End          End
2809  ------------------------------------------------------------------  ------------------------------------------------------------------
2810  Capturing subpattern count = 0  Capturing subpattern count = 0
2811  No options  No options
2812  First char = ' '  First char = ' '
2813  No need char  No need char
2814    
2815  /a\Q\E/D  /a\Q\E/DZ
2816  ------------------------------------------------------------------  ------------------------------------------------------------------
2817    0   5 Bra 0          Bra
2818    3     a          a
2819    5   5 Ket          Ket
2820    8     End          End
2821  ------------------------------------------------------------------  ------------------------------------------------------------------
2822  Capturing subpattern count = 0  Capturing subpattern count = 0
2823  No options  No options
# Line 2876  No need char Line 2827  No need char
2827   0: a   0: a
2828    bca    bca
2829   0: a   0: a
2830    bac    bac
2831   0: a   0: a
2832    
2833  /a\Q\Eb/D  /a\Q\Eb/DZ
2834  ------------------------------------------------------------------  ------------------------------------------------------------------
2835    0   7 Bra 0          Bra
2836    3     ab          ab
2837    7   7 Ket          Ket
2838   10     End          End
2839  ------------------------------------------------------------------  ------------------------------------------------------------------
2840  Capturing subpattern count = 0  Capturing subpattern count = 0
2841  No options  No options
# Line 2893  Need char = 'b' Line 2844  Need char = 'b'
2844    abc    abc
2845   0: ab   0: ab
2846    
2847  /\Q\Eabc/D  /\Q\Eabc/DZ
2848  ------------------------------------------------------------------  ------------------------------------------------------------------
2849    0   9 Bra 0          Bra
2850    3     abc          abc
2851    9   9 Ket          Ket
2852   12     End          End
2853  ------------------------------------------------------------------  ------------------------------------------------------------------
2854  Capturing subpattern count = 0  Capturing subpattern count = 0
2855  No options  No options
2856  First char = 'a'  First char = 'a'
2857  Need char = 'c'  Need char = 'c'
2858    
2859  /x*+\w/D  /x*+\w/DZ
2860  ------------------------------------------------------------------  ------------------------------------------------------------------
2861    0  12 Bra 0          Bra
2862    3   5 Once          x*+
2863    6     x*          \w
2864    8   5 Ket          Ket
2865   11     \w          End
  12  12 Ket  
  15     End  
2866  ------------------------------------------------------------------  ------------------------------------------------------------------
2867  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2868  No options  No options
2869  No first char  No first char
2870  No need char  No need char
# Line 2924  No need char Line 2872  No need char
2872   0: F   0: F
2873      xxxxx      xxxxx
2874  No match  No match
2875    
2876  /x?+/D  /x?+/DZ
2877  ------------------------------------------------------------------  ------------------------------------------------------------------
2878    0  11 Bra 0          Bra
2879    3   5 Once          x?+
2880    6     x?          Ket
2881    8   5 Ket          End
  11  11 Ket  
  14     End  
2882  ------------------------------------------------------------------  ------------------------------------------------------------------
2883  Capturing subpattern count = 0  Capturing subpattern count = 0
2884  No options  No options
2885  No first char  No first char
2886  No need char  No need char
2887    
2888  /x++/D  /x++/DZ
2889  ------------------------------------------------------------------  ------------------------------------------------------------------
2890    0  11 Bra 0          Bra
2891    3   5 Once          x++
2892    6     x+          Ket
2893    8   5 Ket          End
  11  11 Ket  
  14     End  
2894  ------------------------------------------------------------------  ------------------------------------------------------------------
2895  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2896  No options  No options
2897  First char = 'x'  First char = 'x'
2898  No need char  No need char
2899    
2900  /x{1,3}+/D  /x{1,3}+/DZ
2901  ------------------------------------------------------------------  ------------------------------------------------------------------
2902    0  15 Bra 0          Bra
2903    3   9 Once          Once
2904    6     x          x
2905    8     x{,2}          x{0,2}
2906   12   9 Ket          Ket
2907   15  15 Ket          Ket
2908   18     End          End
2909  ------------------------------------------------------------------  ------------------------------------------------------------------
2910  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2911  No options  No options
2912  First char = 'x'  First char = 'x'
2913  No need char  No need char
2914    
2915  /(x)*+/D  /(x)*+/DZ
2916  ------------------------------------------------------------------  ------------------------------------------------------------------
2917    0  18 Bra 0          Bra
2918    3  12 Once          Braposzero
2919    6     Brazero          CBraPos 1
2920    7   5 Bra 1          x
2921   10     x          KetRpos
2922   12   5 KetRmax          Ket
2923   15  12 Ket          End
  18  18 Ket  
  21     End  
2924  ------------------------------------------------------------------  ------------------------------------------------------------------
2925  Capturing subpattern count = 1  Capturing subpattern count = 1
2926  No options  No options
2927  No first char  No first char
2928  No need char  No need char
2929    
2930  /^(\w++|\s++)*$/  /^(\w++|\s++)*$/I
2931  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2932  Options: anchored  Options: anchored
2933  No first char  No first char
2934  No need char  No need char
# Line 3000  No need char Line 2939  No need char
2939  No match  No match
2940      this is not a line with only words and spaces!      this is not a line with only words and spaces!
2941  No match  No match
2942    
2943  /(\d++)(\w)/  /(\d++)(\w)/I
2944  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
2945  No options  No options
2946  No first char  No first char
2947  No need char  No need char
# Line 3013  No need char Line 2951  No need char
2951   2: a   2: a
2952      *** Failers      *** Failers
2953  No match  No match
2954      12345+      12345+
2955  No match  No match
2956    
2957  /a++b/  /a++b/I
2958  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
2959  No options  No options
2960  First char = 'a'  First char = 'a'
2961  Need char = 'b'  Need char = 'b'
2962      aaab      aaab
2963   0: aaab   0: aaab
2964    
2965  /(a++b)/  /(a++b)/I
2966  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2967  No options  No options
2968  First char = 'a'  First char = 'a'
2969  Need char = 'b'  Need char = 'b'
# Line 3035  Need char = 'b' Line 2971  Need char = 'b'
2971   0: aaab   0: aaab
2972   1: aaab   1: aaab
2973    
2974  /(a++)b/  /(a++)b/I
2975  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2976  No options  No options
2977  First char = 'a'  First char = 'a'
2978  Need char = 'b'  Need char = 'b'
# Line 3045  Need char = 'b' Line 2980  Need char = 'b'
2980   0: aaab   0: aaab
2981   1: aaa   1: aaa
2982    
2983  /([^()]++|\([^()]*\))+/  /([^()]++|\([^()]*\))+/I
2984  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2985  No options  No options
2986  No first char  No first char
2987  No need char  No need char
2988      ((abc(ade)ufh()()x      ((abc(ade)ufh()()x
2989   0: abc(ade)ufh()()x   0: abc(ade)ufh()()x
2990   1: x   1: x
2991    
2992  /\(([^()]++|\([^()]+\))+\)/  /\(([^()]++|\([^()]+\))+\)/I
2993  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
2994  No options  No options
2995  First char = '('  First char = '('
2996  Need char = ')'  Need char = ')'
# Line 3069  Need char = ')' Line 3002  Need char = ')'
3002   1: xyz   1: xyz
3003      *** Failers      *** Failers
3004  No match  No match
3005      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa      ((()aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
3006  No match  No match
3007    
3008  /(abc){1,3}+/D  /(abc){1,3}+/DZ
3009  ------------------------------------------------------------------  ------------------------------------------------------------------
3010    0  53 Bra 0          Bra
3011    3  47 Once          Once
3012    6   9 Bra 1          CBra 1
3013    9     abc          abc
3014   15   9 Ket          Ket
3015   18     Brazero          Brazero
3016   19  28 Bra 0          Bra
3017   22   9 Bra 1          CBra 1
3018   25     abc          abc
3019   31   9 Ket          Ket
3020   34     Brazero          Brazero
3021   35   9 Bra 1          CBra 1
3022   38     abc          abc
3023   44   9 Ket          Ket
3024   47  28 Ket          Ket
3025   50  47 Ket          Ket
3026   53  53 Ket          Ket
3027   56     End          End
3028  ------------------------------------------------------------------  ------------------------------------------------------------------
3029  Capturing subpattern count = 1  Capturing subpattern count = 1
3030  No options  No options
3031  First char = 'a'  First char = 'a'
3032  Need char = 'c'  Need char = 'c'
3033    
3034  /a+?+/  /a+?+/I
3035  Failed: nothing to repeat at offset 3  Failed: nothing to repeat at offset 3
3036    
3037  /a{2,3}?+b/  /a{2,3}?+b/I
3038  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3039    
3040  /(?U)a+?+/  /(?U)a+?+/I
3041  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3042    
3043  /a{2,3}?+b/U  /a{2,3}?+b/IU
3044  Failed: nothing to repeat at offset 7  Failed: nothing to repeat at offset 7
3045    
3046  /x(?U)a++b/D  /x(?U)a++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  No options  No options
3057  First char = 'x'  First char = 'x'
3058  Need char = 'b'  Need char = 'b'
3059      xaaaab      xaaaab
3060   0: xaaaab   0: xaaaab
3061    
3062  /(?U)xa++b/D  /(?U)xa++b/DZ
3063  ------------------------------------------------------------------  ------------------------------------------------------------------
3064    0  15 Bra 0          Bra
3065    3     x          x
3066    5   5 Once          a++
3067    8     a+          b
3068   10   5 Ket          Ket
3069   13     b          End
  15  15 Ket  
  18     End  
3070  ------------------------------------------------------------------  ------------------------------------------------------------------
3071  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3072  Options: ungreedy  Options: ungreedy
3073  First char = 'x'  First char = 'x'
3074  Need char = 'b'  Need char = 'b'
3075      xaaaab      xaaaab
3076   0: xaaaab   0: xaaaab
3077    
3078  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/D  /^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/DZ
3079  ------------------------------------------------------------------  ------------------------------------------------------------------
3080    0 106 Bra 0          Bra
3081    3     ^          ^
3082    4  99 Bra 1          CBra 1
3083    7   5 Bra 2          CBra 2
3084   10     a+          a+
3085   12   5 Ket          Ket
3086   15  37 Bra 3          CBra 3
3087   18     [ab]+?          [ab]+?
3088   52  37 Ket          Ket
3089   55  37 Bra 4          CBra 4
3090   58     [bc]+          [bc]+
3091   92  37 Ket          Ket
3092   95   5 Bra 5          CBra 5
3093   98     \w*          \w*
3094  100   5 Ket          Ket
3095  103  99 Ket          Ket
3096  106 106 Ket          Ket
3097  109     End          End
3098  ------------------------------------------------------------------  ------------------------------------------------------------------
3099  Capturing subpattern count = 5  Capturing subpattern count = 5
 Partial matching not supported  
3100  Options: anchored  Options: anchored
3101  No first char  No first char
3102  No need char  No need char
3103    
3104  /^x(?U)a+b/D  /^x(?U)a+b/DZ
3105  ------------------------------------------------------------------  ------------------------------------------------------------------
3106    0  10 Bra 0          Bra
3107    3     ^          ^
3108    4     x          x
3109    6     a+?          a++
3110    8     b          b
3111   10  10 Ket          Ket
3112   13     End          End
3113  ------------------------------------------------------------------  ------------------------------------------------------------------
3114  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3115  Options: anchored  Options: anchored
3116  No first char  No first char
3117  Need char = 'b'  Need char = 'b'
3118    
3119  /^x(?U)(a+)b/D  /^x(?U)(a+)b/DZ
3120  ------------------------------------------------------------------  ------------------------------------------------------------------
3121    0  16 Bra 0          Bra
3122    3     ^          ^
3123    4     x          x
3124    6   5 Bra 1          CBra 1
3125    9     a+?          a+?
3126   11   5 Ket          Ket
3127   14     b          b
3128   16  16 Ket          Ket
3129   19     End          End
3130  ------------------------------------------------------------------  ------------------------------------------------------------------
3131  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3132  Options: anchored  Options: anchored
3133  No first char  No first char
3134  Need char = 'b'  Need char = 'b'
3135    
3136  /[.x.]/  /[.x.]/I
3137  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3138    
3139  /[=x=]/  /[=x=]/I
3140  Failed: POSIX collating elements are not supported at offset 0  Failed: POSIX collating elements are not supported at offset 0
3141    
3142  /[:x:]/  /[:x:]/I
3143  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
3144    
3145  /\l/  /\l/I
3146  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
3147    
3148  /\L/  /\L/I
3149  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
3150    
3151  /\N{name}/  /\N{name}/I
3152  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
3153    
3154  /\u/  /\u/I
3155  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
3156    
3157  /\U/  /\U/I
3158  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
3159    
3160  /[/  /[/I
3161  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
3162    
3163  /[a-/  /[a-/I
3164  Failed: missing terminating ] for character class at offset 3  Failed: missing terminating ] for character class at offset 3
3165    
3166  /[[:space:]/  /[[:space:]/I
3167  Failed: missing terminating ] for character class at offset 10  Failed: missing terminating ] for character class at offset 10
3168    
3169  /[\s]/DM  /[\s]/IDZ
 Memory allocation (code space): 40  
3170  ------------------------------------------------------------------  ------------------------------------------------------------------
3171    0  36 Bra 0          Bra
3172    3     [\x09\x0a\x0c\x0d ]          [\x09\x0a\x0c\x0d ]
3173   36  36 Ket          Ket
3174   39     End          End
3175  ------------------------------------------------------------------  ------------------------------------------------------------------
3176  Capturing subpattern count = 0  Capturing subpattern count = 0
3177  No options  No options
3178  No first char  No first char
3179  No need char  No need char
3180    
3181  /[[:space:]]/DM  /[[:space:]]/IDZ
 Memory allocation (code space): 40  
3182  ------------------------------------------------------------------  ------------------------------------------------------------------
3183    0  36 Bra 0          Bra
3184    3     [\x09-\x0d ]          [\x09-\x0d ]
3185   36  36 Ket          Ket
3186   39     End          End
3187  ------------------------------------------------------------------  ------------------------------------------------------------------
3188  Capturing subpattern count = 0  Capturing subpattern count = 0
3189  No options  No options
3190  No first char  No first char
3191  No need char  No need char
3192    
3193  /[[:space:]abcde]/DM  /[[:space:]abcde]/IDZ
 Memory allocation (code space): 40  
3194  ------------------------------------------------------------------  ------------------------------------------------------------------
3195    0  36 Bra 0          Bra
3196    3     [\x09-\x0d a-e]          [\x09-\x0d a-e]
3197   36  36 Ket          Ket
3198   39     End          End
3199  ------------------------------------------------------------------  ------------------------------------------------------------------
3200  Capturing subpattern count = 0  Capturing subpattern count = 0
3201  No options  No options
3202  No first char  No first char
3203  No need char  No need char
3204    
3205  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/x  /< (?: (?(R) \d++  | [^<>]*+) | (?R)) * >/Ix
3206  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3207  Options: extended  Options: extended
3208  First char = '<'  First char = '<'
3209  Need char = '>'  Need char = '>'
# Line 3295  Need char = '>' Line 3215  Need char = '>'
3215   0: <abc <123> hij>   0: <abc <123> hij>
3216      <abc <def> hij>      <abc <def> hij>
3217   0: <def>   0: <def>
3218      <abc<>def>      <abc<>def>
3219   0: <abc<>def>   0: <abc<>def>
3220      <abc<>      <abc<>
3221   0: <>   0: <>
3222      *** Failers      *** Failers
3223  No match  No match
3224      <abc      <abc
3225  No match  No match
3226    
3227  |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  
3228  ------------------------------------------------------------------  ------------------------------------------------------------------
3229    0 822 Bra 0          Bra
3230    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
3231  821     \b          \b
3232  822 822 Ket          Ket
3233  825     End          End
3234  ------------------------------------------------------------------  ------------------------------------------------------------------
3235  Capturing subpattern count = 0  Capturing subpattern count = 0
3236  No options  No options
3237  First char = '8'  First char = '8'
3238  Need char = 'X'  Need char = 'X'
3239    Max lookbehind = 1
3240    
3241  |\$\<\.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  
3242  ------------------------------------------------------------------  ------------------------------------------------------------------
3243    0 812 Bra 0          Bra
3244    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
3245  811     \b          \b
3246  812 812 Ket          Ket
3247  815     End          End
3248  ------------------------------------------------------------------  ------------------------------------------------------------------
3249  Capturing subpattern count = 0  Capturing subpattern count = 0
3250  No options  No options
3251  First char = '$'  First char = '$'
3252  Need char = 'X'  Need char = 'X'
3253    Max lookbehind = 1
3254    
3255  /(.*)\d+\1/I  /(.*)\d+\1/I
3256  Capturing subpattern count = 1  Capturing subpattern count = 1
3257  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3258  No options  No options
3259  No first char  No first char
3260  No need char  No need char
3261    
3262  /(.*)\d+/I  /(.*)\d+/I
3263  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3264  No options  No options
3265  First char at start or follows \n  First char at start or follows newline
3266  No need char  No need char
3267    
3268  /(.*)\d+\1/Is  /(.*)\d+\1/Is
3269  Capturing subpattern count = 1  Capturing subpattern count = 1
3270  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3271  Options: dotall  Options: dotall
3272  No first char  No first char
3273  No need char  No need char
3274    
3275  /(.*)\d+/Is  /(.*)\d+/Is
3276  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3277  Options: anchored dotall  Options: anchored dotall
3278  No first char  No first char
3279  No need char  No need char
# Line 3365  No need char Line 3281  No need char
3281  /(.*(xyz))\d+\2/I  /(.*(xyz))\d+\2/I
3282  Capturing subpattern count = 2  Capturing subpattern count = 2
3283  Max back reference = 2  Max back reference = 2
 Partial matching not supported  
3284  No options  No options
3285  First char at start or follows \n  First char at start or follows newline
3286  Need char = 'z'  Need char = 'z'
3287    
3288  /((.*))\d+\1/I  /((.*))\d+\1/I
3289  Capturing subpattern count = 2  Capturing subpattern count = 2
3290  Max back reference = 1  Max back reference = 1
 Partial matching not supported  
3291  No options  No options
3292  No first char  No first char
3293  No need char  No need char
# Line 3381  No need char Line 3295  No need char
3295   0: bc123bc   0: bc123bc
3296   1: bc   1: bc
3297   2: bc   2: bc
3298    
3299  /a[b]/I  /a[b]/I
3300  Capturing subpattern count = 0  Capturing subpattern count = 0
3301  No options  No options
# Line 3390  Need char = 'b' Line 3304  Need char = 'b'
3304    
3305  /(?=a).*/I  /(?=a).*/I
3306  Capturing subpattern count = 0  Capturing subpattern count = 0
 Partial matching not supported  
3307  No options  No options
3308  First char = 'a'  First char = 'a'
3309  No need char  No need char
3310    
3311  /(?=abc).xyz/iI  /(?=abc).xyz/IiI
3312  Capturing subpattern count = 0  Capturing subpattern count = 0
3313  Options: caseless  Options: caseless
3314  First char = 'a' (caseless)  First char = 'a' (caseless)
# Line 3404  Need char = 'z' (caseless) Line 3317  Need char = 'z' (caseless)
3317  /(?=abc)(?i).xyz/I  /(?=abc)(?i).xyz/I
3318  Capturing subpattern count = 0  Capturing subpattern count = 0
3319  No options  No options
 Case state changes  
3320  First char = 'a'  First char = 'a'
3321  Need char = 'z' (caseless)  Need char = 'z' (caseless)
3322    
# Line 3438  No options Line 3350  No options
3350  No first char  No first char
3351  Need char = 'a'  Need char = 'a'
3352    
3353  /(?(1)ab|ac)/I  /(?(1)ab|ac)(.)/I
3354  Capturing subpattern count = 0  Capturing subpattern count = 1
3355  No options  No options
3356  First char = 'a'  First char = 'a'
3357  No need char  No need char
3358    
3359  /(?(1)abz|acz)/I  /(?(1)abz|acz)(.)/I
3360  Capturing subpattern count = 0  Capturing subpattern count = 1
3361  No options  No options
3362  First char = 'a'  First char = 'a'
3363  Need char = 'z'  Need char = 'z'
3364    
3365  /(?(1)abz)/I  /(?(1)abz)(.)/I
3366  Capturing subpattern count = 0  Capturing subpattern count = 1
3367  No options  No options
3368  No first char  No first char
3369  No need char  No need char
3370    
3371  /(?(1)abz)123/I  /(?(1)abz)(1)23/I
3372  Capturing subpattern count = 0  Capturing subpattern count = 1
3373  No options  No options
3374  No first char  No first char
3375  Need char = '3'  Need char = '3'
# Line 3497  Capturing subpattern count = 0 Line 3409  Capturing subpattern count = 0
3409  No options  No options
3410  No first char  No first char
3411  No need char  No need char
3412    Subject length lower bound = 1
3413  Starting byte set: a b  Starting byte set: a b
3414    
3415  /[^a]/I  /[^a]/I
# Line 3516  Capturing subpattern count = 0 Line 3429  Capturing subpattern count = 0
3429  No options  No options
3430  No first char  No first char
3431  Need char = '6'  Need char = '6'
3432    Subject length lower bound = 4
3433  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
3434    
3435  /a^b/I  /a^b/I
# Line 3524  No options Line 3438  No options
3438  First char = 'a'  First char = 'a'
3439  Need char = 'b'  Need char = 'b'
3440    
3441  /^a/mI  /^a/Im
3442  Capturing subpattern count = 0  Capturing subpattern count = 0
3443  Options: multiline  Options: multiline
3444  First char at start or follows \n  First char at start or follows newline
3445  Need char = 'a'  Need char = 'a'
3446    abcde    abcde
3447   0: a   0: a
3448    xy\nabc    xy\nabc
3449   0: a   0: a
3450    *** Failers    *** Failers
3451  No match  No match
3452    xyabc    xyabc
3453  No match  No match
3454    
3455  /c|abc/I  /c|abc/I
# Line 3549  Capturing subpattern count = 0 Line 3463  Capturing subpattern count = 0
3463  Options: caseless  Options: caseless
3464  No first char  No first char
3465  No need char  No need char
3466    Subject length lower bound = 1
3467  Starting byte set: A B a b  Starting byte set: A B a b
3468    
3469  /[ab](?i)cd/IS  /[ab](?i)cd/IS
3470  Capturing subpattern count = 0  Capturing subpattern count = 0
3471  No options  No options
 Case state changes  
3472  No first char  No first char
3473  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3474    Subject length lower bound = 3
3475  Starting byte set: a b  Starting byte set: a b
3476    
3477  /abc(?C)def/  /abc(?C)def/I
3478  Capturing subpattern count = 0  Capturing subpattern count = 0
3479  No options  No options
3480  First char = 'a'  First char = 'a'
# Line 3568  Need char = 'f' Line 3483  Need char = 'f'
3483  --->abcdef  --->abcdef
3484    0 ^  ^       d    0 ^  ^       d
3485   0: abcdef   0: abcdef
3486      1234abcdef      1234abcdef
3487  --->1234abcdef  --->1234abcdef
3488    0     ^  ^       d    0     ^  ^       d
3489   0: abcdef   0: abcdef
# Line 3576  Need char = 'f' Line 3491  Need char = 'f'
3491  No match  No match
3492      abcxyz      abcxyz
3493  No match  No match
3494      abcxyzf      abcxyzf
3495  --->abcxyzf  --->abcxyzf
3496    0 ^  ^        d    0 ^  ^        d
3497  No match  No match
3498    
3499  /abc(?C)de(?C1)f/  /abc(?C)de(?C1)f/I
3500  Capturing subpattern count = 0  Capturing subpattern count = 0
3501  No options  No options
3502  First char = 'a'  First char = 'a'
# Line 3591  Need char = 'f' Line 3506  Need char = 'f'
3506    0    ^  ^       d    0    ^  ^       d
3507    1    ^    ^     f    1    ^    ^     f
3508   0: abcdef   0: abcdef
3509    
3510  /(?C1)\dabc(?C2)def/  /(?C1)\dabc(?C2)def/IS
3511    Capturing subpattern count = 0
3512    No options
3513    No first char
3514    Need char = 'f'
3515    Subject length lower bound = 7
3516    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3517        1234abcdef
3518    --->1234abcdef
3519      1 ^              \d
3520      1  ^             \d
3521      1   ^            \d
3522      1    ^           \d
3523      2    ^   ^       d
3524     0: 4abcdef
3525        *** Failers
3526    No match
3527        abcdef
3528    No match
3529    
3530    /(?C1)\dabc(?C2)def/ISS
3531  Capturing subpattern count = 0  Capturing subpattern count = 0
3532  No options  No options
3533  No first char  No first char
# Line 3607  Need char = 'f' Line 3542  Need char = 'f'
3542   0: 4abcdef   0: 4abcdef
3543      *** Failers      *** Failers
3544  No match  No match
3545      abcdef      abcdef
3546  --->abcdef  --->abcdef
3547    1 ^          \d    1 ^          \d
3548    1  ^         \d    1  ^         \d
# Line 3616  No match Line 3551  No match
3551    1     ^      \d    1     ^      \d
3552    1      ^     \d    1      ^     \d
3553  No match  No match
3554    
3555  /(?C255)ab/  /(?C255)ab/I
3556  Capturing subpattern count = 0  Capturing subpattern count = 0
3557  No options  No options
3558  First char = 'a'  First char = 'a'
3559  Need char = 'b'  Need char = 'b'
3560    
3561  /(?C256)ab/  /(?C256)ab/I
3562  Failed: number after (?C is > 255 at offset 6  Failed: number after (?C is > 255 at offset 6
3563    
3564  /(?Cab)xx/  /(?Cab)xx/I
3565  Failed: closing ) for (?C expected at offset 3  Failed: closing ) for (?C expected at offset 3
3566    
3567  /(?C12vr)x/  /(?C12vr)x/I
3568  Failed: closing ) for (?C expected at offset 5  Failed: closing ) for (?C expected at offset 5
3569    
3570  /abc(?C)def/  /abc(?C)def/I
3571  Capturing subpattern count = 0  Capturing subpattern count = 0
3572  No options  No options
3573  First char = 'a'  First char = 'a'
# Line 3644  No match Line 3579  No match
3579    0         ^  ^       d    0         ^  ^       d
3580   0: abcdef   0: abcdef
3581    
3582  /(abc)(?C)de(?C1)f/  /(abc)(?C)de(?C1)f/I
3583  Capturing subpattern count = 1  Capturing subpattern count = 1
3584  No options  No options
3585  First char = 'a'  First char = 'a'
# Line 3655  Need char = 'f' Line 3590  Need char = 'f'
3590    1    ^    ^     f    1    ^    ^     f
3591   0: abcdef   0: abcdef
3592   1: abc   1: abc
3593      123abcdef\C+      123abcdef\C+
3594  Callout 0: last capture = 1  Callout 0: last capture = 1
3595   0: <unset>   0: <unset>
3596   1: abc   1: abc
# Line 3668  Callout 1: last capture = 1 Line 3603  Callout 1: last capture = 1
3603         ^    ^     f         ^    ^     f
3604   0: abcdef   0: abcdef
3605   1: abc   1: abc
3606      123abcdef\C-      123abcdef\C-
3607   0: abcdef   0: abcdef
3608   1: abc   1: abc
3609      *** Failers      *** Failers
3610  No match  No match
3611      123abcdef\C!1      123abcdef\C!1
3612  --->123abcdef  --->123abcdef
3613    0    ^  ^       d    0    ^  ^       d
3614    1    ^    ^     f    1    ^    ^     f
3615  No match  No match
3616    
3617  /(?C0)(abc(?C1))*/  /(?C0)(abc(?C1))*/I
3618  Capturing subpattern count = 1  Capturing subpattern count = 1
3619  No options  No options
3620  No first char  No first char
# Line 3692  No need char Line 3627  No need char
3627    1 ^        ^    )    1 ^        ^    )
3628   0: abcabcabc   0: abcabcabc
3629   1: abc   1: abc
3630      abcabc\C!1!3      abcabc\C!1!3
3631  --->abcabc  --->abcabc
3632    0 ^          (abc(?C1))*    0 ^          (abc(?C1))*
3633    1 ^  ^       )    1 ^  ^       )
# Line 3703  No need char Line 3638  No need char
3638  --->*** Failers  --->*** Failers
3639    0 ^               (abc(?C1))*    0 ^               (abc(?C1))*
3640   0:   0:
3641      abcabcabc\C!1!3      abcabcabc\C!1!3
3642  --->abcabcabc  --->abcabcabc
3643    0 ^             (abc(?C1))*    0 ^             (abc(?C1))*
3644    1 ^  ^          )    1 ^  ^          )
# Line 3712  No need char Line 3647  No need char
3647   0: abcabc   0: abcabc
3648   1: abc   1: abc
3649    
3650  /(\d{3}(?C))*/  /(\d{3}(?C))*/I
3651  Capturing subpattern count = 1  Capturing subpattern count = 1
 Partial matching not supported  
3652  No options  No options
3653  No first char  No first char
3654  No need char  No need char
# Line 3737  Callout 0: last capture = 1 Line 3671  Callout 0: last capture = 1
3671      ^     ^    )      ^     ^    )
3672   0: 123456   0: 123456
3673   1: 456   1: 456
3674      123456789\C+      123456789\C+
3675  Callout 0: last capture = -1  Callout 0: last capture = -1
3676   0: <unset>   0: <unset>
3677  --->123456789  --->123456789
# Line 3755  Callout 0: last capture = 1 Line 3689  Callout 0: last capture = 1
3689   0: 123456789   0: 123456789
3690   1: 789   1: 789
3691    
3692  /((xyz)(?C)p|(?C1)xyzabc)/  /((xyz)(?C)p|(?C1)xyzabc)/I
3693  Capturing subpattern count = 2  Capturing subpattern count = 2
3694  No options  No options
3695  First char = 'x'  First char = 'x'
# Line 3774  Callout 1: last capture = -1 Line 3708  Callout 1: last capture = -1
3708   0: xyzabc   0: xyzabc
3709   1: xyzabc   1: xyzabc
3710    
3711  /(X)((xyz)(?C)p|(?C1)xyzabc)/  /(X)((xyz)(?C)p|(?C1)xyzabc)/I
3712  Capturing subpattern count = 3  Capturing subpattern count = 3
3713  No options  No options
3714  First char = 'X'  First char = 'X'
# Line 3796  Callout 1: last capture = 1 Line 3730  Callout 1: last capture = 1
3730   1: X   1: X
3731   2: xyzabc   2: xyzabc
3732    
3733  /(?=(abc))(?C)abcdef/  /(?=(abc))(?C)abcdef/I
3734  Capturing subpattern count = 1  Capturing subpattern count = 1
3735  No options  No options
3736  First char = 'a'  First char = 'a'
# Line 3809  Callout 0: last capture = 1 Line 3743  Callout 0: last capture = 1
3743      ^          a      ^          a
3744   0: abcdef   0: abcdef
3745   1: abc   1: abc
3746    
3747  /(?!(abc)(?C1)d)(?C2)abcxyz/  /(?!(abc)(?C1)d)(?C2)abcxyz/I
3748  Capturing subpattern count = 1  Capturing subpattern count = 1
3749  No options  No options
3750  First char = 'a'  First char = 'a'
3751  Need char = 'z'  Need char = 'z'
3752      abcxyz\C+      abcxyz\C+
3753  Callout 1: last capture = 1  Callout 1: last capture = 1
3754   0: <unset>   0: <unset>
3755   1: abc   1: abc
# Line 3827  Callout 2: last capture = -1 Line 3761  Callout 2: last capture = -1
3761      ^          a      ^          a
3762   0: abcxyz   0: abcxyz
3763    
3764  /(?<=(abc)(?C))xyz/  /(?<=(abc)(?C))xyz/I
3765  Capturing subpattern count = 1  Capturing subpattern count = 1
3766  No options  No options
3767  First char = 'x'  First char = 'x'
3768  Need char = 'z'  Need char = 'z'
3769    Max lookbehind = 3
3770     abcxyz\C+     abcxyz\C+
3771  Callout 0: last capture = 1  Callout 0: last capture = 1
3772   0: <unset>   0: <unset>
# Line 3840  Callout 0: last capture = 1 Line 3775  Callout 0: last capture = 1
3775         ^       )         ^       )
3776   0: xyz   0: xyz
3777   1: abc   1: abc
3778    
3779  /(?C)abc/  /a(b+)(c*)(?C1)/I
3780  Capturing subpattern count = 0  Capturing subpattern count = 2
3781  No options  No options
3782  First char = 'a'  First char = 'a'
3783  Need char = 'c'  Need char = 'b'
3784        abbbbbccc\C*1
3785  /(?C)^abc/  --->abbbbbccc
3786  Capturing subpattern count = 0    1 ^        ^
3787  Options: anchored  Callout data = 1
3788  No first char    1 ^       ^
3789  No need char  Callout data = 1
3790      1 ^      ^
3791    Callout data = 1
3792      1 ^     ^
3793    Callout data = 1
3794      1 ^    ^
3795    Callout data = 1
3796      1 ^   ^
3797    Callout data = 1
3798      1 ^  ^
3799    Callout data = 1
3800      1 ^ ^
3801    Callout data = 1
3802    No match
3803    
3804  /(?C)a|b/S  /a(b+?)(c*?)(?C1)/I
3805  Capturing subpattern count = 0  Capturing subpattern count = 2
3806  No options  No options
3807  No first char  First char = 'a'
3808  No need char  Need char = 'b'
3809  Starting byte set: a b      abbbbbccc\C*1
3810    --->abbbbbccc
3811  /(?R)/    1 ^ ^
3812    Callout data = 1
3813      1 ^  ^
3814    Callout data = 1
3815      1 ^   ^
3816    Callout data = 1
3817      1 ^    ^
3818    Callout data = 1
3819      1 ^     ^
3820    Callout data = 1
3821      1 ^      ^
3822    Callout data = 1
3823      1 ^       ^
3824    Callout data = 1
3825      1 ^        ^
3826    Callout data = 1
3827    No match
3828    
3829    /(?C)abc/I
3830    Capturing subpattern count = 0
3831    No options
3832    First char = 'a'
3833    Need char = 'c'
3834    
3835    /(?C)^abc/I
3836    Capturing subpattern count = 0
3837    Options: anchored
3838    No first char
3839    No need char
3840    
3841    /(?C)a|b/IS
3842    Capturing subpattern count = 0
3843    No options
3844    No first char
3845    No need char
3846    Subject length lower bound = 1
3847    Starting byte set: a b
3848    
3849    /(?R)/I
3850  Failed: recursive call could loop indefinitely at offset 3  Failed: recursive call could loop indefinitely at offset 3
3851    
3852  /(a|(?R))/  /(a|(?R))/I
3853  Failed: recursive call could loop indefinitely at offset 6  Failed: recursive call could loop indefinitely at offset 6
3854    
3855  /(ab|(bc|(de|(?R))))/  /(ab|(bc|(de|(?R))))/I
3856  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3857    
3858  /x(ab|(bc|(de|(?R))))/  /x(ab|(bc|(de|(?R))))/I
3859  Capturing subpattern count = 3  Capturing subpattern count = 3
3860  No options  No options
3861  First char = 'x'  First char = 'x'
# Line 3898  No need char Line 3884  No need char
3884   3: xxab   3: xxab
3885      *** Failers      *** Failers
3886  No match  No match
3887      xyab      xyab
3888  No match  No match
3889    
3890  /(ab|(bc|(de|(?1))))/  /(ab|(bc|(de|(?1))))/I
3891  Failed: recursive call could loop indefinitely at offset 15  Failed: recursive call could loop indefinitely at offset 15
3892    
3893  /x(ab|(bc|(de|(?1)x)x)x)/  /x(ab|(bc|(de|(?1)x)x)x)/I
3894  Failed: recursive call could loop indefinitely at offset 16  Failed: recursive call could loop indefinitely at offset 16
3895    
3896  /^([^()]|\((?1)*\))*$/  /^([^()]|\((?1)*\))*$/I
3897  Capturing subpattern count = 1  Capturing subpattern count = 1
3898  Options: anchored  Options: anchored
3899  No first char  No first char
# Line 3918  No need char Line 3904  No need char
3904      a(b)c      a(b)c
3905   0: a(b)c   0: a(b)c
3906   1: c   1: c
3907      a(b(c))d      a(b(c))d
3908   0: a(b(c))d   0: a(b(c))d
3909   1: d   1: d
3910      *** Failers)      *** Failers)
3911  No match  No match
3912      a(b(c)d      a(b(c)d
3913  No match  No match
3914    
3915  /^>abc>([^()]|\((?1)*\))*<xyz<$/  /^>abc>([^()]|\((?1)*\))*<xyz<$/I
3916  Capturing subpattern count = 1  Capturing subpattern count = 1
3917  Options: anchored  Options: anchored
3918  No first char  No first char
# Line 3941  Need char = '<' Line 3927  Need char = '<'
3927   0: >abc>(1(2)3)<xyz<   0: >abc>(1(2)3)<xyz<
3928   1: (1(2)3)   1: (1(2)3)
3929    
3930  /(a(?1)b)/D  /(a(?1)b)/DZ
3931  ------------------------------------------------------------------  ------------------------------------------------------------------
3932    0  16 Bra 0          Bra
3933    3  10 Bra 1          CBra 1
3934    6     a          a
3935    8   3 Recurse          Recurse
3936   11     b          b
3937   13  10 Ket          Ket
3938   16  16 Ket          Ket
3939   19     End          End
3940  ------------------------------------------------------------------  ------------------------------------------------------------------
3941  Capturing subpattern count = 1  Capturing subpattern count = 1
3942  No options  No options
3943  First char = 'a'  First char = 'a'
3944  Need char = 'b'  Need char = 'b'
3945    
3946  /(a(?1)+b)/D  /(a(?1)+b)/DZ
3947  ------------------------------------------------------------------  ------------------------------------------------------------------
3948    0  22 Bra 0          Bra
3949    3  16 Bra 1          CBra 1
3950    6     a          a
3951    8   6 Bra 0          Once
3952   11   3 Recurse          Recurse
3953   14   6 KetRmax          KetRmax
3954   17     b          b
3955   19  16 Ket          Ket
3956   22  22 Ket          Ket
3957   25     End          End
3958  ------------------------------------------------------------------  ------------------------------------------------------------------
3959  Capturing subpattern count = 1  Capturing subpattern count = 1
3960  No options  No options
3961  First char = 'a'  First char = 'a'
3962  Need char = 'b'  Need char = 'b'
3963    
3964  /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/i  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
 Capturing subpattern count = 4  
 Max back reference = 4  
 Partial matching not supported  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
 /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/  
3965  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
3966  Options: anchored  Options: anchored
3967  No first char  No first char
3968  No need char  No need char
# Line 4029  No need char Line 3980  No need char
3980  No match  No match
3981      ((2+2)*-3)-7)      ((2+2)*-3)-7)
3982  No match  No match
3983    
3984  /^(x(y|(?1){2})z)/  /^(x(y|(?1){2})z)/I
3985  Capturing subpattern count = 2  Capturing subpattern count = 2
3986  Options: anchored  Options: anchored
3987  No first char  No first char
# Line 4039  No need char Line 3990  No need char
3990   0: xyz   0: xyz
3991   1: xyz   1: xyz
3992   2: y   2: y
3993      xxyzxyzz      xxyzxyzz
3994   0: xxyzxyzz   0: xxyzxyzz
3995   1: xxyzxyzz   1: xxyzxyzz
3996   2: xyzxyz   2: xyzxyz
# Line 4047  No need char Line 3998  No need char
3998  No match  No match
3999      xxyzz      xxyzz
4000  No match  No match
4001      xxyzxyzxyzz      xxyzxyzxyzz
4002  No match  No match
4003    
4004  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/x  /((< (?: (?(R) \d++  | [^<>]*+) | (?2)) * >))/Ix
4005  Capturing subpattern count = 2  Capturing subpattern count = 2
 Partial matching not supported  
4006  Options: extended  Options: extended
4007  First char = '<'  First char = '<'
4008  Need char = '>'  Need char = '>'
# Line 4072  Need char = '>' Line 4022  Need char = '>'
4022   0: <def>   0: <def>
4023   1: <def>   1: <def>
4024   2: <def>   2: <def>
4025      <abc<>def>      <abc<>def>
4026   0: <abc<>def>   0: <abc<>def>
4027   1: <abc<>def>   1: <abc<>def>
4028   2: <abc<>def>   2: <abc<>def>
4029      <abc<>      <abc<>
4030   0: <>   0: <>
4031   1: <>   1: <>
4032   2: <>   2: <>
# Line 4085  No match Line 4035  No match
4035      <abc      <abc
4036  No match  No match
4037    
4038  /(?1)/  /(?1)/I
4039  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
4040    
4041  /((?2)(abc)/  /((?2)(abc)/I
4042  Failed: reference to non-existent subpattern at offset 4  Failed: missing ) at offset 10
4043    
4044  /^(abc)def(?1)/  /^(abc)def(?1)/I
4045  Capturing subpattern count = 1  Capturing subpattern count = 1
4046  Options: anchored  Options: anchored
4047  No first char  No first char
# Line 4100  No need char Line 4050  No need char
4050   0: abcdefabc   0: abcdefabc
4051   1: abc   1: abc
4052    
4053  /^(a|b|c)=(?1)+/  /^(a|b|c)=(?1)+/I
4054  Capturing subpattern count = 1  Capturing subpattern count = 1
4055  Options: anchored  Options: anchored
4056  No first char  No first char
# Line 4111  No need char Line 4061  No need char
4061      a=b      a=b
4062   0: a=b   0: a=b
4063   1: a   1: a
4064      a=bc      a=bc
4065   0: a=bc   0: a=bc
4066   1: a   1: a
4067    
4068  /^(a|b|c)=((?1))+/  /^(a|b|c)=((?1))+/I
4069  Capturing subpattern count = 2  Capturing subpattern count = 2
4070  Options: anchored  Options: anchored
4071  No first char  No first char
# Line 4128  No need char Line 4078  No need char
4078   0: a=b   0: a=b
4079   1: a   1: a
4080   2: b   2: b
4081      a=bc      a=bc
4082   0: a=bc   0: a=bc
4083   1: a   1: a
4084   2: c   2: c
4085    
4086  /a(?P<name1>b|c)d(?P<longername2>e)/D  /a(?P<name1>b|c)d(?P<longername2>e)/DZ
4087  ------------------------------------------------------------------  ------------------------------------------------------------------
4088    0  28 Bra 0          Bra
4089    3     a          a
4090    5   5 Bra 1          CBra 1
4091    8     b          b
4092   10   5 Alt          Alt
4093   13     c          c
4094   15  10 Ket          Ket
4095   18     d          d
4096   20   5 Br