/[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 448 by ph10, Tue Sep 15 19:11:48 2009 UTC revision 744 by zherczeg, Sun Nov 13 16:31:38 2011 UTC
# Line 1  Line 1 
1    /-- This set of tests is not Perl-compatible. It checks on special features
2        of PCRE's API, error diagnostics, and the compiled code of some patterns.
3        It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4        Oniguruma). Finally, there are some tests where PCRE and Perl differ,
5        either because PCRE can't be compatible, or there is a possible Perl
6        bug. --/
7    
8    /-- Originally, the Perl >= 5.10 things were in here too, but now I have
9        separated many (most?) of them out into test 11. However, there may still
10        be some that were overlooked. --/
11    
12  /(a)b|/I  /(a)b|/I
13  Capturing subpattern count = 1  Capturing subpattern count = 1
14  No options  No options
# Line 92  Failed: missing terminating ] for charac Line 103  Failed: missing terminating ] for charac
103  /(?X)[\B]/  /(?X)[\B]/
104  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
105    
106    /(?X)[\R]/
107    Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\X]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /[\B]/BZ
113    ------------------------------------------------------------------
114            Bra
115            B
116            Ket
117            End
118    ------------------------------------------------------------------
119    
120    /[\R]/BZ
121    ------------------------------------------------------------------
122            Bra
123            R
124            Ket
125            End
126    ------------------------------------------------------------------
127    
128    /[\X]/BZ
129    ------------------------------------------------------------------
130            Bra
131            X
132            Ket
133            End
134    ------------------------------------------------------------------
135    
136  /[z-a]/  /[z-a]/
137  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
138    
# Line 134  Capturing subpattern count = 0 Line 175  Capturing subpattern count = 0
175  No options  No options
176  No first char  No first char
177  No need char  No need char
178    Subject length lower bound = 3
179  Starting byte set: c d e  Starting byte set: c d e
180      this sentence eventually mentions a cat      this sentence eventually mentions a cat
181   0: cat   0: cat
# Line 145  Capturing subpattern count = 0 Line 187  Capturing subpattern count = 0
187  Options: caseless  Options: caseless
188  No first char  No first char
189  No need char  No need char
190    Subject length lower bound = 3
191  Starting byte set: C D E c d e  Starting byte set: C D E c d e
192      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
193   0: CAT   0: CAT
# Line 156  Capturing subpattern count = 0 Line 199  Capturing subpattern count = 0
199  No options  No options
200  No first char  No first char
201  No need char  No need char
202    Subject length lower bound = 1
203  Starting byte set: a b c d  Starting byte set: a b c d
204    
205  /(a|[^\dZ])/IS  /(a|[^\dZ])/IS
# Line 163  Capturing subpattern count = 1 Line 207  Capturing subpattern count = 1
207  No options  No options
208  No first char  No first char
209  No need char  No need char
210    Subject length lower bound = 1
211  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a  Starting byte set: \x00 \x01 \x02 \x03 \x04 \x05 \x06 \x07 \x08 \x09 \x0a
212    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19    \x0b \x0c \x0d \x0e \x0f \x10 \x11 \x12 \x13 \x14 \x15 \x16 \x17 \x18 \x19
213    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 183  Capturing subpattern count = 1 Line 228  Capturing subpattern count = 1
228  No options  No options
229  No first char  No first char
230  No need char  No need char
231    Subject length lower bound = 1
232  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
233    
234  /(ab\2)/  /(ab\2)/
# Line 516  Capturing subpattern count = 0 Line 562  Capturing subpattern count = 0
562  No options  No options
563  No first char  No first char
564  No need char  No need char
565    Subject length lower bound = 1
566  Starting byte set: a b c d  Starting byte set: a b c d
567    
568  /(?i)[abcd]/IS  /(?i)[abcd]/IS
# Line 523  Capturing subpattern count = 0 Line 570  Capturing subpattern count = 0
570  Options: caseless  Options: caseless
571  No first char  No first char
572  No need char  No need char
573    Subject length lower bound = 1
574  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
575    
576  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
# Line 530  Capturing subpattern count = 1 Line 578  Capturing subpattern count = 1
578  Options: multiline  Options: multiline
579  No first char  No first char
580  No need char  No need char
581    Subject length lower bound = 1
582  Starting byte set: b c x y  Starting byte set: b c x y
583    
584  /(^a|^b)/Im  /(^a|^b)/Im
# Line 583  Need char = 'h' (caseless) Line 632  Need char = 'h' (caseless)
632  ------------------------------------------------------------------  ------------------------------------------------------------------
633          Bra          Bra
634          CBra 1          CBra 1
635       01 Opt       /i b
      NC b  
636          Ket          Ket
      00 Opt  
637          Ket          Ket
638          End          End
639  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 594  Capturing subpattern count = 1 Line 641  Capturing subpattern count = 1
641  No options  No options
642  First char = 'b' (caseless)  First char = 'b' (caseless)
643  No need char  No need char
644  Study returned NULL  Subject length lower bound = 1
645    No set of starting bytes
646    
647  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
648  Capturing subpattern count = 1  Capturing subpattern count = 1
649  No options  No options
650  No first char  No first char
651  No need char  No need char
652    Subject length lower bound = 1
653  Starting byte set: C a b c d  Starting byte set: C a b c d
654    
655  /a$/I  /a$/I
# Line 665  Capturing subpattern count = 0 Line 714  Capturing subpattern count = 0
714  No options  No options
715  No first char  No first char
716  No need char  No need char
717    Subject length lower bound = 1
718  Starting byte set: a b  Starting byte set: a b
719    
720  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 672  Capturing subpattern count = 1 Line 722  Capturing subpattern count = 1
722  No options  No options
723  No first char  No first char
724  Need char = 'a'  Need char = 'a'
725    Subject length lower bound = 5
726  Starting byte set: a o  Starting byte set: a o
727    
728  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 679  Capturing subpattern count = 0 Line 730  Capturing subpattern count = 0
730  No options  No options
731  No first char  No first char
732  No need char  No need char
733    Subject length lower bound = 1
734  Starting byte set: a b  Starting byte set: a b
735    
736  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
# Line 833  No match Line 885  No match
885      a      a
886  No match  No match
887    
888  /This one is here because I think Perl 5.005_02 gets the setting of $1 wrong/I  /This one is here because Perl behaves differently; see also the following/I
889  Capturing subpattern count = 0  Capturing subpattern count = 0
890  No options  No options
891  First char = 'T'  First char = 'T'
# Line 845  Max back reference = 1 Line 897  Max back reference = 1
897  Options: anchored  Options: anchored
898  No first char  No first char
899  No need char  No need char
900        aaaa
901    No match
902      aaaaaa      aaaaaa
903   0: aaaaaa  No match
904   1: aa  
905    /Perl does not fail these two for the final subjects. Neither did PCRE until/
906    /release 8.01. The problem is in backtracking into a subpattern that contains/
907    No match
908    /a recursive reference to itself. PCRE has now made these into atomic patterns./
909    No match
910    
911    /^(xa|=?\1a){2}$/
912        xa=xaa
913     0: xa=xaa
914     1: =xaa
915        ** Failers
916    No match
917        xa=xaaa
918    No match
919    
920    /^(xa|=?\1a)+$/
921        xa=xaa
922     0: xa=xaa
923     1: =xaa
924        ** Failers
925    No match
926        xa=xaaa
927    No match
928    
929  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
930  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1168  No need char Line 1245  No need char
1245  ------------------------------------------------------------------  ------------------------------------------------------------------
1246          Bra          Bra
1247          Bra          Bra
      04 Opt  
1248          AllAny*          AllAny*
1249          X          X
1250          Alt          Alt
      04 Opt  
1251          ^          ^
1252          B          B
1253          Ket          Ket
      00 Opt  
1254          Ket          Ket
1255          End          End
1256  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1647  Capturing subpattern count = 0 Line 1721  Capturing subpattern count = 0
1721  Options: anchored  Options: anchored
1722  No first char  No first char
1723  Need char = 'd'  Need char = 'd'
1724  Study returned NULL  Subject length lower bound = 4
1725    No set of starting bytes
1726    
1727  /\(             # ( at start  /\(             # ( at start
1728    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1879  Capturing subpattern count = 0 Line 1954  Capturing subpattern count = 0
1954  No options  No options
1955  No first char  No first char
1956  No need char  No need char
1957    Subject length lower bound = 1
1958  Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z  Starting byte set: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
1959    _ a b c d e f g h i j k l m n o p q r s t u v w x y z    _ a b c d e f g h i j k l m n o p q r s t u v w x y z
1960    
# Line 1940  Contains explicit CR or LF match Line 2016  Contains explicit CR or LF match
2016  No options  No options
2017  No first char  No first char
2018  No need char  No need char
2019    Subject length lower bound = 1
2020  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2021    
2022  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2682  No need char Line 2759  No need char
2759  ------------------------------------------------------------------  ------------------------------------------------------------------
2760          Bra          Bra
2761          a          a
2762       01 Opt       /i b
      NC b  
2763          Ket          Ket
2764          End          End
2765  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2705  No match Line 2781  No match
2781          Bra          Bra
2782          CBra 1          CBra 1
2783          a          a
2784       01 Opt       /i b
      NC b  
2785          Ket          Ket
      00 Opt  
2786          Ket          Ket
2787          End          End
2788  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2730  No match Line 2804  No match
2804  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2805  ------------------------------------------------------------------  ------------------------------------------------------------------
2806          Bra          Bra
2807       NC abc       /i abc
2808          Ket          Ket
2809          End          End
2810  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2743  Need char = 'c' (caseless) Line 2817  Need char = 'c' (caseless)
2817    (?i)abc/IxDZ    (?i)abc/IxDZ
2818  ------------------------------------------------------------------  ------------------------------------------------------------------
2819          Bra          Bra
2820       NC abc       /i abc
2821          Ket          Ket
2822          End          End
2823  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2916  No need char Line 2990  No need char
2990  /(x)*+/DZ  /(x)*+/DZ
2991  ------------------------------------------------------------------  ------------------------------------------------------------------
2992          Bra          Bra
2993          Once          Braposzero
2994          Brazero          CBraPos 1
         CBra 1  
2995          x          x
2996          KetRmax          KetRpos
         Ket  
2997          Ket          Ket
2998          End          End
2999  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3146  Failed: POSIX collating elements are not Line 3218  Failed: POSIX collating elements are not
3218  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
3219    
3220  /\l/I  /\l/I
3221  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
3222    
3223  /\L/I  /\L/I
3224  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
3225    
3226  /\N{name}/I  /\N{name}/I
3227  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
3228    
3229  /\u/I  /\u/I
3230  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
3231    
3232  /\U/I  /\U/I
3233  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
3234    
3235  /[/I  /[/I
3236  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3410  Capturing subpattern count = 0 Line 3482  Capturing subpattern count = 0
3482  No options  No options
3483  No first char  No first char
3484  No need char  No need char
3485    Subject length lower bound = 1
3486  Starting byte set: a b  Starting byte set: a b
3487    
3488  /[^a]/I  /[^a]/I
# Line 3429  Capturing subpattern count = 0 Line 3502  Capturing subpattern count = 0
3502  No options  No options
3503  No first char  No first char
3504  Need char = '6'  Need char = '6'
3505    Subject length lower bound = 4
3506  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
3507    
3508  /a^b/I  /a^b/I
# Line 3462  Capturing subpattern count = 0 Line 3536  Capturing subpattern count = 0
3536  Options: caseless  Options: caseless
3537  No first char  No first char
3538  No need char  No need char
3539    Subject length lower bound = 1
3540  Starting byte set: A B a b  Starting byte set: A B a b
3541    
3542  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3469  Capturing subpattern count = 0 Line 3544  Capturing subpattern count = 0
3544  No options  No options
3545  No first char  No first char
3546  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3547    Subject length lower bound = 3
3548  Starting byte set: a b  Starting byte set: a b
3549    
3550  /abc(?C)def/I  /abc(?C)def/I
# Line 3504  Need char = 'f' Line 3580  Need char = 'f'
3580    1    ^    ^     f    1    ^    ^     f
3581   0: abcdef   0: abcdef
3582    
3583  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3584    Capturing subpattern count = 0
3585    No options
3586    No first char
3587    Need char = 'f'
3588    Subject length lower bound = 7
3589    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3590        1234abcdef
3591    --->1234abcdef
3592      1 ^              \d
3593      1  ^             \d
3594      1   ^            \d
3595      1    ^           \d
3596      2    ^   ^       d
3597     0: 4abcdef
3598        *** Failers
3599    No match
3600        abcdef
3601    No match
3602    
3603    /(?C1)\dabc(?C2)def/ISS
3604  Capturing subpattern count = 0  Capturing subpattern count = 0
3605  No options  No options
3606  No first char  No first char
# Line 3819  Capturing subpattern count = 0 Line 3915  Capturing subpattern count = 0
3915  No options  No options
3916  No first char  No first char
3917  No need char  No need char
3918    Subject length lower bound = 1
3919  Starting byte set: a b  Starting byte set: a b
3920    
3921  /(?R)/I  /(?R)/I
# Line 3907  Need char = '<' Line 4004  Need char = '<'
4004          Bra          Bra
4005          CBra 1          CBra 1
4006          a          a
         Once  
4007          Recurse          Recurse
         Ket  
4008          b          b
4009          Ket          Ket
4010          Ket          Ket
# Line 3938  No options Line 4033  No options
4033  First char = 'a'  First char = 'a'
4034  Need char = 'b'  Need char = 'b'
4035    
 /^\W*(?:((.)\W*(?1)\W*\2|)|((.)\W*(?3)\W*\4|\W*.\W*))\W*$/Ii  
 Capturing subpattern count = 4  
 Max back reference = 4  
 Options: anchored caseless  
 No first char  
 No need char  
     1221  
  0: 1221  
  1: 1221  
  2: 1  
     Satan, oscillate my metallic sonatas!  
  0: Satan, oscillate my metallic sonatas!  
  1: <unset>  
  2: <unset>  
  3: Satan, oscillate my metallic sonatas  
  4: S  
     A man, a plan, a canal: Panama!  
  0: A man, a plan, a canal: Panama!  
  1: <unset>  
  2: <unset>  
  3: A man, a plan, a canal: Panama  
  4: A  
     Able was I ere I saw Elba.  
  0: Able was I ere I saw Elba.  
  1: <unset>  
  2: <unset>  
  3: Able was I ere I saw Elba  
  4: A  
     *** Failers  
 No match  
     The quick brown fox  
 No match  
   
4036  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4037  Capturing subpattern count = 2  Capturing subpattern count = 2
4038  Options: anchored  Options: anchored
# Line 4163  Need char = 'a' Line 4225  Need char = 'a'
4225          Any          Any
4226          \1          \1
4227          bbb          bbb
         Once  
4228          Recurse          Recurse
         Ket  
4229          d          d
4230          Ket          Ket
4231          End          End
# Line 4537  Need char = ']' Line 4597  Need char = ']'
4597          a          a
4598          CBra 2          CBra 2
4599          b          b
         Once  
4600          Recurse          Recurse
         Ket  
4601          c          c
4602          Ket          Ket
4603          Ket          Ket
# Line 4559  No need char Line 4617  No need char
4617          a          a
4618          CBra 2          CBra 2
4619          b          b
         Once  
4620          Recurse          Recurse
         Ket  
4621          c          c
4622          Ket          Ket
4623          KetRmax          KetRmax
# Line 4582  No need char Line 4638  No need char
4638          a          a
4639          CBra 2          CBra 2
4640          b          b
         Once  
4641          Recurse          Recurse
         Ket  
4642          c          c
4643          Ket          Ket
4644          Ket          Ket
# Line 4593  No need char Line 4647  No need char
4647          a          a
4648          CBra 2          CBra 2
4649          b          b
         Once  
4650          Recurse          Recurse
         Ket  
4651          c          c
4652          Ket          Ket
4653          Ket          Ket
# Line 4636  Capturing subpattern count = 3 Line 4688  Capturing subpattern count = 3
4688  Options: caseless  Options: caseless
4689  No first char  No first char
4690  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4691  Study returned NULL  Subject length lower bound = 8
4692    No set of starting bytes
4693       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4694   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4695   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4654  Capturing subpattern count = 0 Line 4707  Capturing subpattern count = 0
4707  No options  No options
4708  No first char  No first char
4709  Need char = 'b'  Need char = 'b'
4710  Study returned NULL  Subject length lower bound = 1
4711    No set of starting bytes
4712    
4713  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4714  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4674  Capturing subpattern count = 1 Line 4728  Capturing subpattern count = 1
4728  No options  No options
4729  No first char  No first char
4730  Need char = 'c'  Need char = 'c'
4731  Study returned NULL  Subject length lower bound = 1
4732    No set of starting bytes
4733    
4734  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4735  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4731  Need char = 'e' Line 4786  Need char = 'e'
4786   +4 ^   ^      e   +4 ^   ^      e
4787  No match  No match
4788    
4789  /a*b/ICDZ  /a*b/ICDZS
4790    ------------------------------------------------------------------
4791            Bra
4792            Callout 255 0 2
4793            a*+
4794            Callout 255 2 1
4795            b
4796            Callout 255 3 0
4797            Ket
4798            End
4799    ------------------------------------------------------------------
4800    Capturing subpattern count = 0
4801    Options:
4802    No first char
4803    Need char = 'b'
4804    Subject length lower bound = 1
4805    Starting byte set: a b
4806      ab
4807    --->ab
4808     +0 ^      a*
4809     +2 ^^     b
4810     +3 ^ ^
4811     0: ab
4812      aaaab
4813    --->aaaab
4814     +0 ^         a*
4815     +2 ^   ^     b
4816     +3 ^    ^
4817     0: aaaab
4818      aaaacb
4819    --->aaaacb
4820     +0 ^          a*
4821     +2 ^   ^      b
4822     +0  ^         a*
4823     +2  ^  ^      b
4824     +0   ^        a*
4825     +2   ^ ^      b
4826     +0    ^       a*
4827     +2    ^^      b
4828     +0      ^     a*
4829     +2      ^     b
4830     +3      ^^
4831     0: b
4832    
4833    /a*b/ICDZSS
4834  ------------------------------------------------------------------  ------------------------------------------------------------------
4835          Bra          Bra
4836          Callout 255 0 2          Callout 255 0 2
# Line 4814  Need char = 'b' Line 4913  Need char = 'b'
4913   +2    ^^      b   +2    ^^      b
4914  No match  No match
4915    
4916  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4917    ------------------------------------------------------------------
4918            Bra
4919            Callout 255 0 9
4920            CBra 1
4921            Callout 255 1 1
4922            a
4923            Callout 255 2 1
4924            b
4925            Callout 255 3 1
4926            c
4927            Callout 255 4 0
4928            Alt
4929            Callout 255 5 1
4930            d
4931            Callout 255 6 1
4932            e
4933            Callout 255 7 1
4934            f
4935            Callout 255 8 0
4936            Ket
4937            Callout 255 9 1
4938            x
4939            Callout 255 10 0
4940            Ket
4941            End
4942    ------------------------------------------------------------------
4943    Capturing subpattern count = 1
4944    Options:
4945    No first char
4946    Need char = 'x'
4947    Subject length lower bound = 4
4948    Starting byte set: a d
4949      abcx
4950    --->abcx
4951     +0 ^        (abc|def)
4952     +1 ^        a
4953     +2 ^^       b
4954     +3 ^ ^      c
4955     +4 ^  ^     |
4956     +9 ^  ^     x
4957    +10 ^   ^
4958     0: abcx
4959     1: abc
4960      defx
4961    --->defx
4962     +0 ^        (abc|def)
4963     +1 ^        a
4964     +5 ^        d
4965     +6 ^^       e
4966     +7 ^ ^      f
4967     +8 ^  ^     )
4968     +9 ^  ^     x
4969    +10 ^   ^
4970     0: defx
4971     1: def
4972      ** Failers
4973    No match
4974      abcdefzx
4975    --->abcdefzx
4976     +0 ^            (abc|def)
4977     +1 ^            a
4978     +2 ^^           b
4979     +3 ^ ^          c
4980     +4 ^  ^         |
4981     +9 ^  ^         x
4982     +5 ^            d
4983     +0    ^         (abc|def)
4984     +1    ^         a
4985     +5    ^         d
4986     +6    ^^        e
4987     +7    ^ ^       f
4988     +8    ^  ^      )
4989     +9    ^  ^      x
4990    No match
4991    
4992    /(abc|def)x/ICDZSS
4993  ------------------------------------------------------------------  ------------------------------------------------------------------
4994          Bra          Bra
4995          Callout 255 0 9          Callout 255 0 9
# Line 4868  Need char = 'x' Line 5043  Need char = 'x'
5043  +10 ^   ^  +10 ^   ^
5044   0: defx   0: defx
5045   1: def   1: def
5046      ** Failers
5047    No match
5048    abcdefzx    abcdefzx
5049  --->abcdefzx  --->abcdefzx
5050   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4968  No need char Line 5145  No need char
5145   0: abcdcdcd   0: abcdcdcd
5146   1: cd   1: cd
5147    
5148  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5149  ------------------------------------------------------------------  ------------------------------------------------------------------
5150          Bra          Bra
5151          Callout 255 0 14          Callout 255 0 14
# Line 5001  Capturing subpattern count = 1 Line 5178  Capturing subpattern count = 1
5178  Options:  Options:
5179  No first char  No first char
5180  No need char  No need char
5181    Subject length lower bound = 2
5182    Starting byte set: a b x
5183      Note: that { does NOT introduce a quantifier      Note: that { does NOT introduce a quantifier
5184  --->Note: that { does NOT introduce a quantifier  --->Note: that { does NOT introduce a quantifier
  +0 ^                                                ([ab]{,4}c|xy)  
  +1 ^                                                [ab]  
 +11 ^                                                x  
  +0  ^                                               ([ab]{,4}c|xy)  
  +1  ^                                               [ab]  
 +11  ^                                               x  
  +0   ^                                              ([ab]{,4}c|xy)  
  +1   ^                                              [ab]  
 +11   ^                                              x  
  +0    ^                                             ([ab]{,4}c|xy)  
  +1    ^                                             [ab]  
 +11    ^                                             x  
  +0     ^                                            ([ab]{,4}c|xy)  
  +1     ^                                            [ab]  
 +11     ^                                            x  
  +0      ^                                           ([ab]{,4}c|xy)  
  +1      ^                                           [ab]  
 +11      ^                                           x  
  +0       ^                                          ([ab]{,4}c|xy)  
  +1       ^                                          [ab]  
 +11       ^                                          x  
  +0        ^                                         ([ab]{,4}c|xy)  
  +1        ^                                         [ab]  
 +11        ^                                         x  
5185   +0         ^                                        ([ab]{,4}c|xy)   +0         ^                                        ([ab]{,4}c|xy)
5186   +1         ^                                        [ab]   +1         ^                                        [ab]
5187   +5         ^^                                       {   +5         ^^                                       {
5188  +11         ^                                        x  +11         ^                                        x
5189   +0          ^                                       ([ab]{,4}c|xy)   +0                                 ^                ([ab]{,4}c|xy)
5190   +1          ^                                       [ab]   +1                                 ^                [ab]
5191  +11          ^                                       x   +5                                 ^^               {
5192    +11                                 ^                x
5193     +0                                     ^            ([ab]{,4}c|xy)
5194     +1                                     ^            [ab]
5195     +5                                     ^^           {
5196    +11                                     ^            x
5197    No match
5198    
5199    /([ab]{,4}c|xy)/ICDZSS
5200    ------------------------------------------------------------------
5201            Bra
5202            Callout 255 0 14
5203            CBra 1
5204            Callout 255 1 4
5205            [ab]
5206            Callout 255 5 1
5207            {
5208            Callout 255 6 1
5209            ,
5210            Callout 255 7 1
5211            4
5212            Callout 255 8 1
5213            }
5214            Callout 255 9 1
5215            c
5216            Callout 255 10 0
5217            Alt
5218            Callout 255 11 1
5219            x
5220            Callout 255 12 1
5221            y
5222            Callout 255 13 0
5223            Ket
5224            Callout 255 14 0
5225            Ket
5226            End
5227    ------------------------------------------------------------------
5228    Capturing subpattern count = 1
5229    Options:
5230    No first char
5231    No need char
5232        Note: that { does NOT introduce a quantifier
5233    --->Note: that { does NOT introduce a quantifier
5234     +0 ^                                                ([ab]{,4}c|xy)
5235     +1 ^                                                [ab]
5236    +11 ^                                                x
5237     +0  ^                                               ([ab]{,4}c|xy)
5238     +1  ^                                               [ab]
5239    +11  ^                                               x
5240     +0   ^                                              ([ab]{,4}c|xy)
5241     +1   ^                                              [ab]
5242    +11   ^                                              x
5243     +0    ^                                             ([ab]{,4}c|xy)
5244     +1    ^                                             [ab]
5245    +11    ^                                             x
5246     +0     ^                                            ([ab]{,4}c|xy)
5247     +1     ^                                            [ab]
5248    +11     ^                                            x
5249     +0      ^                                           ([ab]{,4}c|xy)
5250     +1      ^                                           [ab]
5251    +11      ^                                           x
5252     +0       ^                                          ([ab]{,4}c|xy)
5253     +1       ^                                          [ab]
5254    +11       ^                                          x
5255     +0        ^                                         ([ab]{,4}c|xy)
5256     +1        ^                                         [ab]
5257    +11        ^                                         x
5258     +0         ^                                        ([ab]{,4}c|xy)
5259     +1         ^                                        [ab]
5260     +5         ^^                                       {
5261    +11         ^                                        x
5262     +0          ^                                       ([ab]{,4}c|xy)
5263     +1          ^                                       [ab]
5264    +11          ^                                       x
5265   +0           ^                                      ([ab]{,4}c|xy)   +0           ^                                      ([ab]{,4}c|xy)
5266   +1           ^                                      [ab]   +1           ^                                      [ab]
5267  +11           ^                                      x  +11           ^                                      x
# Line 5420  No match Line 5648  No match
5648      123456\P      123456\P
5649  No match  No match
5650    
5651  /abc/I>testsavedregex  /abc/IS>testsavedregex
5652    Capturing subpattern count = 0
5653    No options
5654    First char = 'a'
5655    Need char = 'c'
5656    Subject length lower bound = 3
5657    No set of starting bytes
5658    Compiled pattern written to testsavedregex
5659    Study data written to testsavedregex
5660    <testsavedregex
5661    Compiled pattern loaded from testsavedregex
5662    Study data loaded from testsavedregex
5663        abc
5664     0: abc
5665        ** Failers
5666    No match
5667        bca
5668    No match
5669    
5670    /abc/ISS>testsavedregex
5671  Capturing subpattern count = 0  Capturing subpattern count = 0
5672  No options  No options
5673  First char = 'a'  First char = 'a'
5674  Need char = 'c'  Need char = 'c'
5675  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5676  <testsavedregex  <testsavedregex
5677  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5678  No study data  No study data
5679      abc      abc
5680   0: abc   0: abc
# Line 5436  No match Line 5683  No match
5683      bca      bca
5684  No match  No match
5685    
5686  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5687    Capturing subpattern count = 0
5688    No options
5689    First char = 'a'
5690    Need char = 'c'
5691    Subject length lower bound = 3
5692    No set of starting bytes
5693    Compiled pattern written to testsavedregex
5694    Study data written to testsavedregex
5695    <testsavedregex
5696    Compiled pattern (byte-inverted) loaded from testsavedregex
5697    Study data loaded from testsavedregex
5698        abc
5699     0: abc
5700        ** Failers
5701    No match
5702        bca
5703    No match
5704    
5705    /abc/IFSS>testsavedregex
5706  Capturing subpattern count = 0  Capturing subpattern count = 0
5707  No options  No options
5708  First char = 'a'  First char = 'a'
5709  Need char = 'c'  Need char = 'c'
5710  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5711  <testsavedregex  <testsavedregex
5712  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5713  No study data  No study data
5714      abc      abc
5715   0: abc   0: abc
# Line 5457  Capturing subpattern count = 1 Line 5723  Capturing subpattern count = 1
5723  No options  No options
5724  No first char  No first char
5725  No need char  No need char
5726    Subject length lower bound = 1
5727  Starting byte set: a b  Starting byte set: a b
5728  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5729  Study data written to testsavedregex  Study data written to testsavedregex
5730  <testsavedregex  <testsavedregex
5731  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5732  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5733      abc      abc
5734   0: a   0: a
# Line 5472  Study data loaded from testsavedregex Line 5739  Study data loaded from testsavedregex
5739      def      def
5740  No match  No match
5741    
5742    /(a|b)/ISS>testsavedregex
5743    Capturing subpattern count = 1
5744    No options
5745    No first char
5746    No need char
5747    Compiled pattern written to testsavedregex
5748    <testsavedregex
5749    Compiled pattern loaded from testsavedregex
5750    No study data
5751        abc
5752     0: a
5753     1: a
5754        ** Failers
5755     0: a
5756     1: a
5757        def
5758    No match
5759    
5760  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5761  Capturing subpattern count = 1  Capturing subpattern count = 1
5762  No options  No options
5763  No first char  No first char
5764  No need char  No need char
5765    Subject length lower bound = 1
5766  Starting byte set: a b  Starting byte set: a b
5767  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5768  Study data written to testsavedregex  Study data written to testsavedregex
5769  <testsavedregex  <testsavedregex
5770  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5771  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5772      abc      abc
5773   0: a   0: a
# Line 5492  Study data loaded from testsavedregex Line 5778  Study data loaded from testsavedregex
5778      def      def
5779  No match  No match
5780    
5781    /(a|b)/ISSF>testsavedregex
5782    Capturing subpattern count = 1
5783    No options
5784    No first char
5785    No need char
5786    Compiled pattern written to testsavedregex
5787    <testsavedregex
5788    Compiled pattern (byte-inverted) loaded from testsavedregex
5789    No study data
5790        abc
5791     0: a
5792     1: a
5793        ** Failers
5794     0: a
5795     1: a
5796        def
5797    No match
5798    
5799  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5800  Capturing subpattern count = 3  Capturing subpattern count = 3
5801  Max back reference = 1  Max back reference = 1
5802  Options: multiline dotall  Options: multiline dotall
5803  First char = '<'  First char = '<'
5804  Need char = '>'  Need char = '>'
5805      <!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>      \J1024<!DOCTYPE seite SYSTEM "http://www.lco.lineas.de/xmlCms.dtd">\n<seite>\n<dokumenteninformation>\n<seitentitel>Partner der LCO</seitentitel>\n<sprache>de</sprache>\n<seitenbeschreibung>Partner der LINEAS Consulting\nGmbH</seitenbeschreibung>\n<schluesselworte>LINEAS Consulting GmbH Hamburg\nPartnerfirmen</schluesselworte>\n<revisit>30 days</revisit>\n<robots>index,follow</robots>\n<menueinformation>\n<aktiv>ja</aktiv>\n<menueposition>3</menueposition>\n<menuetext>Partner</menuetext>\n</menueinformation>\n<lastedited>\n<autor>LCO</autor>\n<firma>LINEAS Consulting</firma>\n<datum>15.10.2003</datum>\n</lastedited>\n</dokumenteninformation>\n<inhalt>\n\n<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\nGmbH</absatzueberschrift>\n\n<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\n<bild name="logo_ca.gif" rahmen="no"/></link> <link\nziel="http://www.ey.com/" zielfenster="_blank"><bild\nname="logo_euy.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\n<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\n\n<absatz><link ziel="http://www.atelion.de/"\nzielfenster="_blank"><bild\nname="logo_atelion.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><link ziel="http://www.line-information.de/"\nzielfenster="_blank">\n<bild name="logo_line_information.gif" rahmen="no"/></link>\n</absatz>\n\n<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\n\n<absatz><link ziel="http://www.incognis.de/"\nzielfenster="_blank"><bild\nname="logo_incognis.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.addcraft.com/"\nzielfenster="_blank"><bild\nname="logo_addcraft.gif" rahmen="no"/></link></absatz>\n\n<absatz><link ziel="http://www.comendo.com/"\nzielfenster="_blank"><bild\nname="logo_comendo.gif" rahmen="no"/></link></absatz>\n\n</inhalt>\n</seite>
5806   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>   0: <seite>\x0a<dokumenteninformation>\x0a<seitentitel>Partner der LCO</seitentitel>\x0a<sprache>de</sprache>\x0a<seitenbeschreibung>Partner der LINEAS Consulting\x0aGmbH</seitenbeschreibung>\x0a<schluesselworte>LINEAS Consulting GmbH Hamburg\x0aPartnerfirmen</schluesselworte>\x0a<revisit>30 days</revisit>\x0a<robots>index,follow</robots>\x0a<menueinformation>\x0a<aktiv>ja</aktiv>\x0a<menueposition>3</menueposition>\x0a<menuetext>Partner</menuetext>\x0a</menueinformation>\x0a<lastedited>\x0a<autor>LCO</autor>\x0a<firma>LINEAS Consulting</firma>\x0a<datum>15.10.2003</datum>\x0a</lastedited>\x0a</dokumenteninformation>\x0a<inhalt>\x0a\x0a<absatzueberschrift>Die Partnerfirmen der LINEAS Consulting\x0aGmbH</absatzueberschrift>\x0a\x0a<absatz><link ziel="http://www.ca.com/" zielfenster="_blank">\x0a<bild name="logo_ca.gif" rahmen="no"/></link> <link\x0aziel="http://www.ey.com/" zielfenster="_blank"><bild\x0aname="logo_euy.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.cisco.de/" zielfenster="_blank">\x0a<bild name="logo_cisco.gif" rahmen="ja"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.atelion.de/"\x0azielfenster="_blank"><bild\x0aname="logo_atelion.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><link ziel="http://www.line-information.de/"\x0azielfenster="_blank">\x0a<bild name="logo_line_information.gif" rahmen="no"/></link>\x0a</absatz>\x0a\x0a<absatz><bild name="logo_aw.gif" rahmen="no"/></absatz>\x0a\x0a<absatz><link ziel="http://www.incognis.de/"\x0azielfenster="_blank"><bild\x0aname="logo_incognis.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.addcraft.com/"\x0azielfenster="_blank"><bild\x0aname="logo_addcraft.gif" rahmen="no"/></link></absatz>\x0a\x0a<absatz><link ziel="http://www.comendo.com/"\x0azielfenster="_blank"><bild\x0aname="logo_comendo.gif" rahmen="no"/></link></absatz>\x0a\x0a</inhalt>\x0a</seite>
5807   1: seite   1: seite
5808   2: \x0a   2: \x0a
# Line 6189  Capturing subpattern count = 0 Line 6493  Capturing subpattern count = 0
6493  No options  No options
6494  No first char  No first char
6495  Need char = ','  Need char = ','
6496    Subject length lower bound = 1
6497  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6498      \x0b,\x0b      \x0b,\x0b
6499   0: ,   0: ,
# Line 6493  Capturing subpattern count = 1 Line 6798  Capturing subpattern count = 1
6798  No options  No options
6799  No first char  No first char
6800  No need char  No need char
6801    Subject length lower bound = 1
6802  Starting byte set: C a b c d  Starting byte set: C a b c d
6803    
6804  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6500  Capturing subpattern count = 1 Line 6806  Capturing subpattern count = 1
6806  No options  No options
6807  No first char  No first char
6808  Need char = 'z'  Need char = 'z'
6809    Subject length lower bound = 4
6810  Starting byte set: a b  Starting byte set: a b
6811    
6812  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6507  Capturing subpattern count = 1 Line 6814  Capturing subpattern count = 1
6814  No options  No options
6815  No first char  No first char
6816  Need char = 'z'  Need char = 'z'
6817    Subject length lower bound = 4
6818  Starting byte set: a b  Starting byte set: a b
6819    
6820  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6514  Capturing subpattern count = 1 Line 6822  Capturing subpattern count = 1
6822  No options  No options
6823  No first char  No first char
6824  Need char = 'z'  Need char = 'z'
6825    Subject length lower bound = 4
6826  Starting byte set: a b c  Starting byte set: a b c
6827    
6828  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6521  Capturing subpattern count = 1 Line 6830  Capturing subpattern count = 1
6830  No options  No options
6831  No first char  No first char
6832  Need char = 'z'  Need char = 'z'
6833    Subject length lower bound = 4
6834  Starting byte set: a b c  Starting byte set: a b c
6835    
6836  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6528  Capturing subpattern count = 1 Line 6838  Capturing subpattern count = 1
6838  No options  No options
6839  No first char  No first char
6840  Need char = 'z'  Need char = 'z'
6841    Subject length lower bound = 4
6842  Starting byte set: a b c d  Starting byte set: a b c d
6843    
6844  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6535  Capturing subpattern count = 1 Line 6846  Capturing subpattern count = 1
6846  No options  No options
6847  No first char  No first char
6848  Need char = 'z'  Need char = 'z'
6849    Subject length lower bound = 4
6850  Starting byte set: a b c d  Starting byte set: a b c d
6851    
6852  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6607  No match Line 6919  No match
6919  ------------------------------------------------------------------  ------------------------------------------------------------------
6920          Bra          Bra
6921          ^          ^
6922          a*       /i a*
6923       NC A       /i A
6924          \d          \d
6925          Ket          Ket
6926          End          End
# Line 6627  Capturing subpattern count = 1 Line 6939  Capturing subpattern count = 1
6939  No options  No options
6940  No first char  No first char
6941  No need char  No need char
6942    Subject length lower bound = 1
6943  Starting byte set: a b c d  Starting byte set: a b c d
6944    
6945  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
# Line 6634  Capturing subpattern count = 1 Line 6947  Capturing subpattern count = 1
6947  No options  No options
6948  No first char  No first char
6949  No need char  No need char
6950    Subject length lower bound = 1
6951  Starting byte set: a b c d  Starting byte set: a b c d
6952    
6953  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
# Line 6641  Capturing subpattern count = 1 Line 6955  Capturing subpattern count = 1
6955  No options  No options
6956  No first char  No first char
6957  No need char  No need char
6958    Subject length lower bound = 1
6959  Starting byte set: a b c d  Starting byte set: a b c d
6960    
6961  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
# Line 6648  Capturing subpattern count = 1 Line 6963  Capturing subpattern count = 1
6963  No options  No options
6964  No first char  No first char
6965  No need char  No need char
6966    Subject length lower bound = 2
6967  Starting byte set: a b  Starting byte set: a b
6968    
6969  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7232  Matched, but too many substrings Line 7548  Matched, but too many substrings
7548  /[^a]+a/BZi  /[^a]+a/BZi
7549  ------------------------------------------------------------------  ------------------------------------------------------------------
7550          Bra          Bra
7551          [^A]++       /i [^A]++
7552       NC a       /i a
7553          Ket          Ket
7554          End          End
7555  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7241  Matched, but too many substrings Line 7557  Matched, but too many substrings
7557  /[^a]+A/BZi  /[^a]+A/BZi
7558  ------------------------------------------------------------------  ------------------------------------------------------------------
7559          Bra          Bra
7560          [^A]++       /i [^A]++
7561       NC A       /i A
7562          Ket          Ket
7563          End          End
7564  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7437  No match Line 7753  No match
7753  ------------------------------------------------------------------  ------------------------------------------------------------------
7754          Bra          Bra
7755          ^          ^
         Once  
7756          Recurse          Recurse
         Ket  
7757          [()]          [()]
7758          CBra 1          CBra 1
7759          Ket          Ket
# Line 7453  No match Line 7767  No match
7767          ^          ^
7768          CBra 1          CBra 1
7769          Cond          Cond
7770        2 Cond ref        2 Cond nref
7771          y          y
7772          Ket          Ket
7773          [()]          [()]
# Line 7473  No match Line 7787  No match
7787  ------------------------------------------------------------------  ------------------------------------------------------------------
7788          Bra          Bra
7789          ^          ^
         Once  
7790          Recurse          Recurse
         Ket  
7791          ()          ()
7792          CBra 1          CBra 1
7793          Ket          Ket
# Line 7487  No match Line 7799  No match
7799  ------------------------------------------------------------------  ------------------------------------------------------------------
7800          Bra          Bra
7801          ^          ^
         Once  
7802          Recurse          Recurse
         Ket  
7803          [(\]a]          [(\]a]
7804          CBra 1          CBra 1
7805          Ket          Ket
# Line 7502  No match Line 7812  No match
7812  ------------------------------------------------------------------  ------------------------------------------------------------------
7813          Bra          Bra
7814          ^          ^
         Once  
7815          Recurse          Recurse
         Ket  
7816          CBra 1          CBra 1
7817          Ket          Ket
7818          Ket          Ket
# Line 7636  Options: extended Line 7944  Options: extended
7944  First char = 'x'  First char = 'x'
7945  Need char = 'z'  Need char = 'z'
7946    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7947  /(a|)*\d/  /(a|)*\d/
7948    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7949  No match  No match
# Line 7956  No match Line 8261  No match
8261          Alt          Alt
8262          c          c
8263          Ket          Ket
         Once  
8264          Recurse          Recurse
8265          Ket          Ket
         Ket  
8266          End          End
8267  ------------------------------------------------------------------  ------------------------------------------------------------------
8268      abc      abc
# Line 7970  No match Line 8273  No match
8273  ------------------------------------------------------------------  ------------------------------------------------------------------
8274          Bra          Bra
8275          xy          xy
         Once  
8276          Recurse          Recurse
         Ket  
8277          CBra 1          CBra 1
8278          abc          abc
8279          Ket          Ket
# Line 8453  No match Line 8754  No match
8754  ------------------------------------------------------------------  ------------------------------------------------------------------
8755    
8756  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8757  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)  \J1024(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8758   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(00)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)0)
8759    
8760  /[\E]AAA/  /[\E]AAA/
# Line 8626  No match Line 8927  No match
8927  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8928  No match  No match
8929    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8930  /a(*MARK)b/  /a(*MARK)b/
8931  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8932    
8933  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8934  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 8638  Failed: number is too big at offset 19 Line 8936  Failed: number is too big at offset 19
8936  /\g6666666666/  /\g6666666666/
8937  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8938    
8939  /[\g6666666666]/  /[\g6666666666]/BZ
8940  Failed: number is too big at offset 12  ------------------------------------------------------------------
8941            Bra
8942            [6g]
8943            Ket
8944            End
8945    ------------------------------------------------------------------
8946    
8947  /(?1)\c[/  /(?1)\c[/
8948  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8719  No match Line 9022  No match
9022  No match  No match
9023      a\x85b      a\x85b
9024  No match  No match
9025    
9026    /(*ANY).*/g
9027        abc\r\ndef
9028     0: abc
9029     0:
9030     0: def
9031     0:
9032    
9033    /(*ANYCRLF).*/g
9034        abc\r\ndef
9035     0: abc
9036     0:
9037     0: def
9038     0:
9039    
9040    /(*CRLF).*/g
9041        abc\r\ndef
9042     0: abc
9043     0:
9044     0: def
9045     0:
9046    
9047  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
9048  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 8924  Failed: subpattern name expected at offs Line 9248  Failed: subpattern name expected at offs
9248  /\k{}/  /\k{}/
9249  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9250    
9251    /\k/
9252    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9253    
9254    /\kabc/
9255    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9256    
9257  /(?P=)/  /(?P=)/
9258  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9259    
# Line 9091  Capturing subpattern count = 1 Line 9421  Capturing subpattern count = 1
9421  No options  No options
9422  No first char  No first char
9423  No need char  No need char
9424    Subject length lower bound = 1
9425  Starting byte set: x y z  Starting byte set: x y z
9426    
9427  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
# Line 9204  No match Line 9535  No match
9535   +0        ^     x   +0        ^     x
9536   +0         ^    x   +0         ^    x
9537  No match  No match
9538    
9539    /(*NO_START_OPT)xyz/C
9540      abcxyz
9541    --->abcxyz
9542    +15 ^          x
9543    +15  ^         x
9544    +15   ^        x
9545    +15    ^       x
9546    +16    ^^      y
9547    +17    ^ ^     z
9548    +18    ^  ^
9549     0: xyz
9550    
9551    /xyz/CY
9552      abcxyz
9553    --->abcxyz
9554     +0 ^          x
9555     +0  ^         x
9556     +0   ^        x
9557     +0    ^       x
9558     +1    ^^      y
9559     +2    ^ ^     z
9560     +3    ^  ^
9561     0: xyz
9562    
9563  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9564      "ab"      "ab"
# Line 9557  Partial match: +ab Line 9912  Partial match: +ab
9912  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9913  ------------------------------------------------------------------  ------------------------------------------------------------------
9914          Bra          Bra
         Once  
9915          Recurse          Recurse
         Ket  
         Once  
9916          Recurse          Recurse
         Ket  
9917          Cond          Cond
9918          Cond def          Cond def
9919          CBra 1          CBra 1
# Line 9583  Partial match: +ab Line 9934  Partial match: +ab
9934  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9935  ------------------------------------------------------------------  ------------------------------------------------------------------
9936          Bra          Bra
         Once  
9937          Recurse          Recurse
         Ket  
         Once  
9938          Recurse          Recurse
         Ket  
9939          Cond          Cond
9940          Cond def          Cond def
9941          CBra 1          CBra 1
# Line 9606  Partial match: +ab Line 9953  Partial match: +ab
9953          End          End
9954  ------------------------------------------------------------------  ------------------------------------------------------------------
9955    
9956    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9957    ------------------------------------------------------------------
9958            Bra
9959            CBra 1
9960            ab
9961            Ket
9962            CBra 2
9963            x
9964            CBra 3
9965            y
9966            Ket
9967            z
9968            CBra 4
9969            cd
9970            Close 4
9971            Close 2
9972            *ACCEPT
9973            Ket
9974            Ket
9975            pq
9976            Ket
9977            End
9978    ------------------------------------------------------------------
9979    
9980  /abc\K/+  /abc\K/+
9981      abcdef      abcdef
9982   0:   0:
# Line 9810  No match Line 10181  No match
10181   6: d   6: d
10182   7: Y   7: Y
10183    
10184  / End of testinput2 /  /(?<=b(?1)|zzz)(a)/
10185        xbaax
10186     0: a
10187     1: a
10188        xzzzax
10189     0: a
10190     1: a
10191    
10192    /(a)(?<=b\1)/
10193    Failed: lookbehind assertion is not fixed length at offset 10
10194    
10195    /(a)(?<=b+(?1))/
10196    Failed: lookbehind assertion is not fixed length at offset 13
10197    
10198    /(a+)(?<=b(?1))/
10199    Failed: lookbehind assertion is not fixed length at offset 14
10200    
10201    /(a(?<=b(?1)))/
10202    Failed: lookbehind assertion is not fixed length at offset 13
10203    
10204    /(?<=b(?1))xyz/
10205    Failed: reference to non-existent subpattern at offset 8
10206    
10207    /(?<=b(?1))xyz(b+)pqrstuvew/
10208    Failed: lookbehind assertion is not fixed length at offset 26
10209    
10210    /(a|bc)\1/SI
10211    Capturing subpattern count = 1
10212    Max back reference = 1
10213    No options
10214    No first char
10215    No need char
10216    Subject length lower bound = 2
10217    Starting byte set: a b
10218    
10219    /(a|bc)\1{2,3}/SI
10220    Capturing subpattern count = 1
10221    Max back reference = 1
10222    No options
10223    No first char
10224    No need char
10225    Subject length lower bound = 3
10226    Starting byte set: a b
10227    
10228    /(a|bc)(?1)/SI
10229    Capturing subpattern count = 1
10230    No options
10231    No first char
10232    No need char
10233    Subject length lower bound = 2
10234    Starting byte set: a b
10235    
10236    /(a|b\1)(a|b\1)/SI
10237    Capturing subpattern count = 2
10238    Max back reference = 1
10239    No options
10240    No first char
10241    No need char
10242    Subject length lower bound = 2
10243    Starting byte set: a b
10244    
10245    /(a|b\1){2}/SI
10246    Capturing subpattern count = 1
10247    Max back reference = 1
10248    No options
10249    No first char
10250    No need char
10251    Subject length lower bound = 2
10252    Starting byte set: a b
10253    
10254    /(a|bbbb\1)(a|bbbb\1)/SI
10255    Capturing subpattern count = 2
10256    Max back reference = 1
10257    No options
10258    No first char
10259    No need char
10260    Subject length lower bound = 2
10261    Starting byte set: a b
10262    
10263    /(a|bbbb\1){2}/SI
10264    Capturing subpattern count = 1
10265    Max back reference = 1
10266    No options
10267    No first char
10268    No need char
10269    Subject length lower bound = 2
10270    Starting byte set: a b
10271    
10272    /^From +([^ ]+) +[a-zA-Z][a-zA-Z][a-zA-Z] +[a-zA-Z][a-zA-Z][a-zA-Z] +[0-9]?[0-9] +[0-9][0-9]:[0-9][0-9]/SI
10273    Capturing subpattern count = 1
10274    Options: anchored
10275    No first char
10276    Need char = ':'
10277    Subject length lower bound = 22
10278    No set of starting bytes
10279    
10280    /  (?: [\040\t] |  \(
10281    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10282    \)  )*                          # optional leading comment
10283    (?:    (?:
10284    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10285    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10286    |
10287    " (?:                      # opening quote...
10288    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10289    |                     #    or
10290    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10291    )* "  # closing quote
10292    )                    # initial word
10293    (?:  (?: [\040\t] |  \(
10294    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10295    \)  )*  \.  (?: [\040\t] |  \(
10296    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10297    \)  )*   (?:
10298    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10299    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10300    |
10301    " (?:                      # opening quote...
10302    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10303    |                     #    or
10304    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10305    )* "  # closing quote
10306    )  )* # further okay, if led by a period
10307    (?: [\040\t] |  \(
10308    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10309    \)  )*  @  (?: [\040\t] |  \(
10310    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10311    \)  )*    (?:
10312    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10313    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10314    |   \[                         # [
10315    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10316    \]                        #           ]
10317    )                           # initial subdomain
10318    (?:                                  #
10319    (?: [\040\t] |  \(
10320    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10321    \)  )*  \.                        # if led by a period...
10322    (?: [\040\t] |  \(
10323    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10324    \)  )*   (?:
10325    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10326    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10327    |   \[                         # [
10328    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10329    \]                        #           ]
10330    )                     #   ...further okay
10331    )*
10332    # address
10333    |                     #  or
10334    (?:
10335    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10336    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10337    |
10338    " (?:                      # opening quote...
10339    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10340    |                     #    or
10341    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10342    )* "  # closing quote
10343    )             # one word, optionally followed by....
10344    (?:
10345    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
10346    \(
10347    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10348    \)       |  # comments, or...
10349    
10350    " (?:                      # opening quote...
10351    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10352    |                     #    or
10353    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10354    )* "  # closing quote
10355    # quoted strings
10356    )*
10357    <  (?: [\040\t] |  \(
10358    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10359    \)  )*                     # leading <
10360    (?:  @  (?: [\040\t] |  \(
10361    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10362    \)  )*    (?:
10363    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10364    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10365    |   \[                         # [
10366    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10367    \]                        #           ]
10368    )                           # initial subdomain
10369    (?:                                  #
10370    (?: [\040\t] |  \(
10371    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10372    \)  )*  \.                        # if led by a period...
10373    (?: [\040\t] |  \(
10374    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10375    \)  )*   (?:
10376    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10377    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10378    |   \[                         # [
10379    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10380    \]                        #           ]
10381    )                     #   ...further okay
10382    )*
10383    
10384    (?:  (?: [\040\t] |  \(
10385    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10386    \)  )*  ,  (?: [\040\t] |  \(
10387    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10388    \)  )*  @  (?: [\040\t] |  \(
10389    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10390    \)  )*    (?:
10391    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10392    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10393    |   \[                         # [
10394    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10395    \]                        #           ]
10396    )                           # initial subdomain
10397    (?:                                  #
10398    (?: [\040\t] |  \(
10399    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10400    \)  )*  \.                        # if led by a period...
10401    (?: [\040\t] |  \(
10402    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10403    \)  )*   (?:
10404    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10405    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10406    |   \[                         # [
10407    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10408    \]                        #           ]
10409    )                     #   ...further okay
10410    )*
10411    )* # further okay, if led by comma
10412    :                                # closing colon
10413    (?: [\040\t] |  \(
10414    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10415    \)  )*  )? #       optional route
10416    (?:
10417    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10418    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10419    |
10420    " (?:                      # opening quote...
10421    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10422    |                     #    or
10423    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10424    )* "  # closing quote
10425    )                    # initial word
10426    (?:  (?: [\040\t] |  \(
10427    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10428    \)  )*  \.  (?: [\040\t] |  \(
10429    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10430    \)  )*   (?:
10431    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10432    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10433    |
10434    " (?:                      # opening quote...
10435    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10436    |                     #    or
10437    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10438    )* "  # closing quote
10439    )  )* # further okay, if led by a period
10440    (?: [\040\t] |  \(
10441    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10442    \)  )*  @  (?: [\040\t] |  \(
10443    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10444    \)  )*    (?:
10445    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10446    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10447    |   \[                         # [
10448    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10449    \]                        #           ]
10450    )                           # initial subdomain
10451    (?:                                  #
10452    (?: [\040\t] |  \(
10453    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10454    \)  )*  \.                        # if led by a period...
10455    (?: [\040\t] |  \(
10456    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10457    \)  )*   (?:
10458    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10459    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10460    |   \[                         # [
10461    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10462    \]                        #           ]
10463    )                     #   ...further okay
10464    )*
10465    #       address spec
10466    (?: [\040\t] |  \(
10467    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10468    \)  )*  > #                  trailing >
10469    # name and address
10470    )  (?: [\040\t] |  \(
10471    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10472    \)  )*                       # optional trailing comment
10473    /xSI
10474    Capturing subpattern count = 0
10475    Contains explicit CR or LF match
10476    Options: extended
10477    No first char
10478    No need char
10479    Subject length lower bound = 3
10480    Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
10481      9 = ? A B C D E F G H I J K L M N O P Q R S T U V W X Y Z ^ _ ` a b c d e
10482      f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
10483    
10484    /<tr([\w\W\s\d][^<>]{0,})><TD([\w\W\s\d][^<>]{0,})>([\d]{0,}\.)(.*)((<BR>([\w\W\s\d][^<>]{0,})|[\s]{0,}))<\/a><\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><TD([\w\W\s\d][^<>]{0,})>([\w\W\s\d][^<>]{0,})<\/TD><\/TR>/isIS
10485    Capturing subpattern count = 11
10486    Options: caseless dotall
10487    First char = '<'
10488    Need char = '>'
10489    Subject length lower bound = 47
10490    No set of starting bytes
10491    
10492    "(?>.*/)foo"SI
10493    Capturing subpattern count = 0
10494    No options
10495    First char at start or follows newline
10496    Need char = 'o'
10497    Subject length lower bound = 4
10498    No set of starting bytes
10499    
10500    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10501    Capturing subpattern count = 0
10502    Options: extended
10503    No first char
10504    Need char = '-'
10505    Subject length lower bound = 8
10506    No set of starting bytes
10507    
10508    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10509    Capturing subpattern count = 1
10510    Options: caseless
10511    No first char
10512    No need char
10513    Subject length lower bound = 1
10514    Starting byte set: A B C a b c
10515    
10516    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10517    Capturing subpattern count = 0
10518    No options
10519    No first char
10520    Need char = 'b'
10521    Subject length lower bound = 41
10522    Starting byte set: c d
10523    
10524    /<a[\s]+href[\s]*=[\s]*          # find <a href=
10525     ([\"\'])?                       # find single or double quote
10526     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10527                                     # quote, otherwise match up to next space
10528    /isxSI
10529    Capturing subpattern count = 3
10530    Max back reference = 1
10531    Options: caseless extended dotall
10532    First char = '<'
10533    Need char = '='
10534    Subject length lower bound = 9
10535    No set of starting bytes
10536    
10537    /^(?!:)                       # colon disallowed at start
10538      (?:                         # start of item
10539        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10540        (?(1)0 | () ) )           # if null previously matched, fail; else null
10541        :                         # followed by colon
10542      ){1,7}                      # end item; 1-7 of them required
10543      [0-9a-f]{1,4} $             # final hex number at end of string
10544      (?(1)|.)                    # check that there was an empty component
10545      /xiIS
10546    Capturing subpattern count = 1
10547    Options: anchored caseless extended
10548    No first char
10549    Need char = ':'
10550    Subject length lower bound = 2
10551    No set of starting bytes
10552    
10553    /(?|(?<a>A)|(?<a>B))/I
10554    Capturing subpattern count = 1
10555    Named capturing subpatterns:
10556      a   1
10557      a   1
10558    No options
10559    No first char
10560    No need char
10561        AB\Ca
10562     0: A
10563     1: A
10564      C A (1) a
10565        BA\Ca
10566     0: B
10567     1: B
10568      C B (1) a
10569    
10570    /(?|(?<a>A)|(?<b>B))/
10571    Failed: different names for subpatterns of the same number are not allowed at offset 15
10572    
10573    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10574        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10575        (?('quote')[a-z]+|[0-9]+)/JIx
10576    Capturing subpattern count = 6
10577    Named capturing subpatterns:
10578      apostrophe   2
10579      apostrophe   5
10580      quote        1
10581      quote        4
10582      realquote    3
10583      realquote    6
10584    Options: extended dupnames
10585    No first char
10586    No need char
10587        a"aaaaa
10588     0: a"aaaaa
10589     1: "
10590     2: <unset>
10591     3: "
10592        b"aaaaa
10593     0: b"aaaaa
10594     1: <unset>
10595     2: <unset>
10596     3: <unset>
10597     4: "
10598     5: <unset>
10599     6: "
10600        ** Failers
10601    No match
10602        b"11111
10603    No match
10604        a"11111
10605    No match
10606    
10607    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10608    ------------------------------------------------------------------
10609            Bra
10610            ^
10611            Bra
10612            CBra 1
10613            a
10614            Ket
10615            CBra 2
10616            b
10617            Ket
10618            CBra 3
10619            c
10620            Ket
10621            CBra 4
10622            d
10623            Ket
10624            Alt
10625            CBra 1
10626            e
10627            Ket
10628            Ket
10629            Cond
10630          4 Cond nref
10631            X
10632            Alt
10633            Y
10634            Ket
10635            Ket
10636            End
10637    ------------------------------------------------------------------
10638    Capturing subpattern count = 4
10639    Named capturing subpatterns:
10640      D   4
10641      D   1
10642    Options: anchored extended dupnames
10643    No first char
10644    No need char
10645        abcdX
10646     0: abcdX
10647     1: a
10648     2: b
10649     3: c
10650     4: d
10651        eX
10652     0: eX
10653     1: e
10654        ** Failers
10655    No match
10656        abcdY
10657    No match
10658        ey
10659    No match
10660    
10661    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10662    ------------------------------------------------------------------
10663            Bra
10664            CBra 1
10665            a
10666            Ket
10667            CBra 2
10668            b
10669            Ket
10670            CBra 3
10671            c
10672            Ket
10673            CBra 4
10674            d
10675            Cond
10676            Cond nrecurse 1
10677            $
10678            Alt
10679            Recurse
10680            Ket
10681            Ket
10682            Ket
10683            End
10684    ------------------------------------------------------------------
10685    Capturing subpattern count = 4
10686    Named capturing subpatterns:
10687      A   1
10688      A   4
10689    Options: extended dupnames
10690    First char = 'a'
10691    Need char = 'd'
10692        abcdd
10693     0: abcdd
10694     1: a
10695     2: b
10696     3: c
10697     4: dd
10698        ** Failers
10699    No match
10700        abcdde
10701    No match
10702    
10703    /abcd*/
10704        xxxxabcd\P
10705     0: abcd
10706        xxxxabcd\P\P
10707    Partial match: abcd
10708    
10709    /abcd*/i
10710        xxxxabcd\P
10711     0: abcd
10712        xxxxabcd\P\P
10713    Partial match: abcd
10714        XXXXABCD\P
10715     0: ABCD
10716        XXXXABCD\P\P
10717    Partial match: ABCD
10718    
10719    /abc\d*/
10720        xxxxabc1\P
10721     0: abc1
10722        xxxxabc1\P\P
10723    Partial match: abc1
10724    
10725    /(a)bc\1*/
10726        xxxxabca\P
10727     0: abca
10728     1: a
10729        xxxxabca\P\P
10730    Partial match: abca
10731    
10732    /abc[de]*/
10733        xxxxabcde\P
10734     0: abcde
10735        xxxxabcde\P\P
10736    Partial match: abcde
10737    
10738    /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10739        broken and not behaving as specified in that it *does* bumpalong after
10740        hitting (*COMMIT). --/
10741    
10742    /(?1)(A(*COMMIT)|B)D/
10743        ABD
10744     0: ABD
10745     1: B
10746        XABD
10747     0: ABD
10748     1: B
10749        BAD
10750     0: BAD
10751     1: A
10752        ABXABD
10753     0: ABD
10754     1: B
10755        ** Failers
10756    No match
10757        ABX
10758    No match
10759        BAXBAD
10760    No match
10761    
10762    /(\3)(\1)(a)/<JS>
10763        cat
10764     0: a
10765     1:
10766     2:
10767     3: a
10768    
10769    /(\3)(\1)(a)/SI<JS>
10770    Capturing subpattern count = 3
10771    Max back reference = 3
10772    Options:
10773    No first char
10774    Need char = 'a'
10775    Subject length lower bound = 1
10776    No set of starting bytes
10777        cat
10778     0: a
10779     1:
10780     2:
10781     3: a
10782    
10783    /(\3)(\1)(a)/SI
10784    Capturing subpattern count = 3
10785    Max back reference = 3
10786    No options
10787    No first char
10788    Need char = 'a'
10789    Subject length lower bound = 3
10790    No set of starting bytes
10791        cat
10792    No match
10793    
10794    /i(?(DEFINE)(?<s>a))/SI
10795    Capturing subpattern count = 1
10796    Named capturing subpatterns:
10797      s   1
10798    No options
10799    First char = 'i'
10800    No need char
10801    Subject length lower bound = 1
10802    No set of starting bytes
10803        i
10804     0: i
10805    
10806    /()i(?(1)a)/SI
10807    Capturing subpattern count = 1
10808    No options
10809    No first char
10810    Need char = 'i'
10811    Subject length lower bound = 1
10812    Starting byte set: i
10813        ia
10814     0: ia
10815     1:
10816    
10817    /(?i)a(?-i)b|c/BZ
10818    ------------------------------------------------------------------
10819            Bra
10820         /i a
10821            b
10822            Alt
10823            c
10824            Ket
10825            End
10826    ------------------------------------------------------------------
10827        XabX
10828     0: ab
10829        XAbX
10830     0: Ab
10831        CcC
10832     0: c
10833        ** Failers
10834    No match
10835        XABX
10836    No match
10837    
10838    /(?i)a(?s)b|c/BZ
10839    ------------------------------------------------------------------
10840            Bra
10841         /i ab
10842            Alt
10843         /i c
10844            Ket
10845            End
10846    ------------------------------------------------------------------
10847    
10848    /(?i)a(?s-i)b|c/BZ
10849    ------------------------------------------------------------------
10850            Bra
10851         /i a
10852            b
10853            Alt
10854            c
10855            Ket
10856            End
10857    ------------------------------------------------------------------
10858    
10859    /^(ab(c\1)d|x){2}$/BZ
10860    ------------------------------------------------------------------
10861            Bra
10862            ^
10863            Once
10864            CBra 1
10865            ab
10866            CBra 2
10867            c
10868            \1
10869            Ket
10870            d
10871            Alt
10872            x
10873            Ket
10874            Ket
10875            Once
10876            CBra 1
10877            ab
10878            CBra 2
10879            c
10880            \1
10881            Ket
10882            d
10883            Alt
10884            x
10885            Ket
10886            Ket
10887            $
10888            Ket
10889            End
10890    ------------------------------------------------------------------
10891        xabcxd
10892     0: xabcxd
10893     1: abcxd
10894     2: cx
10895    
10896    /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10897    ------------------------------------------------------------------
10898            Bra
10899            ^
10900            Braposzero
10901            SBraPos
10902            Recurse
10903            KetRpos
10904            Cond
10905            Cond def
10906            CBra 1
10907            Any
10908            Ket
10909            Ket
10910            $
10911            Ket
10912            End
10913    ------------------------------------------------------------------
10914    
10915    /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10916    ------------------------------------------------------------------
10917            Bra
10918            ^
10919            Brazero
10920            Once
10921            Recurse
10922            KetRmax
10923            Cond
10924            Cond def
10925            CBra 1
10926            Any
10927            Ket
10928            Ket
10929            $
10930            Ket
10931            End
10932    ------------------------------------------------------------------
10933    
10934    / -- The first four of these are not in the Perl >= 5.10 test because Perl
10935         documents that the use of \K in assertions is "not well defined". The
10936         last is here because Perl gives the match as "b" rather than "ab". I
10937         believe this to be a Perl bug. --/
10938    
10939    /(?=a\Kb)ab/
10940        ab
10941     0: b
10942    
10943    /(?!a\Kb)ac/
10944        ac
10945     0: ac
10946    
10947    /^abc(?<=b\Kc)d/
10948        abcd
10949     0: cd
10950    
10951    /^abc(?<!b\Kq)d/
10952        abcd
10953     0: abcd
10954    
10955    /(?>a\Kb)z|(ab)/
10956        ab
10957     0: ab
10958     1: ab
10959    
10960    /----------------------/
10961    
10962    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10963    Failed: recursive call could loop indefinitely at offset 31
10964    
10965    /abc(*MARK:)pqr/
10966    Failed: (*MARK) must have an argument at offset 10
10967    
10968    /abc(*:)pqr/
10969    Failed: (*MARK) must have an argument at offset 6
10970    
10971    /abc(*FAIL:123)xyz/
10972    Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10973    
10974    /--- This should, and does, fail. In Perl, it does not, which I think is a
10975         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10976    
10977    /A(*COMMIT)B/+K
10978        ACABX
10979    No match
10980    
10981    /--- These should be different, but in Perl 5.11 are not, which I think
10982         is a bug in Perl. ---/
10983    
10984    /A(*THEN)B|A(*THEN)C/K
10985        AC
10986     0: AC
10987    
10988    /A(*PRUNE)B|A(*PRUNE)C/K
10989        AC
10990    No match
10991    
10992    /--- A whole lot of tests of verbs with arguments are here rather than in test
10993         11 because Perl doesn't seem to follow its specification entirely
10994         correctly. ---/
10995    
10996    /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is
10997         not clear how Perl defines "involved in the failure of the match". ---/
10998    
10999    /^(A(*THEN:A)B|C(*THEN:B)D)/K
11000        AB
11001     0: AB
11002     1: AB
11003        CD
11004     0: CD
11005     1: CD
11006        ** Failers
11007    No match
11008        AC
11009    No match
11010        CB
11011    No match, mark = B
11012    
11013    /--- Check the use of names for success and failure. PCRE doesn't show these
11014    names for success, though Perl does, contrary to its spec. ---/
11015    
11016    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
11017        AB
11018     0: AB
11019     1: AB
11020        CD
11021     0: CD
11022     1: CD
11023        ** Failers
11024    No match
11025        AC
11026    No match, mark = A
11027        CB
11028    No match, mark = B
11029    
11030    /--- An empty name does not pass back an empty string. It is the same as if no
11031    name were given. ---/
11032    
11033    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
11034        AB
11035     0: AB
11036     1: AB
11037        CD
11038     0: CD
11039     1: CD
11040    
11041    /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
11042    
11043    /A(*PRUNE:A)B/K
11044        ACAB
11045     0: AB
11046    
11047    /(*MARK:A)(*PRUNE:B)(C|X)/KS
11048        C
11049     0: C
11050     1: C
11051    MK: A
11052        D
11053    No match
11054    
11055    /(*MARK:A)(*PRUNE:B)(C|X)/KSS
11056        C
11057     0: C
11058     1: C
11059    MK: A
11060        D
11061    No match, mark = B
11062    
11063    /(*MARK:A)(*THEN:B)(C|X)/KS
11064        C
11065     0: C
11066     1: C
11067    MK: A
11068        D
11069    No match
11070    
11071    /(*MARK:A)(*THEN:B)(C|X)/KSY
11072        C
11073     0: C
11074     1: C
11075    MK: A
11076        D
11077    No match, mark = B
11078    
11079    /(*MARK:A)(*THEN:B)(C|X)/KSS
11080        C
11081     0: C
11082     1: C
11083    MK: A
11084        D
11085    No match, mark = B
11086    
11087    /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
11088    
11089    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
11090        AAAC
11091    No match
11092    
11093    /--- Same --/
11094    
11095    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
11096        AAAC
11097    No match
11098    
11099    /--- This should fail; the SKIP advances by one, but when we get to AC, the
11100         PRUNE kills it. ---/
11101    
11102    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
11103        AAAC
11104    No match
11105    
11106    /A(*:A)A+(*SKIP)(B|Z) | AC/xK
11107        AAAC
11108    No match
11109    
11110    /--- This should fail, as a null name is the same as no name ---/
11111    
11112    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
11113        AAAC
11114    No match
11115    
11116    /--- This fails in PCRE, and I think that is in accordance with Perl's
11117         documentation, though in Perl it succeeds. ---/
11118    
11119    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
11120        AAAC
11121    No match
11122    
11123    /--- Mark names can be duplicated ---/
11124    
11125    /A(*:A)B|X(*:A)Y/K
11126        AABC
11127     0: AB
11128    MK: A
11129        XXYZ
11130     0: XY
11131    MK: A
11132    
11133    /^A(*:A)B|^X(*:A)Y/K
11134        ** Failers
11135    No match
11136        XAQQ
11137    No match, mark = A
11138    
11139    /--- A check on what happens after hitting a mark and them bumping along to
11140    something that does not even start. Perl reports tags after the failures here,
11141    though it does not when the individual letters are made into something
11142    more complicated. ---/
11143    
11144    /A(*:A)B|XX(*:B)Y/K
11145        AABC
11146     0: AB
11147    MK: A
11148        XXYZ
11149     0: XXY
11150    MK: B
11151        ** Failers
11152    No match
11153        XAQQ
11154    No match
11155        XAQQXZZ
11156    No match
11157        AXQQQ
11158    No match
11159        AXXQQQ
11160    No match
11161    
11162    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
11163    optimizations defeat this. So does the PCRE optimization unless we disable it
11164    with \Y. ---/
11165    
11166    /(*COMMIT)ABC/
11167        ABCDEFG
11168     0: ABC
11169        ** Failers
11170    No match
11171        DEFGABC\Y
11172    No match
11173    
11174    /--- Repeat some tests with added studying. ---/
11175    
11176    /A(*COMMIT)B/+KS
11177        ACABX
11178    No match
11179    
11180    /A(*THEN)B|A(*THEN)C/KS
11181        AC
11182     0: AC
11183    
11184    /A(*PRUNE)B|A(*PRUNE)C/KS
11185        AC
11186    No match
11187    
11188    /^(A(*THEN:A)B|C(*THEN:B)D)/KS
11189        AB
11190     0: AB
11191     1: AB
11192        CD
11193     0: CD
11194     1: CD
11195        ** Failers
11196    No match
11197        AC
11198    No match
11199        CB
11200    No match, mark = B
11201    
11202    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS
11203        AB
11204     0: AB
11205     1: AB
11206        CD
11207     0: CD
11208     1: CD
11209        ** Failers
11210    No match
11211        AC
11212    No match, mark = A
11213        CB
11214    No match, mark = B
11215    
11216    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS
11217        AB
11218     0: AB
11219     1: AB
11220        CD
11221     0: CD
11222     1: CD
11223    
11224    /A(*PRUNE:A)B/KS
11225        ACAB
11226     0: AB
11227    
11228    /(*MARK:A)(*PRUNE:B)(C|X)/KS
11229        C
11230     0: C
11231     1: C
11232    MK: A
11233        D
11234    No match
11235    
11236    /(*MARK:A)(*THEN:B)(C|X)/KS
11237        C
11238     0: C
11239     1: C
11240    MK: A
11241        D
11242    No match
11243    
11244    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS
11245        AAAC
11246    No match
11247    
11248    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS
11249        AAAC
11250    No match
11251    
11252    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS
11253        AAAC
11254    No match
11255    
11256    /A(*:A)A+(*SKIP)(B|Z) | AC/xKS
11257        AAAC
11258    No match
11259    
11260    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS
11261        AAAC
11262    No match
11263    
11264    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS
11265        AAAC
11266    No match
11267    
11268    /A(*:A)B|XX(*:B)Y/KS
11269        AABC
11270     0: AB
11271    MK: A
11272        XXYZ
11273     0: XXY
11274    MK: B
11275        ** Failers
11276    No match
11277        XAQQ
11278    No match
11279        XAQQXZZ
11280    No match
11281        AXQQQ
11282    No match
11283        AXXQQQ
11284    No match
11285    
11286    /(*COMMIT)ABC/
11287        ABCDEFG
11288     0: ABC
11289        ** Failers
11290    No match
11291        DEFGABC\Y
11292    No match
11293    
11294    /^(ab (c+(*THEN)cd) | xyz)/x
11295        abcccd
11296    No match
11297    
11298    /^(ab (c+(*PRUNE)cd) | xyz)/x
11299        abcccd
11300    No match
11301    
11302    /^(ab (c+(*FAIL)cd) | xyz)/x
11303        abcccd
11304    No match
11305    
11306    /--- Perl 5.11 gets some of these wrong ---/
11307    
11308    /(?>.(*ACCEPT))*?5/
11309        abcde
11310     0: a
11311    
11312    /(.(*ACCEPT))*?5/
11313        abcde
11314     0: a
11315     1: a
11316    
11317    /(.(*ACCEPT))5/
11318        abcde
11319     0: a
11320     1: a
11321    
11322    /(.(*ACCEPT))*5/
11323        abcde
11324     0: a
11325     1: a
11326    
11327    /A\NB./BZ
11328    ------------------------------------------------------------------
11329            Bra
11330            A
11331            Any
11332            B
11333            Any
11334            Ket
11335            End
11336    ------------------------------------------------------------------
11337        ACBD
11338     0: ACBD
11339        *** Failers
11340    No match
11341        A\nB
11342    No match
11343        ACB\n
11344    No match
11345    
11346    /A\NB./sBZ
11347    ------------------------------------------------------------------
11348            Bra
11349            A
11350            Any
11351            B
11352            AllAny
11353            Ket
11354            End
11355    ------------------------------------------------------------------
11356        ACBD
11357     0: ACBD
11358        ACB\n
11359     0: ACB\x0a
11360        *** Failers
11361    No match
11362        A\nB
11363    No match
11364    
11365    /A\NB/<crlf>
11366        A\nB
11367     0: A\x0aB
11368        A\rB
11369     0: A\x0dB
11370        ** Failers
11371    No match
11372        A\r\nB
11373    No match
11374    
11375    /\R+b/BZ
11376    ------------------------------------------------------------------
11377            Bra
11378            \R++
11379            b
11380            Ket
11381            End
11382    ------------------------------------------------------------------
11383    
11384    /\R+\n/BZ
11385    ------------------------------------------------------------------
11386            Bra
11387            \R+
11388            \x0a
11389            Ket
11390            End
11391    ------------------------------------------------------------------
11392    
11393    /\R+\d/BZ
11394    ------------------------------------------------------------------
11395            Bra
11396            \R++
11397            \d
11398            Ket
11399            End
11400    ------------------------------------------------------------------
11401    
11402    /\d*\R/BZ
11403    ------------------------------------------------------------------
11404            Bra
11405            \d*+
11406            \R
11407            Ket
11408            End
11409    ------------------------------------------------------------------
11410    
11411    /\s*\R/BZ
11412    ------------------------------------------------------------------
11413            Bra
11414            \s*+
11415            \R
11416            Ket
11417            End
11418    ------------------------------------------------------------------
11419    
11420    /-- Perl treats this one differently, not failing the second string. I believe
11421        that is a bug in Perl. --/
11422    
11423    /^((abc|abcx)(*THEN)y|abcd)/
11424        abcd
11425     0: abcd
11426     1: abcd
11427        *** Failers
11428    No match
11429        abcxy
11430    No match
11431    
11432    /(?<=abc)def/
11433        abc\P\P
11434    Partial match: abc
11435    
11436    /abc$/
11437        abc
11438     0: abc
11439        abc\P
11440     0: abc
11441        abc\P\P
11442    Partial match: abc
11443    
11444    /abc$/m
11445        abc
11446     0: abc
11447        abc\n
11448     0: abc
11449        abc\P\P
11450    Partial match: abc
11451        abc\n\P\P
11452     0: abc
11453        abc\P
11454     0: abc
11455        abc\n\P
11456     0: abc
11457    
11458    /abc\z/
11459        abc
11460     0: abc
11461        abc\P
11462     0: abc
11463        abc\P\P
11464    Partial match: abc
11465    
11466    /abc\Z/
11467        abc
11468     0: abc
11469        abc\P
11470     0: abc
11471        abc\P\P
11472    Partial match: abc
11473    
11474    /abc\b/
11475        abc
11476     0: abc
11477        abc\P
11478     0: abc
11479        abc\P\P
11480    Partial match: abc
11481    
11482    /abc\B/
11483        abc
11484    No match
11485        abc\P
11486    Partial match: abc
11487        abc\P\P
11488    Partial match: abc
11489    
11490    /.+/
11491        abc\>0
11492     0: abc
11493        abc\>1
11494     0: bc
11495        abc\>2
11496     0: c
11497        abc\>3
11498    No match
11499        abc\>4
11500    Error -24 (bad offset value)
11501        abc\>-4
11502    Error -24 (bad offset value)
11503    
11504    /^\cģ/
11505    Failed: \c must be followed by an ASCII character at offset 3
11506    
11507    /(?P<abn>(?P=abn)xxx)/BZ
11508    ------------------------------------------------------------------
11509            Bra
11510            Once
11511            CBra 1
11512            \1
11513            xxx
11514            Ket
11515            Ket
11516            Ket
11517            End
11518    ------------------------------------------------------------------
11519    
11520    /(a\1z)/BZ
11521    ------------------------------------------------------------------
11522            Bra
11523            Once
11524            CBra 1
11525            a
11526            \1
11527            z
11528            Ket
11529            Ket
11530            Ket
11531            End
11532    ------------------------------------------------------------------
11533    
11534    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
11535    Failed: syntax error in subpattern name (missing terminator) at offset 29
11536    
11537    /(?P<abn>(?P=axn)xxx)/BZ
11538    Failed: reference to non-existent subpattern at offset 15
11539    
11540    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
11541    ------------------------------------------------------------------
11542            Bra
11543            CBra 1
11544            \2
11545            xxx
11546            Ket
11547            CBra 2
11548            yy
11549            Ket
11550            Ket
11551            End
11552    ------------------------------------------------------------------
11553    
11554    /-- These tests are here because Perl gets the first one wrong. --/
11555    
11556    /(\R*)(.)/s
11557        \r\n
11558     0: \x0d
11559     1:
11560     2: \x0d
11561        \r\r\n\n\r
11562     0: \x0d\x0d\x0a\x0a\x0d
11563     1: \x0d\x0d\x0a\x0a
11564     2: \x0d
11565        \r\r\n\n\r\n
11566     0: \x0d\x0d\x0a\x0a\x0d
11567     1: \x0d\x0d\x0a\x0a
11568     2: \x0d
11569    
11570    /(\R)*(.)/s
11571        \r\n
11572     0: \x0d
11573     1: <unset>
11574     2: \x0d
11575        \r\r\n\n\r
11576     0: \x0d\x0d\x0a\x0a\x0d
11577     1: \x0a
11578     2: \x0d
11579        \r\r\n\n\r\n
11580     0: \x0d\x0d\x0a\x0a\x0d
11581     1: \x0a
11582     2: \x0d
11583    
11584    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11585        \r\n
11586     0: \x0d
11587     1:
11588     2: \x0d
11589        \r\r\n\n\r
11590     0: \x0d\x0d\x0a\x0a\x0d
11591     1: \x0d\x0d\x0a\x0a
11592     2: \x0d
11593        \r\r\n\n\r\n
11594     0: \x0d\x0d\x0a\x0a\x0d
11595     1: \x0d\x0d\x0a\x0a
11596     2: \x0d
11597    
11598    /-- --/
11599    
11600    /^abc$/BZ
11601    ------------------------------------------------------------------
11602            Bra
11603            ^
11604            abc
11605            $
11606            Ket
11607            End
11608    ------------------------------------------------------------------
11609    
11610    /^abc$/BZm
11611    ------------------------------------------------------------------
11612            Bra
11613         /m ^
11614            abc
11615         /m $
11616            Ket
11617            End
11618    ------------------------------------------------------------------
11619    
11620    /^(a)*+(\w)/S
11621        aaaaX
11622     0: aaaaX
11623     1: a
11624     2: X
11625        ** Failers
11626    No match
11627        aaaa
11628    No match
11629    
11630    /^(?:a)*+(\w)/S
11631        aaaaX
11632     0: aaaaX
11633     1: X
11634        ** Failers
11635    No match
11636        aaaa
11637    No match
11638    
11639    /(a)++1234/SDZ
11640    ------------------------------------------------------------------
11641            Bra
11642            CBraPos 1
11643            a
11644            KetRpos
11645            1234
11646            Ket
11647            End
11648    ------------------------------------------------------------------
11649    Capturing subpattern count = 1
11650    No options
11651    First char = 'a'
11652    Need char = '4'
11653    Subject length lower bound = 5
11654    No set of starting bytes
11655    
11656    /([abc])++1234/SI
11657    Capturing subpattern count = 1
11658    No options
11659    No first char
11660    Need char = '4'
11661    Subject length lower bound = 5
11662    Starting byte set: a b c
11663    
11664    /(?<=(abc)+)X/
11665    Failed: lookbehind assertion is not fixed length at offset 10
11666    
11667    /(^ab)/I
11668    Capturing subpattern count = 1
11669    Options: anchored
11670    No first char
11671    No need char
11672    
11673    /(^ab)++/I
11674    Capturing subpattern count = 1
11675    Options: anchored
11676    No first char
11677    No need char
11678    
11679    /(^ab|^)+/I
11680    Capturing subpattern count = 1
11681    Options: anchored
11682    No first char
11683    No need char
11684    
11685    /(^ab|^)++/I
11686    Capturing subpattern count = 1
11687    Options: anchored
11688    No first char
11689    No need char
11690    
11691    /(?:^ab)/I
11692    Capturing subpattern count = 0
11693    Options: anchored
11694    No first char
11695    No need char
11696    
11697    /(?:^ab)++/I
11698    Capturing subpattern count = 0
11699    Options: anchored
11700    No first char
11701    No need char
11702    
11703    /(?:^ab|^)+/I
11704    Capturing subpattern count = 0
11705    Options: anchored
11706    No first char
11707    No need char
11708    
11709    /(?:^ab|^)++/I
11710    Capturing subpattern count = 0
11711    Options: anchored
11712    No first char
11713    No need char
11714    
11715    /(.*ab)/I
11716    Capturing subpattern count = 1
11717    No options
11718    First char at start or follows newline
11719    Need char = 'b'
11720    
11721    /(.*ab)++/I
11722    Capturing subpattern count = 1
11723    No options
11724    First char at start or follows newline
11725    Need char = 'b'
11726    
11727    /(.*ab|.*)+/I
11728    Capturing subpattern count = 1
11729    No options
11730    First char at start or follows newline
11731    No need char
11732    
11733    /(.*ab|.*)++/I
11734    Capturing subpattern count = 1
11735    No options
11736    First char at start or follows newline
11737    No need char
11738    
11739    /(?:.*ab)/I
11740    Capturing subpattern count = 0
11741    No options
11742    First char at start or follows newline
11743    Need char = 'b'
11744    
11745    /(?:.*ab)++/I
11746    Capturing subpattern count = 0
11747    No options
11748    First char at start or follows newline
11749    Need char = 'b'
11750    
11751    /(?:.*ab|.*)+/I
11752    Capturing subpattern count = 0
11753    No options
11754    First char at start or follows newline
11755    No need char
11756    
11757    /(?:.*ab|.*)++/I
11758    Capturing subpattern count = 0
11759    No options
11760    First char at start or follows newline
11761    No need char
11762    
11763    /(?=a)[bcd]/I
11764    Capturing subpattern count = 0
11765    No options
11766    First char = 'a'
11767    No need char
11768    
11769    /((?=a))[bcd]/I
11770    Capturing subpattern count = 1
11771    No options
11772    First char = 'a'
11773    No need char
11774    
11775    /((?=a))+[bcd]/I
11776    Capturing subpattern count = 1
11777    No options
11778    First char = 'a'
11779    No need char
11780    
11781    /((?=a))++[bcd]/I
11782    Capturing subpattern count = 1
11783    No options
11784    First char = 'a'
11785    No need char
11786    
11787    /(?=a+)[bcd]/iI
11788    Capturing subpattern count = 0
11789    Options: caseless
11790    First char = 'a' (caseless)
11791    No need char
11792    
11793    /(?=a+?)[bcd]/iI
11794    Capturing subpattern count = 0
11795    Options: caseless
11796    First char = 'a' (caseless)
11797    No need char
11798    
11799    /(?=a++)[bcd]/iI
11800    Capturing subpattern count = 0
11801    Options: caseless
11802    First char = 'a' (caseless)
11803    No need char
11804    
11805    /(?=a{3})[bcd]/iI
11806    Capturing subpattern count = 0
11807    Options: caseless
11808    First char = 'a' (caseless)
11809    Need char = 'a' (caseless)
11810    
11811    /(abc)\1+/S
11812    
11813    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11814    
11815    /(?1)(?:(b(*ACCEPT))){0}/
11816        b
11817     0: b
11818    
11819    /(?1)(?:(b(*ACCEPT))){0}c/
11820        bc
11821     0: bc
11822        ** Failers
11823    No match
11824        b
11825    No match
11826    
11827    /(?1)(?:((*ACCEPT))){0}c/
11828        c
11829     0: c
11830        c\N
11831     0: c
11832    
11833    /^.*?(?(?=a)a|b(*THEN)c)/
11834        ba
11835    No match
11836    
11837    /^.*?(?(?=a)a|bc)/
11838        ba
11839     0: ba
11840    
11841    /^.*?(?(?=a)a(*THEN)b|c)/
11842        ac
11843    No match
11844    
11845    /^.*?(?(?=a)a(*THEN)b)c/
11846        ac
11847    No match
11848    
11849    /^.*?(a(*THEN)b)c/
11850        aabc
11851    No match
11852    
11853    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11854        aabc
11855     0: aabc
11856    
11857    /^.*?(a(*THEN)b|z)c/
11858        aabc
11859     0: aabc
11860     1: ab
11861    
11862    /^.*?(z|a(*THEN)b)c/
11863        aabc
11864     0: aabc
11865     1: ab
11866    
11867    /-- --/
11868    
11869    /-- These studied versions are here because they are not Perl-compatible; the
11870        studying means the mark is not seen. --/
11871    
11872    /(*MARK:A)(*SKIP:B)(C|X)/KS
11873        C
11874     0: C
11875     1: C
11876    MK: A
11877        D
11878    No match
11879    
11880    /(*:A)A+(*SKIP:A)(B|Z)/KS
11881        AAAC
11882    No match
11883    
11884    /-- --/
11885    
11886    "(?=a*(*ACCEPT)b)c"
11887        c
11888     0: c
11889        c\N
11890     0: c
11891    
11892    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11893        c
11894     0: c
11895        c\N
11896     0: c
11897    
11898    /(?>(*ACCEPT)b)c/
11899        c
11900     0:
11901        c\N
11902    No match
11903    
11904    /(?:(?>(a)))+a%/++
11905        %aa%
11906     0: aa%
11907     0+
11908     1: a
11909     1+ a%
11910    
11911    /(a)b|ac/++SS
11912        ac\O3
11913    Matched, but too many substrings
11914     0: ac
11915     0+
11916    
11917    /(a)(b)x|abc/++
11918         abc\O6
11919     0: abc
11920     0+
11921    
11922    /(a)bc|(a)(b)\2/
11923        \O3abc
11924    Matched, but too many substrings
11925     0: abc
11926        \O4abc
11927    Matched, but too many substrings
11928     0: abc
11929    
11930    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11931    Capturing subpattern count = 2
11932    No options
11933    No first char
11934    No need char
11935    Subject length lower bound = 1
11936    No set of starting bytes
11937    
11938    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11939    Capturing subpattern count = 2
11940    No options
11941    No first char
11942    No need char
11943    Subject length lower bound = 3
11944    Starting byte set: a b
11945    
11946    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11947    Capturing subpattern count = 2
11948    No options
11949    No first char
11950    No need char
11951    Subject length lower bound = 4
11952    Starting byte set: a b
11953    
11954    /(abc)(?1)/SI
11955    Capturing subpattern count = 1
11956    No options
11957    First char = 'a'
11958    Need char = 'c'
11959    Subject length lower bound = 6
11960    No set of starting bytes
11961    
11962    /^(?>a)++/
11963        aa\M
11964    Minimum match() limit = 5
11965    Minimum match() recursion limit = 2
11966     0: aa
11967        aaaaaaaaa\M
11968    Minimum match() limit = 12
11969    Minimum match() recursion limit = 2
11970     0: aaaaaaaaa
11971    
11972    /(a)(?1)++/
11973        aa\M
11974    Minimum match() limit = 7
11975    Minimum match() recursion limit = 4
11976     0: aa
11977     1: a
11978        aaaaaaaaa\M
11979    Minimum match() limit = 21
11980    Minimum match() recursion limit = 4
11981     0: aaaaaaaaa
11982     1: a
11983    
11984    /(?:(foo)|(bar)|(baz))X/SS=
11985        bazfooX
11986     0: fooX
11987     1: foo
11988     2: <unset>
11989     3: <unset>
11990        foobazbarX
11991     0: barX
11992     1: <unset>
11993     2: bar
11994     3: <unset>
11995        barfooX
11996     0: fooX
11997     1: foo
11998     2: <unset>
11999     3: <unset>
12000        bazX
12001     0: bazX
12002     1: <unset>
12003     2: <unset>
12004     3: baz
12005        foobarbazX
12006     0: bazX
12007     1: <unset>
12008     2: <unset>
12009     3: baz
12010        bazfooX\O0
12011    Matched, but too many substrings
12012        bazfooX\O2
12013    Matched, but too many substrings
12014     0: fooX
12015        bazfooX\O4
12016    Matched, but too many substrings
12017     0: fooX
12018     1: <unset>
12019        bazfooX\O6
12020    Matched, but too many substrings
12021     0: fooX
12022     1: foo
12023     2: <unset>
12024        bazfooX\O8
12025    Matched, but too many substrings
12026     0: fooX
12027     1: foo
12028     2: <unset>
12029     3: <unset>
12030        bazfooX\O10
12031     0: fooX
12032     1: foo
12033     2: <unset>
12034     3: <unset>
12035    
12036    /(?=abc){3}abc/BZ
12037    ------------------------------------------------------------------
12038            Bra
12039            Assert
12040            abc
12041            Ket
12042            abc
12043            Ket
12044            End
12045    ------------------------------------------------------------------
12046    
12047    /(?=abc)+abc/BZ
12048    ------------------------------------------------------------------
12049            Bra
12050            Assert
12051            abc
12052            Ket
12053            abc
12054            Ket
12055            End
12056    ------------------------------------------------------------------
12057    
12058    /(?=abc)++abc/BZ
12059    ------------------------------------------------------------------
12060            Bra
12061            Assert
12062            abc
12063            Ket
12064            abc
12065            Ket
12066            End
12067    ------------------------------------------------------------------
12068    
12069    /(?=abc){0}xyz/BZ
12070    ------------------------------------------------------------------
12071            Bra
12072            Skip zero
12073            Assert
12074            abc
12075            Ket
12076            xyz
12077            Ket
12078            End
12079    ------------------------------------------------------------------
12080    
12081    /(?=(a))?./BZ
12082    ------------------------------------------------------------------
12083            Bra
12084            Brazero
12085            Assert
12086            CBra 1
12087            a
12088            Ket
12089            Ket
12090            Any
12091            Ket
12092            End
12093    ------------------------------------------------------------------
12094    
12095    /(?=(a))??./BZ
12096    ------------------------------------------------------------------
12097            Bra
12098            Braminzero
12099            Assert
12100            CBra 1
12101            a
12102            Ket
12103            Ket
12104            Any
12105            Ket
12106            End
12107    ------------------------------------------------------------------
12108    
12109    /^(?=(a)){0}b(?1)/BZ
12110    ------------------------------------------------------------------
12111            Bra
12112            ^
12113            Skip zero
12114            Assert
12115            CBra 1
12116            a
12117            Ket
12118            Ket
12119            b
12120            Recurse
12121            Ket
12122            End
12123    ------------------------------------------------------------------
12124    
12125    /(?(DEFINE)(a))?b(?1)/BZ
12126    ------------------------------------------------------------------
12127            Bra
12128            Cond
12129            Cond def
12130            CBra 1
12131            a
12132            Ket
12133            Ket
12134            b
12135            Recurse
12136            Ket
12137            End
12138    ------------------------------------------------------------------
12139    
12140    /^(?=(?1))?[az]([abc])d/BZ
12141    ------------------------------------------------------------------
12142            Bra
12143            ^
12144            Brazero
12145            Assert
12146            Recurse
12147            Ket
12148            [az]
12149            CBra 1
12150            [a-c]
12151            Ket
12152            d
12153            Ket
12154            End
12155    ------------------------------------------------------------------
12156    
12157    /^(?!a){0}\w+/BZ
12158    ------------------------------------------------------------------
12159            Bra
12160            ^
12161            Skip zero
12162            Assert not
12163            a
12164            Ket
12165            \w+
12166            Ket
12167            End
12168    ------------------------------------------------------------------
12169    
12170    /(?<=(abc))?xyz/BZ
12171    ------------------------------------------------------------------
12172            Bra
12173            Brazero
12174            AssertB
12175            Reverse
12176            CBra 1
12177            abc
12178            Ket
12179            Ket
12180            xyz
12181            Ket
12182            End
12183    ------------------------------------------------------------------
12184    
12185    /[:a[:abc]b:]/BZ
12186    ------------------------------------------------------------------
12187            Bra
12188            [:[a-c]
12189            b:]
12190            Ket
12191            End
12192    ------------------------------------------------------------------
12193    
12194    /((?2))((?1))/SS
12195        abc
12196    Error -26 (nested recursion at the same subject position)
12197    
12198    /((?(R2)a+|(?1)b))/SS
12199        aaaabcde
12200    Error -26 (nested recursion at the same subject position)
12201    
12202    /(?(R)a*(?1)|((?R))b)/SS
12203        aaaabcde
12204    Error -26 (nested recursion at the same subject position)
12205    
12206    /(a+|(?R)b)/
12207    Failed: recursive call could loop indefinitely at offset 7
12208    
12209    /^(a(*:A)(d|e(*:B))z|aeq)/C
12210        adz
12211    --->adz
12212     +0 ^       ^
12213     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
12214     +2 ^       a
12215     +3 ^^      (*:A)
12216     +8 ^^      (d|e(*:B))
12217    Latest Mark: A
12218     +9 ^^      d
12219    +10 ^ ^     |
12220    +18 ^ ^     z
12221    +19 ^  ^    |
12222    +24 ^  ^
12223     0: adz
12224     1: adz
12225     2: d
12226        aez
12227    --->aez
12228     +0 ^       ^
12229     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
12230     +2 ^       a
12231     +3 ^^      (*:A)
12232     +8 ^^      (d|e(*:B))
12233    Latest Mark: A
12234     +9 ^^      d
12235    +11 ^^      e
12236    +12 ^ ^     (*:B)
12237    +17 ^ ^     )
12238    Latest Mark: B
12239    +18 ^ ^     z
12240    +19 ^  ^    |
12241    +24 ^  ^
12242     0: aez
12243     1: aez
12244     2: e
12245        aeqwerty
12246    --->aeqwerty
12247     +0 ^            ^
12248     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
12249     +2 ^            a
12250     +3 ^^           (*:A)
12251     +8 ^^           (d|e(*:B))
12252    Latest Mark: A
12253     +9 ^^           d
12254    +11 ^^           e
12255    +12 ^ ^          (*:B)
12256    +17 ^ ^          )
12257    Latest Mark: B
12258    +18 ^ ^          z
12259    +20 ^            a
12260    Latest Mark: <unset>
12261    +21 ^^           e
12262    +22 ^ ^          q
12263    +23 ^  ^         )
12264    +24 ^  ^
12265     0: aeq
12266     1: aeq
12267    
12268    /.(*F)/
12269        \P\Pabc
12270    No match
12271    
12272    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
12273    Capturing subpattern count = 0
12274    No options
12275    First char = 't'
12276    Need char = 't'
12277    Subject length lower bound = 18
12278    No set of starting bytes
12279    
12280    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
12281    Capturing subpattern count = 0
12282    No options
12283    No first char
12284    No need char
12285    Subject length lower bound = 8
12286    Starting byte set: < o t u
12287    
12288    /a(*SKIP)c|b(*ACCEPT)|/+SI
12289    Capturing subpattern count = 0
12290    No options
12291    No first char
12292    No need char
12293    Study returned NULL
12294        a
12295     0:
12296     0+
12297    
12298    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
12299    Capturing subpattern count = 0
12300    No options
12301    No first char
12302    No need char
12303    Subject length lower bound = -1
12304    Starting byte set: a b x
12305        ax
12306     0: x
12307    
12308    'a*(*ACCEPT)b'+
12309        \N\N
12310    No match
12311        abc\N\N
12312     0: a
12313     0+ bc
12314        bbb\N\N
12315     0:
12316     0+ bb
12317    
12318    /(*ACCEPT)a/+I
12319    Capturing subpattern count = 0
12320    No options
12321    No first char
12322    No need char
12323        bax
12324     0:
12325     0+ bax
12326    
12327    /z(*ACCEPT)a/+I
12328    Capturing subpattern count = 0
12329    No options
12330    First char = 'z'
12331    No need char
12332        baxzbx
12333     0: z
12334     0+ bx
12335    
12336    /a(?:.)*?a/ims
12337        \Mabbbbbbbbbbbbbbbbbbbbba
12338    Minimum match() limit = 65
12339    Minimum match() recursion limit = 2
12340     0: abbbbbbbbbbbbbbbbbbbbba
12341    
12342    /a(?:.(*THEN))*?a/ims
12343        \Mabbbbbbbbbbbbbbbbbbbbba
12344    Minimum match() limit = 86
12345    Minimum match() recursion limit = 45
12346     0: abbbbbbbbbbbbbbbbbbbbba
12347    
12348    /a(?:.(*THEN:ABC))*?a/ims
12349        \Mabbbbbbbbbbbbbbbbbbbbba
12350    Minimum match() limit = 86
12351    Minimum match() recursion limit = 45
12352     0: abbbbbbbbbbbbbbbbbbbbba
12353    
12354    /-- These tests are in agreement with development Perl 5.015, which has fixed
12355        some things, but they don't all work with 5.012, so they aren't in the
12356        Perl-compatible tests. Those after the first come from Perl's own test
12357        files. --/
12358    
12359    /^((yes|no)(*THEN)(*F))?/
12360      yes
12361    No match
12362    
12363    /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
12364    AbcdCBefgBhiBqz
12365    No match
12366    
12367    /(A (.*)   C? (*THEN)  | A D) z/x
12368    AbcdCBefgBhiBqz
12369    No match
12370    
12371    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
12372    AbcdCBefgBhiBqz
12373    No match
12374    
12375    /(A (.*)   C? (*THEN)  | A D) \s* z/x
12376    AbcdCBefgBhiBqz
12377    No match
12378    
12379    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
12380    AbcdCBefgBhiBqz
12381    No match
12382    
12383    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
12384    AbcdCBefgBhiBqz
12385    No match
12386    
12387    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
12388    AbcdCBefgBhiBqz
12389    No match
12390    
12391    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
12392    AbcdCBefgBhiBqz
12393    No match
12394    
12395    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
12396    AbcdCEBefgBhiBqz
12397    No match
12398    
12399    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
12400    AbcdCEBefgBhiBqz
12401    No match
12402    
12403    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
12404    AbcdCBefgBhiBqz
12405    No match
12406    
12407    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
12408    AbcdCBefgBhiBqz
12409    No match
12410    
12411    /-----------------------------------------------/
12412    
12413    /^(?>a+)(?>(z+))\w/BZ
12414    ------------------------------------------------------------------
12415            Bra
12416            ^
12417            Once_NC
12418            a+
12419            Ket
12420            Once
12421            CBra 1
12422            z+
12423            Ket
12424            Ket
12425            \w
12426            Ket
12427            End
12428    ------------------------------------------------------------------
12429        aaaazzzzb
12430     0: aaaazzzzb
12431     1: zzzz
12432        ** Failers
12433    No match
12434        aazz
12435    No match
12436    
12437    /(.)(\1|a(?2))/
12438        bab
12439     0: bab
12440     1: b
12441     2: ab
12442    
12443    /\1|(.)(?R)\1/
12444        cbbbc
12445     0: cbbbc
12446     1: c
12447    
12448    /(.)((?(1)c|a)|a(?2))/
12449        baa
12450    No match
12451    
12452    /(?P<abn>(?P=abn)xxx)/BZ
12453    ------------------------------------------------------------------
12454            Bra
12455            Once
12456            CBra 1
12457            \1
12458            xxx
12459            Ket
12460            Ket
12461            Ket
12462            End
12463    ------------------------------------------------------------------
12464    
12465    /(a\1z)/BZ
12466    ------------------------------------------------------------------
12467            Bra
12468            Once
12469            CBra 1
12470            a
12471            \1
12472            z
12473            Ket
12474            Ket
12475            Ket
12476            End
12477    ------------------------------------------------------------------
12478    
12479    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
12480         \Maabbccddee
12481    Minimum match() limit = 12
12482    Minimum match() recursion limit = 3
12483     0: aabbccddee
12484    
12485    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/