/[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 426 by ph10, Wed Aug 26 15:38:32 2009 UTC revision 766 by ph10, Fri Nov 25 10:04:12 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        NOTE: This is a non-UTF-8 set of tests. When UTF-8 is needed, use test
9        5, and if Unicode Property Support is needed, use test 13. --/
10    
11    /-- Originally, the Perl >= 5.10 things were in here too, but now I have
12        separated many (most?) of them out into test 11. However, there may still
13        be some that were overlooked. --/
14    
15  /(a)b|/I  /(a)b|/I
16  Capturing subpattern count = 1  Capturing subpattern count = 1
17  No options  No options
# Line 92  Failed: missing terminating ] for charac Line 106  Failed: missing terminating ] for charac
106  /(?X)[\B]/  /(?X)[\B]/
107  Failed: invalid escape sequence in character class at offset 6  Failed: invalid escape sequence in character class at offset 6
108    
109    /(?X)[\R]/
110    Failed: invalid escape sequence in character class at offset 6
111    
112    /(?X)[\X]/
113    Failed: invalid escape sequence in character class at offset 6
114    
115    /[\B]/BZ
116    ------------------------------------------------------------------
117            Bra
118            B
119            Ket
120            End
121    ------------------------------------------------------------------
122    
123    /[\R]/BZ
124    ------------------------------------------------------------------
125            Bra
126            R
127            Ket
128            End
129    ------------------------------------------------------------------
130    
131    /[\X]/BZ
132    ------------------------------------------------------------------
133            Bra
134            X
135            Ket
136            End
137    ------------------------------------------------------------------
138    
139  /[z-a]/  /[z-a]/
140  Failed: range out of order in character class at offset 3  Failed: range out of order in character class at offset 3
141    
# Line 134  Capturing subpattern count = 0 Line 178  Capturing subpattern count = 0
178  No options  No options
179  No first char  No first char
180  No need char  No need char
181    Subject length lower bound = 3
182  Starting byte set: c d e  Starting byte set: c d e
183      this sentence eventually mentions a cat      this sentence eventually mentions a cat
184   0: cat   0: cat
# Line 145  Capturing subpattern count = 0 Line 190  Capturing subpattern count = 0
190  Options: caseless  Options: caseless
191  No first char  No first char
192  No need char  No need char
193    Subject length lower bound = 3
194  Starting byte set: C D E c d e  Starting byte set: C D E c d e
195      this sentence eventually mentions a CAT cat      this sentence eventually mentions a CAT cat
196   0: CAT   0: CAT
# Line 156  Capturing subpattern count = 0 Line 202  Capturing subpattern count = 0
202  No options  No options
203  No first char  No first char
204  No need char  No need char
205    Subject length lower bound = 1
206  Starting byte set: a b c d  Starting byte set: a b c d
207    
208  /(a|[^\dZ])/IS  /(a|[^\dZ])/IS
# Line 163  Capturing subpattern count = 1 Line 210  Capturing subpattern count = 1
210  No options  No options
211  No first char  No first char
212  No need char  No need char
213    Subject length lower bound = 1
214  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
215    \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
216    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >    \x1a \x1b \x1c \x1d \x1e \x1f \x20 ! " # $ % & ' ( ) * + , - . / : ; < = >
# Line 183  Capturing subpattern count = 1 Line 231  Capturing subpattern count = 1
231  No options  No options
232  No first char  No first char
233  No need char  No need char
234    Subject length lower bound = 1
235  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b  Starting byte set: \x09 \x0a \x0c \x0d \x20 a b
236    
237  /(ab\2)/  /(ab\2)/
# Line 331  No need char Line 380  No need char
380   2: <unset>   2: <unset>
381   3: def   3: def
382    
383  /abc/IP  /abc/P
384      abc      abc
385   0: abc   0: abc
386      *** Failers      *** Failers
387  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
388    
389  /^abc|def/IP  /^abc|def/P
390      abcdef      abcdef
391   0: abc   0: abc
392      abcdef\B      abcdef\B
393   0: def   0: def
394    
395  /.*((abc)$|(def))/IP  /.*((abc)$|(def))/P
396      defabc      defabc
397   0: defabc   0: defabc
398   1: abc   1: abc
# Line 353  No match: POSIX code 17: match failed Line 402  No match: POSIX code 17: match failed
402   1: def   1: def
403   3: def   3: def
404    
405  /the quick brown fox/IP  /the quick brown fox/P
406      the quick brown fox      the quick brown fox
407   0: the quick brown fox   0: the quick brown fox
408      *** Failers      *** Failers
# Line 361  No match: POSIX code 17: match failed Line 410  No match: POSIX code 17: match failed
410      The Quick Brown Fox      The Quick Brown Fox
411  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
412    
413  /the quick brown fox/IPi  /the quick brown fox/Pi
414      the quick brown fox      the quick brown fox
415   0: the quick brown fox   0: the quick brown fox
416      The Quick Brown Fox      The Quick Brown Fox
417   0: The Quick Brown Fox   0: The Quick Brown Fox
418    
419  /abc.def/IP  /abc.def/P
420      *** Failers      *** Failers
421  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
422      abc\ndef      abc\ndef
423  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
424    
425  /abc$/IP  /abc$/P
426      abc      abc
427   0: abc   0: abc
428      abc\n      abc\n
429   0: abc   0: abc
430    
431  /(abc)\2/IP  /(abc)\2/P
432  Failed: POSIX code 15: bad back reference at offset 7  Failed: POSIX code 15: bad back reference at offset 7
433    
434  /(abc\1)/IP  /(abc\1)/P
435      abc      abc
436  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
437    
# Line 516  Capturing subpattern count = 0 Line 565  Capturing subpattern count = 0
565  No options  No options
566  No first char  No first char
567  No need char  No need char
568    Subject length lower bound = 1
569  Starting byte set: a b c d  Starting byte set: a b c d
570    
571  /(?i)[abcd]/IS  /(?i)[abcd]/IS
# Line 523  Capturing subpattern count = 0 Line 573  Capturing subpattern count = 0
573  Options: caseless  Options: caseless
574  No first char  No first char
575  No need char  No need char
576    Subject length lower bound = 1
577  Starting byte set: A B C D a b c d  Starting byte set: A B C D a b c d
578    
579  /(?m)[xy]|(b|c)/IS  /(?m)[xy]|(b|c)/IS
# Line 530  Capturing subpattern count = 1 Line 581  Capturing subpattern count = 1
581  Options: multiline  Options: multiline
582  No first char  No first char
583  No need char  No need char
584    Subject length lower bound = 1
585  Starting byte set: b c x y  Starting byte set: b c x y
586    
587  /(^a|^b)/Im  /(^a|^b)/Im
# Line 583  Need char = 'h' (caseless) Line 635  Need char = 'h' (caseless)
635  ------------------------------------------------------------------  ------------------------------------------------------------------
636          Bra          Bra
637          CBra 1          CBra 1
638       01 Opt       /i b
      NC b  
639          Ket          Ket
      00 Opt  
640          Ket          Ket
641          End          End
642  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 594  Capturing subpattern count = 1 Line 644  Capturing subpattern count = 1
644  No options  No options
645  First char = 'b' (caseless)  First char = 'b' (caseless)
646  No need char  No need char
647  Study returned NULL  Subject length lower bound = 1
648    No set of starting bytes
649    
650  /(a*b|(?i:c*(?-i)d))/IS  /(a*b|(?i:c*(?-i)d))/IS
651  Capturing subpattern count = 1  Capturing subpattern count = 1
652  No options  No options
653  No first char  No first char
654  No need char  No need char
655    Subject length lower bound = 1
656  Starting byte set: C a b c d  Starting byte set: C a b c d
657    
658  /a$/I  /a$/I
# Line 665  Capturing subpattern count = 0 Line 717  Capturing subpattern count = 0
717  No options  No options
718  No first char  No first char
719  No need char  No need char
720    Subject length lower bound = 1
721  Starting byte set: a b  Starting byte set: a b
722    
723  /(?<!foo)(alpha|omega)/IS  /(?<!foo)(alpha|omega)/IS
# Line 672  Capturing subpattern count = 1 Line 725  Capturing subpattern count = 1
725  No options  No options
726  No first char  No first char
727  Need char = 'a'  Need char = 'a'
728    Subject length lower bound = 5
729  Starting byte set: a o  Starting byte set: a o
730    
731  /(?!alphabet)[ab]/IS  /(?!alphabet)[ab]/IS
# Line 679  Capturing subpattern count = 0 Line 733  Capturing subpattern count = 0
733  No options  No options
734  No first char  No first char
735  No need char  No need char
736    Subject length lower bound = 1
737  Starting byte set: a b  Starting byte set: a b
738    
739  /(?<=foo\n)^bar/Im  /(?<=foo\n)^bar/Im
# Line 833  No match Line 888  No match
888      a      a
889  No match  No match
890    
891  /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
892  Capturing subpattern count = 0  Capturing subpattern count = 0
893  No options  No options
894  First char = 'T'  First char = 'T'
# Line 845  Max back reference = 1 Line 900  Max back reference = 1
900  Options: anchored  Options: anchored
901  No first char  No first char
902  No need char  No need char
903        aaaa
904    No match
905      aaaaaa      aaaaaa
906   0: aaaaaa  No match
907   1: aa  
908    /Perl does not fail these two for the final subjects. Neither did PCRE until/
909    /release 8.01. The problem is in backtracking into a subpattern that contains/
910    No match
911    /a recursive reference to itself. PCRE has now made these into atomic patterns./
912    No match
913    
914    /^(xa|=?\1a){2}$/
915        xa=xaa
916     0: xa=xaa
917     1: =xaa
918        ** Failers
919    No match
920        xa=xaaa
921    No match
922    
923    /^(xa|=?\1a)+$/
924        xa=xaa
925     0: xa=xaa
926     1: =xaa
927        ** Failers
928    No match
929        xa=xaaa
930    No match
931    
932  /These are syntax tests from Perl 5.005/I  /These are syntax tests from Perl 5.005/I
933  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 1168  No need char Line 1248  No need char
1248  ------------------------------------------------------------------  ------------------------------------------------------------------
1249          Bra          Bra
1250          Bra          Bra
      04 Opt  
1251          AllAny*          AllAny*
1252          X          X
1253          Alt          Alt
      04 Opt  
1254          ^          ^
1255          B          B
1256          Ket          Ket
      00 Opt  
1257          Ket          Ket
1258          End          End
1259  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1615  No need char Line 1692  No need char
1692      \Nabc      \Nabc
1693  No match  No match
1694    
1695  /a*(b+)(z)(z)/IP  /a*(b+)(z)(z)/P
1696      aaaabbbbzzzz      aaaabbbbzzzz
1697   0: aaaabbbbzz   0: aaaabbbbzz
1698   1: bbbb   1: bbbb
# Line 1647  Capturing subpattern count = 0 Line 1724  Capturing subpattern count = 0
1724  Options: anchored  Options: anchored
1725  No first char  No first char
1726  Need char = 'd'  Need char = 'd'
1727  Study returned NULL  Subject length lower bound = 4
1728    No set of starting bytes
1729    
1730  /\(             # ( at start  /\(             # ( at start
1731    (?:           # Non-capturing bracket    (?:           # Non-capturing bracket
# Line 1805  Need char = ')' Line 1883  Need char = ')'
1883   0: (abcd(xyz<p>qrs)123)   0: (abcd(xyz<p>qrs)123)
1884   1: abcd(xyz<p>qrs)123   1: abcd(xyz<p>qrs)123
1885   2: 123   2: 123
  3: <unset>  
1886    
1887  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix  /\( ( ( (?>[^()]+) | ((?R)) )* ) \) /Ix
1888  Capturing subpattern count = 3  Capturing subpattern count = 3
# Line 1880  Capturing subpattern count = 0 Line 1957  Capturing subpattern count = 0
1957  No options  No options
1958  No first char  No first char
1959  No need char  No need char
1960    Subject length lower bound = 1
1961  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
1962    _ 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
1963    
# Line 1941  Contains explicit CR or LF match Line 2019  Contains explicit CR or LF match
2019  No options  No options
2020  No first char  No first char
2021  No need char  No need char
2022    Subject length lower bound = 1
2023  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20  Starting byte set: \x09 \x0a \x0b \x0c \x0d \x20
2024    
2025  /^[[:cntrl:]]/DZ  /^[[:cntrl:]]/DZ
# Line 2683  No need char Line 2762  No need char
2762  ------------------------------------------------------------------  ------------------------------------------------------------------
2763          Bra          Bra
2764          a          a
2765       01 Opt       /i b
      NC b  
2766          Ket          Ket
2767          End          End
2768  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2706  No match Line 2784  No match
2784          Bra          Bra
2785          CBra 1          CBra 1
2786          a          a
2787       01 Opt       /i b
      NC b  
2788          Ket          Ket
      00 Opt  
2789          Ket          Ket
2790          End          End
2791  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2731  No match Line 2807  No match
2807  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2808  ------------------------------------------------------------------  ------------------------------------------------------------------
2809          Bra          Bra
2810       NC abc       /i abc
2811          Ket          Ket
2812          End          End
2813  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2744  Need char = 'c' (caseless) Line 2820  Need char = 'c' (caseless)
2820    (?i)abc/IxDZ    (?i)abc/IxDZ
2821  ------------------------------------------------------------------  ------------------------------------------------------------------
2822          Bra          Bra
2823       NC abc       /i abc
2824          Ket          Ket
2825          End          End
2826  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2917  No need char Line 2993  No need char
2993  /(x)*+/DZ  /(x)*+/DZ
2994  ------------------------------------------------------------------  ------------------------------------------------------------------
2995          Bra          Bra
2996          Once          Braposzero
2997          Brazero          CBraPos 1
         CBra 1  
2998          x          x
2999          KetRmax          KetRpos
         Ket  
3000          Ket          Ket
3001          End          End
3002  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3147  Failed: POSIX collating elements are not Line 3221  Failed: POSIX collating elements are not
3221  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
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  /\L/I  /\L/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  /\N{name}/I  /\N{name}/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  /\U/I  /\U/I
3236  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
3237    
3238  /[/I  /[/I
3239  Failed: missing terminating ] for character class at offset 1  Failed: missing terminating ] for character class at offset 1
# Line 3411  Capturing subpattern count = 0 Line 3485  Capturing subpattern count = 0
3485  No options  No options
3486  No first char  No first char
3487  No need char  No need char
3488    Subject length lower bound = 1
3489  Starting byte set: a b  Starting byte set: a b
3490    
3491  /[^a]/I  /[^a]/I
# Line 3430  Capturing subpattern count = 0 Line 3505  Capturing subpattern count = 0
3505  No options  No options
3506  No first char  No first char
3507  Need char = '6'  Need char = '6'
3508    Subject length lower bound = 4
3509  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
3510    
3511  /a^b/I  /a^b/I
# Line 3463  Capturing subpattern count = 0 Line 3539  Capturing subpattern count = 0
3539  Options: caseless  Options: caseless
3540  No first char  No first char
3541  No need char  No need char
3542    Subject length lower bound = 1
3543  Starting byte set: A B a b  Starting byte set: A B a b
3544    
3545  /[ab](?i)cd/IS  /[ab](?i)cd/IS
# Line 3470  Capturing subpattern count = 0 Line 3547  Capturing subpattern count = 0
3547  No options  No options
3548  No first char  No first char
3549  Need char = 'd' (caseless)  Need char = 'd' (caseless)
3550    Subject length lower bound = 3
3551  Starting byte set: a b  Starting byte set: a b
3552    
3553  /abc(?C)def/I  /abc(?C)def/I
# Line 3505  Need char = 'f' Line 3583  Need char = 'f'
3583    1    ^    ^     f    1    ^    ^     f
3584   0: abcdef   0: abcdef
3585    
3586  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3587    Capturing subpattern count = 0
3588    No options
3589    No first char
3590    Need char = 'f'
3591    Subject length lower bound = 7
3592    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3593        1234abcdef
3594    --->1234abcdef
3595      1 ^              \d
3596      1  ^             \d
3597      1   ^            \d
3598      1    ^           \d
3599      2    ^   ^       d
3600     0: 4abcdef
3601        *** Failers
3602    No match
3603        abcdef
3604    No match
3605    
3606    /(?C1)\dabc(?C2)def/ISS
3607  Capturing subpattern count = 0  Capturing subpattern count = 0
3608  No options  No options
3609  No first char  No first char
# Line 3820  Capturing subpattern count = 0 Line 3918  Capturing subpattern count = 0
3918  No options  No options
3919  No first char  No first char
3920  No need char  No need char
3921    Subject length lower bound = 1
3922  Starting byte set: a b  Starting byte set: a b
3923    
3924  /(?R)/I  /(?R)/I
# Line 3908  Need char = '<' Line 4007  Need char = '<'
4007          Bra          Bra
4008          CBra 1          CBra 1
4009          a          a
         Once  
4010          Recurse          Recurse
         Ket  
4011          b          b
4012          Ket          Ket
4013          Ket          Ket
# Line 3939  No options Line 4036  No options
4036  First char = 'a'  First char = 'a'
4037  Need char = 'b'  Need char = 'b'
4038    
 /^\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  
   
4039  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I  /^(\d+|\((?1)([+*-])(?1)\)|-(?1))$/I
4040  Capturing subpattern count = 2  Capturing subpattern count = 2
4041  Options: anchored  Options: anchored
# Line 4164  Need char = 'a' Line 4228  Need char = 'a'
4228          Any          Any
4229          \1          \1
4230          bbb          bbb
         Once  
4231          Recurse          Recurse
         Ket  
4232          d          d
4233          Ket          Ket
4234          End          End
# Line 4538  Need char = ']' Line 4600  Need char = ']'
4600          a          a
4601          CBra 2          CBra 2
4602          b          b
         Once  
4603          Recurse          Recurse
         Ket  
4604          c          c
4605          Ket          Ket
4606          Ket          Ket
# Line 4560  No need char Line 4620  No need char
4620          a          a
4621          CBra 2          CBra 2
4622          b          b
         Once  
4623          Recurse          Recurse
         Ket  
4624          c          c
4625          Ket          Ket
4626          KetRmax          KetRmax
# Line 4583  No need char Line 4641  No need char
4641          a          a
4642          CBra 2          CBra 2
4643          b          b
         Once  
4644          Recurse          Recurse
         Ket  
4645          c          c
4646          Ket          Ket
4647          Ket          Ket
# Line 4594  No need char Line 4650  No need char
4650          a          a
4651          CBra 2          CBra 2
4652          b          b
         Once  
4653          Recurse          Recurse
         Ket  
4654          c          c
4655          Ket          Ket
4656          Ket          Ket
# Line 4637  Capturing subpattern count = 3 Line 4691  Capturing subpattern count = 3
4691  Options: caseless  Options: caseless
4692  No first char  No first char
4693  Need char = 'g' (caseless)  Need char = 'g' (caseless)
4694  Study returned NULL  Subject length lower bound = 8
4695    No set of starting bytes
4696       Baby Bjorn Active Carrier - With free SHIPPING!!       Baby Bjorn Active Carrier - With free SHIPPING!!
4697   0: Baby Bjorn Active Carrier - With free SHIPPING!!   0: Baby Bjorn Active Carrier - With free SHIPPING!!
4698   1: Baby Bjorn Active Carrier - With free SHIPPING!!   1: Baby Bjorn Active Carrier - With free SHIPPING!!
# Line 4655  Capturing subpattern count = 0 Line 4710  Capturing subpattern count = 0
4710  No options  No options
4711  No first char  No first char
4712  Need char = 'b'  Need char = 'b'
4713  Study returned NULL  Subject length lower bound = 1
4714    No set of starting bytes
4715    
4716  /(a|b)*.?c/ISDZ  /(a|b)*.?c/ISDZ
4717  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4675  Capturing subpattern count = 1 Line 4731  Capturing subpattern count = 1
4731  No options  No options
4732  No first char  No first char
4733  Need char = 'c'  Need char = 'c'
4734  Study returned NULL  Subject length lower bound = 1
4735    No set of starting bytes
4736    
4737  /abc(?C255)de(?C)f/DZ  /abc(?C255)de(?C)f/DZ
4738  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 4732  Need char = 'e' Line 4789  Need char = 'e'
4789   +4 ^   ^      e   +4 ^   ^      e
4790  No match  No match
4791    
4792  /a*b/ICDZ  /a*b/ICDZS
4793    ------------------------------------------------------------------
4794            Bra
4795            Callout 255 0 2
4796            a*+
4797            Callout 255 2 1
4798            b
4799            Callout 255 3 0
4800            Ket
4801            End
4802    ------------------------------------------------------------------
4803    Capturing subpattern count = 0
4804    Options:
4805    No first char
4806    Need char = 'b'
4807    Subject length lower bound = 1
4808    Starting byte set: a b
4809      ab
4810    --->ab
4811     +0 ^      a*
4812     +2 ^^     b
4813     +3 ^ ^
4814     0: ab
4815      aaaab
4816    --->aaaab
4817     +0 ^         a*
4818     +2 ^   ^     b
4819     +3 ^    ^
4820     0: aaaab
4821      aaaacb
4822    --->aaaacb
4823     +0 ^          a*
4824     +2 ^   ^      b
4825     +0  ^         a*
4826     +2  ^  ^      b
4827     +0   ^        a*
4828     +2   ^ ^      b
4829     +0    ^       a*
4830     +2    ^^      b
4831     +0      ^     a*
4832     +2      ^     b
4833     +3      ^^
4834     0: b
4835    
4836    /a*b/ICDZSS
4837  ------------------------------------------------------------------  ------------------------------------------------------------------
4838          Bra          Bra
4839          Callout 255 0 2          Callout 255 0 2
# Line 4815  Need char = 'b' Line 4916  Need char = 'b'
4916   +2    ^^      b   +2    ^^      b
4917  No match  No match
4918    
4919  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4920    ------------------------------------------------------------------
4921            Bra
4922            Callout 255 0 9
4923            CBra 1
4924            Callout 255 1 1
4925            a
4926            Callout 255 2 1
4927            b
4928            Callout 255 3 1
4929            c
4930            Callout 255 4 0
4931            Alt
4932            Callout 255 5 1
4933            d
4934            Callout 255 6 1
4935            e
4936            Callout 255 7 1
4937            f
4938            Callout 255 8 0
4939            Ket
4940            Callout 255 9 1
4941            x
4942            Callout 255 10 0
4943            Ket
4944            End
4945    ------------------------------------------------------------------
4946    Capturing subpattern count = 1
4947    Options:
4948    No first char
4949    Need char = 'x'
4950    Subject length lower bound = 4
4951    Starting byte set: a d
4952      abcx
4953    --->abcx
4954     +0 ^        (abc|def)
4955     +1 ^        a
4956     +2 ^^       b
4957     +3 ^ ^      c
4958     +4 ^  ^     |
4959     +9 ^  ^     x
4960    +10 ^   ^
4961     0: abcx
4962     1: abc
4963      defx
4964    --->defx
4965     +0 ^        (abc|def)
4966     +1 ^        a
4967     +5 ^        d
4968     +6 ^^       e
4969     +7 ^ ^      f
4970     +8 ^  ^     )
4971     +9 ^  ^     x
4972    +10 ^   ^
4973     0: defx
4974     1: def
4975      ** Failers
4976    No match
4977      abcdefzx
4978    --->abcdefzx
4979     +0 ^            (abc|def)
4980     +1 ^            a
4981     +2 ^^           b
4982     +3 ^ ^          c
4983     +4 ^  ^         |
4984     +9 ^  ^         x
4985     +5 ^            d
4986     +0    ^         (abc|def)
4987     +1    ^         a
4988     +5    ^         d
4989     +6    ^^        e
4990     +7    ^ ^       f
4991     +8    ^  ^      )
4992     +9    ^  ^      x
4993    No match
4994    
4995    /(abc|def)x/ICDZSS
4996  ------------------------------------------------------------------  ------------------------------------------------------------------
4997          Bra          Bra
4998          Callout 255 0 9          Callout 255 0 9
# Line 4869  Need char = 'x' Line 5046  Need char = 'x'
5046  +10 ^   ^  +10 ^   ^
5047   0: defx   0: defx
5048   1: def   1: def
5049      ** Failers
5050    No match
5051    abcdefzx    abcdefzx
5052  --->abcdefzx  --->abcdefzx
5053   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 4969  No need char Line 5148  No need char
5148   0: abcdcdcd   0: abcdcdcd
5149   1: cd   1: cd
5150    
5151  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5152  ------------------------------------------------------------------  ------------------------------------------------------------------
5153          Bra          Bra
5154          Callout 255 0 14          Callout 255 0 14
# Line 5002  Capturing subpattern count = 1 Line 5181  Capturing subpattern count = 1
5181  Options:  Options:
5182  No first char  No first char
5183  No need char  No need char
5184    Subject length lower bound = 2
5185    Starting byte set: a b x
5186      Note: that { does NOT introduce a quantifier      Note: that { does NOT introduce a quantifier
5187  --->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  
5188   +0         ^                                        ([ab]{,4}c|xy)   +0         ^                                        ([ab]{,4}c|xy)
5189   +1         ^                                        [ab]   +1         ^                                        [ab]
5190   +5         ^^                                       {   +5         ^^                                       {
5191  +11         ^                                        x  +11         ^                                        x
5192   +0          ^                                       ([ab]{,4}c|xy)   +0                                 ^                ([ab]{,4}c|xy)
5193     +1                                 ^                [ab]
5194     +5                                 ^^               {
5195    +11                                 ^                x
5196     +0                                     ^            ([ab]{,4}c|xy)
5197     +1                                     ^            [ab]
5198     +5                                     ^^           {
5199    +11                                     ^            x
5200    No match
5201    
5202    /([ab]{,4}c|xy)/ICDZSS
5203    ------------------------------------------------------------------
5204            Bra
5205            Callout 255 0 14
5206            CBra 1
5207            Callout 255 1 4
5208            [ab]
5209            Callout 255 5 1
5210            {
5211            Callout 255 6 1
5212            ,
5213            Callout 255 7 1
5214            4
5215            Callout 255 8 1
5216            }
5217            Callout 255 9 1
5218            c
5219            Callout 255 10 0
5220            Alt
5221            Callout 255 11 1
5222            x
5223            Callout 255 12 1
5224            y
5225            Callout 255 13 0
5226            Ket
5227            Callout 255 14 0
5228            Ket
5229            End
5230    ------------------------------------------------------------------
5231    Capturing subpattern count = 1
5232    Options:
5233    No first char
5234    No need char
5235        Note: that { does NOT introduce a quantifier
5236    --->Note: that { does NOT introduce a quantifier
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    +11        ^                                         x
5261     +0         ^                                        ([ab]{,4}c|xy)
5262     +1         ^                                        [ab]
5263     +5         ^^                                       {
5264    +11         ^                                        x
5265     +0          ^                                       ([ab]{,4}c|xy)
5266   +1          ^                                       [ab]   +1          ^                                       [ab]
5267  +11          ^                                       x  +11          ^                                       x
5268   +0           ^                                      ([ab]{,4}c|xy)   +0           ^                                      ([ab]{,4}c|xy)
# Line 5421  No match Line 5651  No match
5651      123456\P      123456\P
5652  No match  No match
5653    
5654  /abc/I>testsavedregex  /abc/IS>testsavedregex
5655    Capturing subpattern count = 0
5656    No options
5657    First char = 'a'
5658    Need char = 'c'
5659    Subject length lower bound = 3
5660    No set of starting bytes
5661    Compiled pattern written to testsavedregex
5662    Study data written to testsavedregex
5663    <testsavedregex
5664    Compiled pattern loaded from testsavedregex
5665    Study data loaded from testsavedregex
5666        abc
5667     0: abc
5668        ** Failers
5669    No match
5670        bca
5671    No match
5672    
5673    /abc/ISS>testsavedregex
5674  Capturing subpattern count = 0  Capturing subpattern count = 0
5675  No options  No options
5676  First char = 'a'  First char = 'a'
5677  Need char = 'c'  Need char = 'c'
5678  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5679  <testsavedregex  <testsavedregex
5680  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5681  No study data  No study data
5682      abc      abc
5683   0: abc   0: abc
# Line 5437  No match Line 5686  No match
5686      bca      bca
5687  No match  No match
5688    
5689  /abc/IF>testsavedregex  /abc/IFS>testsavedregex
5690    Capturing subpattern count = 0
5691    No options
5692    First char = 'a'
5693    Need char = 'c'
5694    Subject length lower bound = 3
5695    No set of starting bytes
5696    Compiled pattern written to testsavedregex
5697    Study data written to testsavedregex
5698    <testsavedregex
5699    Compiled pattern (byte-inverted) loaded from testsavedregex
5700    Study data loaded from testsavedregex
5701        abc
5702     0: abc
5703        ** Failers
5704    No match
5705        bca
5706    No match
5707    
5708    /abc/IFSS>testsavedregex
5709  Capturing subpattern count = 0  Capturing subpattern count = 0
5710  No options  No options
5711  First char = 'a'  First char = 'a'
5712  Need char = 'c'  Need char = 'c'
5713  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5714  <testsavedregex  <testsavedregex
5715  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5716  No study data  No study data
5717      abc      abc
5718   0: abc   0: abc
# Line 5458  Capturing subpattern count = 1 Line 5726  Capturing subpattern count = 1
5726  No options  No options
5727  No first char  No first char
5728  No need char  No need char
5729    Subject length lower bound = 1
5730  Starting byte set: a b  Starting byte set: a b
5731  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5732  Study data written to testsavedregex  Study data written to testsavedregex
5733  <testsavedregex  <testsavedregex
5734  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5735  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5736      abc      abc
5737   0: a   0: a
# Line 5473  Study data loaded from testsavedregex Line 5742  Study data loaded from testsavedregex
5742      def      def
5743  No match  No match
5744    
5745    /(a|b)/ISS>testsavedregex
5746    Capturing subpattern count = 1
5747    No options
5748    No first char
5749    No need char
5750    Compiled pattern written to testsavedregex
5751    <testsavedregex
5752    Compiled pattern loaded from testsavedregex
5753    No study data
5754        abc
5755     0: a
5756     1: a
5757        ** Failers
5758     0: a
5759     1: a
5760        def
5761    No match
5762    
5763  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5764  Capturing subpattern count = 1  Capturing subpattern count = 1
5765  No options  No options
5766  No first char  No first char
5767  No need char  No need char
5768    Subject length lower bound = 1
5769  Starting byte set: a b  Starting byte set: a b
5770  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5771  Study data written to testsavedregex  Study data written to testsavedregex
5772  <testsavedregex  <testsavedregex
5773  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5774  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5775      abc      abc
5776   0: a   0: a
# Line 5493  Study data loaded from testsavedregex Line 5781  Study data loaded from testsavedregex
5781      def      def
5782  No match  No match
5783    
5784    /(a|b)/ISSF>testsavedregex
5785    Capturing subpattern count = 1
5786    No options
5787    No first char
5788    No need char
5789    Compiled pattern written to testsavedregex
5790    <testsavedregex
5791    Compiled pattern (byte-inverted) loaded from testsavedregex
5792    No study data
5793        abc
5794     0: a
5795     1: a
5796        ** Failers
5797     0: a
5798     1: a
5799        def
5800    No match
5801    
5802  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5803  Capturing subpattern count = 3  Capturing subpattern count = 3
5804  Max back reference = 1  Max back reference = 1
5805  Options: multiline dotall  Options: multiline dotall
5806  First char = '<'  First char = '<'
5807  Need char = '>'  Need char = '>'
5808      <!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>
5809   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>
5810   1: seite   1: seite
5811   2: \x0a   2: \x0a
# Line 5548  No match Line 5854  No match
5854      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5855  No match  No match
5856    
5857  /ab.cd/IP  /ab.cd/P
5858      ab-cd      ab-cd
5859   0: ab-cd   0: ab-cd
5860      ab=cd      ab=cd
# Line 5558  No match: POSIX code 17: match failed Line 5864  No match: POSIX code 17: match failed
5864      ab\ncd      ab\ncd
5865  No match: POSIX code 17: match failed  No match: POSIX code 17: match failed
5866    
5867  /ab.cd/IPs  /ab.cd/Ps
5868      ab-cd      ab-cd
5869   0: ab-cd   0: ab-cd
5870      ab=cd      ab=cd
# Line 5858  No need char Line 6164  No need char
6164      ((this))      ((this))
6165   0: ((this))   0: ((this))
6166    
6167  /a(b)c/IPN  /a(b)c/PN
6168      abc      abc
6169  Matched with REG_NOSUB  Matched with REG_NOSUB
6170    
6171  /a(?P<name>b)c/IPN  /a(?P<name>b)c/PN
6172      abc      abc
6173  Matched with REG_NOSUB  Matched with REG_NOSUB
6174    
# Line 6190  Capturing subpattern count = 0 Line 6496  Capturing subpattern count = 0
6496  No options  No options
6497  No first char  No first char
6498  Need char = ','  Need char = ','
6499    Subject length lower bound = 1
6500  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,  Starting byte set: \x09 \x0a \x0c \x0d \x20 ,
6501      \x0b,\x0b      \x0b,\x0b
6502   0: ,   0: ,
# Line 6494  Capturing subpattern count = 1 Line 6801  Capturing subpattern count = 1
6801  No options  No options
6802  No first char  No first char
6803  No need char  No need char
6804    Subject length lower bound = 1
6805  Starting byte set: C a b c d  Starting byte set: C a b c d
6806    
6807  /()[ab]xyz/IS  /()[ab]xyz/IS
# Line 6501  Capturing subpattern count = 1 Line 6809  Capturing subpattern count = 1
6809  No options  No options
6810  No first char  No first char
6811  Need char = 'z'  Need char = 'z'
6812    Subject length lower bound = 4
6813  Starting byte set: a b  Starting byte set: a b
6814    
6815  /(|)[ab]xyz/IS  /(|)[ab]xyz/IS
# Line 6508  Capturing subpattern count = 1 Line 6817  Capturing subpattern count = 1
6817  No options  No options
6818  No first char  No first char
6819  Need char = 'z'  Need char = 'z'
6820    Subject length lower bound = 4
6821  Starting byte set: a b  Starting byte set: a b
6822    
6823  /(|c)[ab]xyz/IS  /(|c)[ab]xyz/IS
# Line 6515  Capturing subpattern count = 1 Line 6825  Capturing subpattern count = 1
6825  No options  No options
6826  No first char  No first char
6827  Need char = 'z'  Need char = 'z'
6828    Subject length lower bound = 4
6829  Starting byte set: a b c  Starting byte set: a b c
6830    
6831  /(|c?)[ab]xyz/IS  /(|c?)[ab]xyz/IS
# Line 6522  Capturing subpattern count = 1 Line 6833  Capturing subpattern count = 1
6833  No options  No options
6834  No first char  No first char
6835  Need char = 'z'  Need char = 'z'
6836    Subject length lower bound = 4
6837  Starting byte set: a b c  Starting byte set: a b c
6838    
6839  /(d?|c?)[ab]xyz/IS  /(d?|c?)[ab]xyz/IS
# Line 6529  Capturing subpattern count = 1 Line 6841  Capturing subpattern count = 1
6841  No options  No options
6842  No first char  No first char
6843  Need char = 'z'  Need char = 'z'
6844    Subject length lower bound = 4
6845  Starting byte set: a b c d  Starting byte set: a b c d
6846    
6847  /(d?|c)[ab]xyz/IS  /(d?|c)[ab]xyz/IS
# Line 6536  Capturing subpattern count = 1 Line 6849  Capturing subpattern count = 1
6849  No options  No options
6850  No first char  No first char
6851  Need char = 'z'  Need char = 'z'
6852    Subject length lower bound = 4
6853  Starting byte set: a b c d  Starting byte set: a b c d
6854    
6855  /^a*b\d/DZ  /^a*b\d/DZ
# Line 6608  No match Line 6922  No match
6922  ------------------------------------------------------------------  ------------------------------------------------------------------
6923          Bra          Bra
6924          ^          ^
6925          a*       /i a*
6926       NC A       /i A
6927          \d          \d
6928          Ket          Ket
6929          End          End
# Line 6628  Capturing subpattern count = 1 Line 6942  Capturing subpattern count = 1
6942  No options  No options
6943  No first char  No first char
6944  No need char  No need char
6945    Subject length lower bound = 1
6946  Starting byte set: a b c d  Starting byte set: a b c d
6947    
6948  /(a+|b*)[cd]/IS  /(a+|b*)[cd]/IS
# Line 6635  Capturing subpattern count = 1 Line 6950  Capturing subpattern count = 1
6950  No options  No options
6951  No first char  No first char
6952  No need char  No need char
6953    Subject length lower bound = 1
6954  Starting byte set: a b c d  Starting byte set: a b c d
6955    
6956  /(a*|b+)[cd]/IS  /(a*|b+)[cd]/IS
# Line 6642  Capturing subpattern count = 1 Line 6958  Capturing subpattern count = 1
6958  No options  No options
6959  No first char  No first char
6960  No need char  No need char
6961    Subject length lower bound = 1
6962  Starting byte set: a b c d  Starting byte set: a b c d
6963    
6964  /(a+|b+)[cd]/IS  /(a+|b+)[cd]/IS
# Line 6649  Capturing subpattern count = 1 Line 6966  Capturing subpattern count = 1
6966  No options  No options
6967  No first char  No first char
6968  No need char  No need char
6969    Subject length lower bound = 2
6970  Starting byte set: a b  Starting byte set: a b
6971    
6972  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((  /((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((((
# Line 7233  Matched, but too many substrings Line 7551  Matched, but too many substrings
7551  /[^a]+a/BZi  /[^a]+a/BZi
7552  ------------------------------------------------------------------  ------------------------------------------------------------------
7553          Bra          Bra
7554          [^A]++       /i [^A]++
7555       NC a       /i a
7556          Ket          Ket
7557          End          End
7558  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7242  Matched, but too many substrings Line 7560  Matched, but too many substrings
7560  /[^a]+A/BZi  /[^a]+A/BZi
7561  ------------------------------------------------------------------  ------------------------------------------------------------------
7562          Bra          Bra
7563          [^A]++       /i [^A]++
7564       NC A       /i A
7565          Ket          Ket
7566          End          End
7567  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7438  No match Line 7756  No match
7756  ------------------------------------------------------------------  ------------------------------------------------------------------
7757          Bra          Bra
7758          ^          ^
         Once  
7759          Recurse          Recurse
         Ket  
7760          [()]          [()]
7761          CBra 1          CBra 1
7762          Ket          Ket
# Line 7454  No match Line 7770  No match
7770          ^          ^
7771          CBra 1          CBra 1
7772          Cond          Cond
7773        2 Cond ref        2 Cond nref
7774          y          y
7775          Ket          Ket
7776          [()]          [()]
# Line 7474  No match Line 7790  No match
7790  ------------------------------------------------------------------  ------------------------------------------------------------------
7791          Bra          Bra
7792          ^          ^
         Once  
7793          Recurse          Recurse
         Ket  
7794          ()          ()
7795          CBra 1          CBra 1
7796          Ket          Ket
# Line 7488  No match Line 7802  No match
7802  ------------------------------------------------------------------  ------------------------------------------------------------------
7803          Bra          Bra
7804          ^          ^
         Once  
7805          Recurse          Recurse
         Ket  
7806          [(\]a]          [(\]a]
7807          CBra 1          CBra 1
7808          Ket          Ket
# Line 7503  No match Line 7815  No match
7815  ------------------------------------------------------------------  ------------------------------------------------------------------
7816          Bra          Bra
7817          ^          ^
         Once  
7818          Recurse          Recurse
         Ket  
7819          CBra 1          CBra 1
7820          Ket          Ket
7821          Ket          Ket
# Line 7572  Need char = ':' Line 7882  Need char = ':'
7882   0: abcd:   0: abcd:
7883   1: abcd   1: abcd
7884    
 /(?'abc'\w+):\k<abc>{2}/  
     a:aaxyz  
  0: a:aa  
  1: a  
     ab:ababxyz  
  0: ab:abab  
  1: ab  
     ** Failers  
 No match  
     a:axyz  
 No match  
     ab:abxyz  
 No match  
   
7885  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J  /(?'abc'a|b)(?<abc>d|e)\k<abc>{2}/J
7886      adaa      adaa
7887   0: adaa   0: adaa
# Line 7612  No match Line 7908  No match
7908      bddd      bddd
7909  No match  No match
7910    
 /^(?<ab>a)? (?(<ab>)b|c) (?('ab')d|e)/x  
     abd  
  0: abd  
  1: a  
     ce  
  0: ce  
   
7911  /(?(<bc))/  /(?(<bc))/
7912  Failed: malformed number or name after (?( at offset 6  Failed: malformed number or name after (?( at offset 6
7913    
# Line 7649  Failed: reference to non-existent subpat Line 7938  Failed: reference to non-existent subpat
7938   1: abcabc1Xabc2XabcX   1: abcabc1Xabc2XabcX
7939   2: abcabc1Xabc2XabcX   2: abcabc1Xabc2XabcX
7940    
 /^(?(DEFINE) (?<A> a) (?<B> b) )  (?&A) (?&B) /x  
     abcd  
  0: ab  
  1: <unset>  
  2: <unset>  
   
 /(?<NAME>(?&NAME_PAT))\s+(?<ADDR>(?&ADDRESS_PAT))  
   (?(DEFINE)  
   (?<NAME_PAT>[a-z]+)  
   (?<ADDRESS_PAT>\d+)  
   )/x  
     metcalfe 33  
  0: metcalfe 33  
  1: metcalfe  
  2: 33  
  3: <unset>  
  4: <unset>  
   
7941  /^(?(DEFINE) abc | xyz ) /x  /^(?(DEFINE) abc | xyz ) /x
7942  Failed: DEFINE group contains more than one branch at offset 22  Failed: DEFINE group contains more than one branch at offset 22
7943    
# Line 7676  Options: extended Line 7947  Options: extended
7947  First char = 'x'  First char = 'x'
7948  Need char = 'z'  Need char = 'z'
7949    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7950  /(a|)*\d/  /(a|)*\d/
7951    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7952  No match  No match
# Line 7844  Need char = 'P' Line 8112  Need char = 'P'
8112   0: PXP   0: PXP
8113   1: P   1: P
8114    
 /(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))\b(?&byte)(\.(?&byte)){3}/  
     1.2.3.4  
  0: 1.2.3.4  
  1: <unset>  
  2: .4  
     131.111.10.206  
  0: 131.111.10.206  
  1: <unset>  
  2: .206  
     10.0.0.0  
  0: 10.0.0.0  
  1: <unset>  
  2: .0  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
 /\b(?&byte)(\.(?&byte)){3}(?(DEFINE)(?<byte>2[0-4]\d|25[0-5]|1\d\d|[1-9]?\d))/  
     1.2.3.4  
  0: 1.2.3.4  
  1: .4  
  2: <unset>  
     131.111.10.206  
  0: 131.111.10.206  
  1: .206  
  2: <unset>  
     10.0.0.0  
  0: 10.0.0.0  
  1: .0  
  2: <unset>  
     ** Failers  
 No match  
     10.6  
 No match  
     455.3.4.5  
 No match  
   
8115  /(?:a(?&abc)b)*(?<abc>x)/  /(?:a(?&abc)b)*(?<abc>x)/
8116      123axbaxbaxbx456      123axbaxbaxbx456
8117   0: axbaxbaxbx   0: axbaxbaxbx
# Line 7921  No match Line 8149  No match
8149     DEFabcABCXYZ     DEFabcABCXYZ
8150  No match  No match
8151    
 /^(a(b))\1\g1\g{1}\g-1\g{-1}\g{-02}Z/  
     ababababbbabZXXXX  
  0: ababababbbabZ  
  1: ab  
  2: b  
   
8152  /^(a)\g-2/  /^(a)\g-2/
8153  Failed: reference to non-existent subpattern at offset 7  Failed: reference to non-existent subpattern at offset 7
8154    
# Line 8042  No match Line 8264  No match
8264          Alt          Alt
8265          c          c
8266          Ket          Ket
         Once  
8267          Recurse          Recurse
8268          Ket          Ket
         Ket  
8269          End          End
8270  ------------------------------------------------------------------  ------------------------------------------------------------------
8271      abc      abc
# Line 8056  No match Line 8276  No match
8276  ------------------------------------------------------------------  ------------------------------------------------------------------
8277          Bra          Bra
8278          xy          xy
         Once  
8279          Recurse          Recurse
         Ket  
8280          CBra 1          CBra 1
8281          abc          abc
8282          Ket          Ket
# Line 8182  Failed: reference to non-existent subpat Line 8400  Failed: reference to non-existent subpat
8400   0: Y!   0: Y!
8401   1: !   1: !
8402    
 /(foo)\Kbar/  
     foobar  
  0: bar  
  1: foo  
   
 /(foo)(\Kbar|baz)/  
     foobar  
  0: bar  
  1: foo  
  2: bar  
     foobaz  
  0: foobaz  
  1: foo  
  2: baz  
   
 /(foo\Kbar)baz/  
     foobarbaz  
  0: barbaz  
  1: foobar  
   
8403  /(?<A>tom|bon)-\k{A}/  /(?<A>tom|bon)-\k{A}/
8404      tom-tom      tom-tom
8405   0: tom-tom   0: tom-tom
# Line 8214  No match Line 8412  No match
8412      tom-bon      tom-bon
8413  No match  No match
8414    
 /(?<A>tom|bon)-\g{A}/  
     tom-tom  
  0: tom-tom  
  1: tom  
     bon-bon  
  0: bon-bon  
  1: bon  
   
8415  /\g{A/  /\g{A/
8416  Failed: syntax error in subpattern name (missing terminator) at offset 4  Failed: syntax error in subpattern name (missing terminator) at offset 4
8417    
# Line 8316  Failed: syntax error in subpattern name Line 8506  Failed: syntax error in subpattern name
8506   3: <unset>   3: <unset>
8507   4: x   4: x
8508    
 /(?|(abc)|(xyz))\1/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzxyz  
  0: xyzxyz  
  1: xyz  
     ** Failers  
 No match  
     abcxyz  
 No match  
     xyzabc  
 No match  
   
 /(?|(abc)|(xyz))(?1)/  
     abcabc  
  0: abcabc  
  1: abc  
     xyzabc  
  0: xyzabc  
  1: xyz  
     ** Failers  
 No match  
     xyzxyz  
 No match  
   
 /\H\h\V\v/  
     X X\x0a  
  0: X X\x0a  
     X\x09X\x0b  
  0: X\x09X\x0b  
     ** Failers  
 No match  
     \xa0 X\x0a  
 No match  
   
 /\H*\h+\V?\v{3,4}/  
     \x09\x20\xa0X\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0X\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c\x0d\x0a  
  0: \x09 \xa0\x0a\x0b\x0c\x0d  
     \x09\x20\xa0\x0a\x0b\x0c  
  0: \x09 \xa0\x0a\x0b\x0c  
     ** Failers  
 No match  
     \x09\x20\xa0\x0a\x0b  
 No match  
   
 /\H{3,4}/  
     XY  ABCDE  
  0: ABCD  
     XY  PQR ST  
  0: PQR  
   
 /.\h{3,4}./  
     XY  AB    PQRS  
  0: B    P  
   
 /\h*X\h?\H+Y\H?Z/  
     >XNNNYZ  
  0: XNNNYZ  
     >  X NYQZ  
  0:   X NYQZ  
     ** Failers  
 No match  
     >XYZ  
 No match  
     >  X NY Z  
 No match  
   
 /\v*X\v?Y\v+Z\V*\x0a\V+\x0b\V{2,3}\x0c/  
     >XY\x0aZ\x0aA\x0bNN\x0c  
  0: XY\x0aZ\x0aA\x0bNN\x0c  
     >\x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
  0: \x0a\x0dX\x0aY\x0a\x0bZZZ\x0aAAA\x0bNNN\x0c  
   
8509  /[\h]/BZ  /[\h]/BZ
8510  ------------------------------------------------------------------  ------------------------------------------------------------------
8511          Bra          Bra
# Line 8643  No match Line 8757  No match
8757  ------------------------------------------------------------------  ------------------------------------------------------------------
8758    
8759  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8760  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8761   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8762    
8763  /[\E]AAA/  /[\E]AAA/
# Line 8688  Failed: missing terminating ] for charac Line 8802  Failed: missing terminating ] for charac
8802          End          End
8803  ------------------------------------------------------------------  ------------------------------------------------------------------
8804    
 /^a+(*FAIL)/  
     aaaaaa  
 No match  
   
 /a+b?c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*PRUNE)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*COMMIT)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /a+b?(*SKIP)c+(*FAIL)/  
     aaabcccaaabccc  
 No match  
   
 /^(?:aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
     aaa++++++  
  0: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
     bbb+++++  
  0: bbb  
     cccxxxx  
  0: cccxxxx  
     ccc++++  
  0: ccc  
     dddddddd  
  0: ddd  
   
 /^(aaa(*THEN)\w{6}|bbb(*THEN)\w{5}|ccc(*THEN)\w{4}|\w{3})/  
     aaaxxxxxx  
  0: aaaxxxxxx  
  1: aaaxxxxxx  
     aaa++++++  
  0: aaa  
  1: aaa  
     bbbxxxxx  
  0: bbbxxxxx  
  1: bbbxxxxx  
     bbb+++++  
  0: bbb  
  1: bbb  
     cccxxxx  
  0: cccxxxx  
  1: cccxxxx  
     ccc++++  
  0: ccc  
  1: ccc  
     dddddddd  
  0: ddd  
  1: ddd  
   
 /a+b?(*THEN)c+(*FAIL)/  
     aaabccc  
 No match  
   
 /(A (A|B(*ACCEPT)|C) D)(E)/x  
     ABX  
  0: AB  
     AADE  
  0: AADE  
  1: AAD  
  2: A  
  3: E  
     ACDE  
  0: ACDE  
  1: ACD  
  2: C  
  3: E  
     ** Failers  
 No match  
     AD  
 No match  
   
8805  /^a+(*FAIL)/C  /^a+(*FAIL)/C
8806      aaaaaa      aaaaaa
8807  --->aaaaaa  --->aaaaaa
# Line 8897  No match Line 8930  No match
8930  +13   ^  ^      (*FAIL)  +13   ^  ^      (*FAIL)
8931  No match  No match
8932    
 /a(*PRUNE:XXX)b/  
 Failed: (*VERB) with an argument is not supported at offset 8  
   
8933  /a(*MARK)b/  /a(*MARK)b/
8934  Failed: (*VERB) not recognized at offset 7  Failed: (*MARK) must have an argument at offset 7
8935    
8936  /(?i:A{1,}\6666666666)/  /(?i:A{1,}\6666666666)/
8937  Failed: number is too big at offset 19  Failed: number is too big at offset 19
# Line 8909  Failed: number is too big at offset 19 Line 8939  Failed: number is too big at offset 19
8939  /\g6666666666/  /\g6666666666/
8940  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8941    
8942  /[\g6666666666]/  /[\g6666666666]/BZ
8943  Failed: number is too big at offset 12  ------------------------------------------------------------------
8944            Bra
8945            [6g]
8946            Ket
8947            End
8948    ------------------------------------------------------------------
8949    
8950  /(?1)\c[/  /(?1)\c[/
8951  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 8990  No match Line 9025  No match
9025  No match  No match
9026      a\x85b      a\x85b
9027  No match  No match
9028    
9029    /(*ANY).*/g
9030        abc\r\ndef
9031     0: abc
9032     0:
9033     0: def
9034     0:
9035    
9036    /(*ANYCRLF).*/g
9037        abc\r\ndef
9038     0: abc
9039     0:
9040     0: def
9041     0:
9042    
9043    /(*CRLF).*/g
9044        abc\r\ndef
9045     0: abc
9046     0:
9047     0: def
9048     0:
9049    
9050  /a\Rb/I<bsr_anycrlf>  /a\Rb/I<bsr_anycrlf>
9051  Capturing subpattern count = 0  Capturing subpattern count = 0
# Line 9195  Failed: subpattern name expected at offs Line 9251  Failed: subpattern name expected at offs
9251  /\k{}/  /\k{}/
9252  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9253    
9254    /\k/
9255    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9256    
9257    /\kabc/
9258    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9259    
9260  /(?P=)/  /(?P=)/
9261  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9262    
# Line 9240  Failed: unknown POSIX class name at offs Line 9302  Failed: unknown POSIX class name at offs
9302  /[[:a\dz:]]/  /[[:a\dz:]]/
9303  Failed: unknown POSIX class name at offset 3  Failed: unknown POSIX class name at offset 3
9304    
 /^(?<name>a|b\g<name>c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /^(?<name>a|b\g'name'c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /^(a|b\g<1>c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /^(a|b\g'1'c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /^(a|b\g'-1'c)/  
     aaaa  
  0: a  
  1: a  
     bacxxx  
  0: bac  
  1: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
   
 /(^(a|b\g<-1>c))/  
     aaaa  
  0: a  
  1: a  
  2: a  
     bacxxx  
  0: bac  
  1: bac  
  2: bac  
     bbaccxxx  
  0: bbacc  
  1: bbacc  
  2: bbacc  
     bbbacccxx  
  0: bbbaccc  
  1: bbbaccc  
  2: bbbaccc  
   
9305  /(^(a|b\g<-1'c))/  /(^(a|b\g<-1'c))/
9306  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15  Failed: \g is not followed by a braced, angle-bracketed, or quoted name/number or by a plain number at offset 15
9307    
 /(^(a|b\g{-1}))/  
     bacxxx  
 No match  
   
 /(?-i:\g<name>)(?i:(?<name>a))/  
     XaaX  
  0: aa  
  1: a  
     XAAX  
  0: AA  
  1: A  
   
 /(?i:\g<name>)(?-i:(?<name>a))/  
     XaaX  
  0: aa  
  1: a  
     ** Failers  
 No match  
     XAAX  
 No match  
   
 /(?-i:\g<+1>)(?i:(a))/  
     XaaX  
  0: aa  
  1: a  
     XAAX  
  0: AA  
  1: A  
   
 /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/  
   
 /(?<n>a|b|c)\g<n>*/  
    abc  
  0: abc  
  1: a  
    accccbbb  
  0: accccbbb  
  1: a  
   
9308  /^(?+1)(?<a>x|y){0}z/  /^(?+1)(?<a>x|y){0}z/
9309      xzxx      xzxx
9310   0: xz   0: xz
  1: <unset>  
9311      yzyy      yzyy
9312   0: yz   0: yz
  1: <unset>  
9313      ** Failers      ** Failers
9314  No match  No match
9315      xxz      xxz
# Line 9491  Capturing subpattern count = 1 Line 9424  Capturing subpattern count = 1
9424  No options  No options
9425  No first char  No first char
9426  No need char  No need char
9427    Subject length lower bound = 1
9428  Starting byte set: x y z  Starting byte set: x y z
9429    
9430  /(?(?=.*b)b|^)/CI  /(?(?=.*b)b|^)/CI
# Line 9604  No match Line 9538  No match
9538   +0        ^     x   +0        ^     x
9539   +0         ^    x   +0         ^    x
9540  No match  No match
9541    
9542    /(*NO_START_OPT)xyz/C
9543      abcxyz
9544    --->abcxyz
9545    +15 ^          x
9546    +15  ^         x
9547    +15   ^        x
9548    +15    ^       x
9549    +16    ^^      y
9550    +17    ^ ^     z
9551    +18    ^  ^
9552     0: xyz
9553    
9554    /xyz/CY
9555      abcxyz
9556    --->abcxyz
9557     +0 ^          x
9558     +0  ^         x
9559     +0   ^        x
9560     +0    ^       x
9561     +1    ^^      y
9562     +2    ^ ^     z
9563     +3    ^  ^
9564     0: xyz
9565    
9566  /^"((?(?=[a])[^"])|b)*"$/C  /^"((?(?=[a])[^"])|b)*"$/C
9567      "ab"      "ab"
# Line 9638  No match Line 9596  No match
9596   0: "ab"   0: "ab"
9597   1:   1:
9598    
 /^X(?5)(a)(?|(b)|(q))(c)(d)(Y)/  
     XYabcdY  
  0: XYabcdY  
  1: a  
  2: b  
  3: c  
  4: d  
  5: Y  
   
9599  /^X(?5)(a)(?|(b)|(q))(c)(d)Y/  /^X(?5)(a)(?|(b)|(q))(c)(d)Y/
9600  Failed: reference to non-existent subpattern at offset 5  Failed: reference to non-existent subpattern at offset 5
9601    
# Line 9659  Failed: reference to non-existent subpat Line 9608  Failed: reference to non-existent subpat
9608   4: d   4: d
9609   5: Y   5: Y
9610    
 /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/  
     XYabcdY  
  0: XYabcdY  
  1: a  
  2: b  
  3: <unset>  
  4: <unset>  
  5: c  
  6: d  
  7: Y  
   
 /^X(?7)(a)(?|(b|(r)(s))|(q))(c)(d)(Y)/  
     XYabcdY  
  0: XYabcdY  
  1: a  
  2: b  
  3: <unset>  
  4: <unset>  
  5: c  
  6: d  
  7: Y  
   
 /^X(?7)(a)(?|(b|(?|(r)|(t))(s))|(q))(c)(d)(Y)/  
     XYabcdY  
  0: XYabcdY  
  1: a  
  2: b  
  3: <unset>  
  4: <unset>  
  5: c  
  6: d  
  7: Y  
   
9611  /Xa{2,4}b/  /Xa{2,4}b/
9612      X\P      X\P
9613  Partial match: X  Partial match: X
# Line 9918  Partial match: 123999 Line 9834  Partial match: 123999
9834    
9835  /Z(*F)/  /Z(*F)/
9836      Z\P      Z\P
9837  Partial match: Z  No match
9838      ZA\P      ZA\P
9839  No match  No match
9840    
9841  /Z(?!)/  /Z(?!)/
9842      Z\P      Z\P
9843  Partial match: Z  No match
9844      ZA\P      ZA\P
9845  No match  No match
9846    
9847  / End of testinput2 /  /dog(sbody)?/
9848        dogs\P
9849     0: dog
9850        dogs\P\P
9851    Partial match: dogs
9852    
9853    /dog(sbody)??/
9854        dogs\P
9855     0: dog
9856        dogs\P\P
9857     0: dog
9858    
9859    /dog|dogsbody/
9860        dogs\P
9861     0: dog
9862        dogs\P\P
9863     0: dog
9864    
9865    /dogsbody|dog/
9866        dogs\P
9867     0: dog
9868        dogs\P\P
9869    Partial match: dogs
9870    
9871    /\bthe cat\b/
9872        the cat\P
9873     0: the cat
9874        the cat\P\P
9875    Partial match: the cat
9876    
9877    /abc/
9878       abc\P
9879     0: abc
9880       abc\P\P
9881     0: abc
9882    
9883    /\w+A/P
9884       CDAAAAB
9885     0: CDAAAA
9886    
9887    /\w+A/PU
9888       CDAAAAB
9889     0: CDA
9890    
9891    /abc\K123/
9892        xyzabc123pqr
9893     0: 123
9894        xyzabc12\P
9895    Partial match: abc12
9896        xyzabc12\P\P
9897    Partial match: abc12
9898    
9899    /(?<=abc)123/
9900        xyzabc123pqr
9901     0: 123
9902        xyzabc12\P
9903    Partial match: abc12
9904        xyzabc12\P\P
9905    Partial match: abc12
9906    
9907    /\babc\b/
9908        +++abc+++
9909     0: abc
9910        +++ab\P
9911    Partial match: +ab
9912        +++ab\P\P
9913    Partial match: +ab
9914    
9915    /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9916    ------------------------------------------------------------------
9917            Bra
9918            Recurse
9919            Recurse
9920            Cond
9921            Cond def
9922            CBra 1
9923            <
9924            [^m]
9925            [^>]
9926            >
9927            [^<]
9928            Ket
9929            CBra 2
9930            \w*+
9931            Ket
9932            Ket
9933            Ket
9934            End
9935    ------------------------------------------------------------------
9936    
9937    /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9938    ------------------------------------------------------------------
9939            Bra
9940            Recurse
9941            Recurse
9942            Cond
9943            Cond def
9944            CBra 1
9945            <
9946            [\x00-/:-\xff] (neg)
9947            [^>]
9948            >
9949            [^<]
9950            Ket
9951            CBra 2
9952            \w*+
9953            Ket
9954            Ket
9955            Ket
9956            End
9957    ------------------------------------------------------------------
9958    
9959    /(ab)(x(y)z(cd(*ACCEPT)))pq/BZ
9960    ------------------------------------------------------------------
9961            Bra
9962            CBra 1
9963            ab
9964            Ket
9965            CBra 2
9966            x
9967            CBra 3
9968            y
9969            Ket
9970            z
9971            CBra 4
9972            cd
9973            Close 4
9974            Close 2
9975            *ACCEPT
9976            Ket
9977            Ket
9978            pq
9979            Ket
9980            End
9981    ------------------------------------------------------------------
9982    
9983    /abc\K/+
9984        abcdef
9985     0:
9986     0+ def
9987        abcdef\N\N
9988     0:
9989     0+ def
9990        xyzabcdef\N\N
9991     0:
9992     0+ def
9993        ** Failers
9994    No match
9995        abcdef\N
9996    No match
9997        xyzabcdef\N
9998    No match
9999    
10000    /^(?:(?=abc)|abc\K)/+
10001        abcdef
10002     0:
10003     0+ abcdef
10004        abcdef\N\N
10005     0:
10006     0+ def
10007        ** Failers
10008    No match
10009        abcdef\N
10010    No match
10011    
10012    /a?b?/+
10013        xyz
10014     0:
10015     0+ xyz
10016        xyzabc
10017     0:
10018     0+ xyzabc
10019        xyzabc\N
10020     0: ab
10021     0+ c
10022        xyzabc\N\N
10023     0:
10024     0+ yzabc
10025        xyz\N\N
10026     0:
10027     0+ yz
10028        ** Failers
10029     0:
10030     0+ ** Failers
10031        xyz\N
10032    No match
10033    
10034    /^a?b?/+
10035        xyz
10036     0:
10037     0+ xyz
10038        xyzabc
10039     0:
10040     0+ xyzabc
10041        ** Failers
10042     0:
10043     0+ ** Failers
10044        xyzabc\N
10045    No match
10046        xyzabc\N\N
10047    No match
10048        xyz\N\N
10049    No match
10050        xyz\N
10051    No match
10052    
10053    /^(?<name>a|b\g<name>c)/
10054        aaaa
10055     0: a
10056     1: a
10057        bacxxx
10058     0: bac
10059     1: bac
10060        bbaccxxx
10061     0: bbacc
10062     1: bbacc
10063        bbbacccxx
10064     0: bbbaccc
10065     1: bbbaccc
10066    
10067    /^(?<name>a|b\g'name'c)/
10068        aaaa
10069     0: a
10070     1: a
10071        bacxxx
10072     0: bac
10073     1: bac
10074        bbaccxxx
10075     0: bbacc
10076     1: bbacc
10077        bbbacccxx
10078     0: bbbaccc
10079     1: bbbaccc
10080    
10081    /^(a|b\g<1>c)/
10082        aaaa
10083     0: a
10084     1: a
10085        bacxxx
10086     0: bac
10087     1: bac
10088        bbaccxxx
10089     0: bbacc
10090     1: bbacc
10091        bbbacccxx
10092     0: bbbaccc
10093     1: bbbaccc
10094    
10095    /^(a|b\g'1'c)/
10096        aaaa
10097     0: a
10098     1: a
10099        bacxxx
10100     0: bac
10101     1: bac
10102        bbaccxxx
10103     0: bbacc
10104     1: bbacc
10105        bbbacccxx
10106     0: bbbaccc
10107     1: bbbaccc
10108    
10109    /^(a|b\g'-1'c)/
10110        aaaa
10111     0: a
10112     1: a
10113        bacxxx
10114     0: bac
10115     1: bac
10116        bbaccxxx
10117     0: bbacc
10118     1: bbacc
10119        bbbacccxx
10120     0: bbbaccc
10121     1: bbbaccc
10122    
10123    /(^(a|b\g<-1>c))/
10124        aaaa
10125     0: a
10126     1: a
10127     2: a
10128        bacxxx
10129     0: bac
10130     1: bac
10131     2: bac
10132        bbaccxxx
10133     0: bbacc
10134     1: bbacc
10135     2: bbacc
10136        bbbacccxx
10137     0: bbbaccc
10138     1: bbbaccc
10139     2: bbbaccc
10140    
10141    /(?-i:\g<name>)(?i:(?<name>a))/
10142        XaaX
10143     0: aa
10144     1: a
10145        XAAX
10146     0: AA
10147     1: A
10148    
10149    /(?i:\g<name>)(?-i:(?<name>a))/
10150        XaaX
10151     0: aa
10152     1: a
10153        ** Failers
10154    No match
10155        XAAX
10156    No match
10157    
10158    /(?-i:\g<+1>)(?i:(a))/
10159        XaaX
10160     0: aa
10161     1: a
10162        XAAX
10163     0: AA
10164     1: A
10165    
10166    /(?=(?<regex>(?#simplesyntax)\$(?<name>[a-zA-Z_\x{7f}-\x{ff}][a-zA-Z0-9_\x{7f}-\x{ff}]*)(?:\[(?<index>[a-zA-Z0-9_\x{7f}-\x{ff}]+|\$\g<name>)\]|->\g<name>(\(.*?\))?)?|(?#simple syntax withbraces)\$\{(?:\g<name>(?<indices>\[(?:\g<index>|'(?:\\.|[^'\\])*'|"(?:\g<regex>|\\.|[^"\\])*")\])?|\g<complex>|\$\{\g<complex>\})\}|(?#complexsyntax)\{(?<complex>\$(?<segment>\g<name>(\g<indices>*|\(.*?\))?)(?:->\g<segment>)*|\$\g<complex>|\$\{\g<complex>\})\}))\{/
10167    
10168    /(?<n>a|b|c)\g<n>*/
10169       abc
10170     0: abc
10171     1: a
10172       accccbbb
10173     0: accccbbb
10174     1: a
10175    
10176    /^X(?7)(a)(?|(b)|(q)(r)(s))(c)(d)(Y)/
10177        XYabcdY
10178     0: XYabcdY
10179     1: a
10180     2: b
10181     3: <unset>
10182     4: <unset>
10183     5: c
10184     6: d
10185     7: Y
10186    
10187    /(?<=b(?1)|zzz)(a)/
10188        xbaax
10189     0: a
10190     1: a
10191        xzzzax
10192     0: a
10193     1: a
10194    
10195    /(a)(?<=b\1)/
10196    Failed: lookbehind assertion is not fixed length at offset 10
10197    
10198    /(a)(?<=b+(?1))/
10199    Failed: lookbehind assertion is not fixed length at offset 13
10200    
10201    /(a+)(?<=b(?1))/
10202    Failed: lookbehind assertion is not fixed length at offset 14
10203    
10204    /(a(?<=b(?1)))/
10205    Failed: lookbehind assertion is not fixed length at offset 13
10206    
10207    /(?<=b(?1))xyz/
10208    Failed: reference to non-existent subpattern at offset 8
10209    
10210    /(?<=b(?1))xyz(b+)pqrstuvew/
10211    Failed: lookbehind assertion is not fixed length at offset 26
10212    
10213    /(a|bc)\1/SI
10214    Capturing subpattern count = 1
10215    Max back reference = 1
10216    No options
10217    No first char
10218    No need char
10219    Subject length lower bound = 2
10220    Starting byte set: a b
10221    
10222    /(a|bc)\1{2,3}/SI
10223    Capturing subpattern count = 1
10224    Max back reference = 1
10225    No options
10226    No first char
10227    No need char
10228    Subject length lower bound = 3
10229    Starting byte set: a b
10230    
10231    /(a|bc)(?1)/SI
10232    Capturing subpattern count = 1
10233    No options
10234    No first char
10235    No need char
10236    Subject length lower bound = 2
10237    Starting byte set: a b
10238    
10239    /(a|b\1)(a|b\1)/SI
10240    Capturing subpattern count = 2
10241    Max back reference = 1
10242    No options
10243    No first char
10244    No need char
10245    Subject length lower bound = 2
10246    Starting byte set: a b
10247    
10248    /(a|b\1){2}/SI
10249    Capturing subpattern count = 1
10250    Max back reference = 1
10251    No options
10252    No first char
10253    No need char
10254    Subject length lower bound = 2
10255    Starting byte set: a b
10256    
10257    /(a|bbbb\1)(a|bbbb\1)/SI
10258    Capturing subpattern count = 2
10259    Max back reference = 1
10260    No options
10261    No first char
10262    No need char
10263    Subject length lower bound = 2
10264    Starting byte set: a b
10265    
10266    /(a|bbbb\1){2}/SI
10267    Capturing subpattern count = 1
10268    Max back reference = 1
10269    No options
10270    No first char
10271    No need char
10272    Subject length lower bound = 2
10273    Starting byte set: a b
10274    
10275    /^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
10276    Capturing subpattern count = 1
10277    Options: anchored
10278    No first char
10279    Need char = ':'
10280    Subject length lower bound = 22
10281    No set of starting bytes
10282    
10283    /  (?: [\040\t] |  \(
10284    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10285    \)  )*                          # optional leading comment
10286    (?:    (?:
10287    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10288    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10289    |
10290    " (?:                      # opening quote...
10291    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10292    |                     #    or
10293    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10294    )* "  # closing quote
10295    )                    # initial word
10296    (?:  (?: [\040\t] |  \(
10297    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10298    \)  )*  \.  (?: [\040\t] |  \(
10299    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10300    \)  )*   (?:
10301    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10302    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10303    |
10304    " (?:                      # opening quote...
10305    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10306    |                     #    or
10307    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10308    )* "  # closing quote
10309    )  )* # further okay, if led by a period
10310    (?: [\040\t] |  \(
10311    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10312    \)  )*  @  (?: [\040\t] |  \(
10313    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10314    \)  )*    (?:
10315    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10316    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10317    |   \[                         # [
10318    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10319    \]                        #           ]
10320    )                           # initial subdomain
10321    (?:                                  #
10322    (?: [\040\t] |  \(
10323    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10324    \)  )*  \.                        # if led by a period...
10325    (?: [\040\t] |  \(
10326    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10327    \)  )*   (?:
10328    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10329    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10330    |   \[                         # [
10331    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10332    \]                        #           ]
10333    )                     #   ...further okay
10334    )*
10335    # address
10336    |                     #  or
10337    (?:
10338    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10339    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10340    |
10341    " (?:                      # opening quote...
10342    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10343    |                     #    or
10344    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10345    )* "  # closing quote
10346    )             # one word, optionally followed by....
10347    (?:
10348    [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...
10349    \(
10350    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10351    \)       |  # comments, or...
10352    
10353    " (?:                      # opening quote...
10354    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10355    |                     #    or
10356    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10357    )* "  # closing quote
10358    # quoted strings
10359    )*
10360    <  (?: [\040\t] |  \(
10361    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10362    \)  )*                     # leading <
10363    (?:  @  (?: [\040\t] |  \(
10364    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10365    \)  )*    (?:
10366    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10367    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10368    |   \[                         # [
10369    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10370    \]                        #           ]
10371    )                           # initial subdomain
10372    (?:                                  #
10373    (?: [\040\t] |  \(
10374    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10375    \)  )*  \.                        # if led by a period...
10376    (?: [\040\t] |  \(
10377    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10378    \)  )*   (?:
10379    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10380    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10381    |   \[                         # [
10382    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10383    \]                        #           ]
10384    )                     #   ...further okay
10385    )*
10386    
10387    (?:  (?: [\040\t] |  \(
10388    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10389    \)  )*  ,  (?: [\040\t] |  \(
10390    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10391    \)  )*  @  (?: [\040\t] |  \(
10392    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10393    \)  )*    (?:
10394    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10395    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10396    |   \[                         # [
10397    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10398    \]                        #           ]
10399    )                           # initial subdomain
10400    (?:                                  #
10401    (?: [\040\t] |  \(
10402    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10403    \)  )*  \.                        # if led by a period...
10404    (?: [\040\t] |  \(
10405    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10406    \)  )*   (?:
10407    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10408    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10409    |   \[                         # [
10410    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10411    \]                        #           ]
10412    )                     #   ...further okay
10413    )*
10414    )* # further okay, if led by comma
10415    :                                # closing colon
10416    (?: [\040\t] |  \(
10417    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10418    \)  )*  )? #       optional route
10419    (?:
10420    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10421    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10422    |
10423    " (?:                      # opening quote...
10424    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10425    |                     #    or
10426    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10427    )* "  # closing quote
10428    )                    # initial word
10429    (?:  (?: [\040\t] |  \(
10430    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10431    \)  )*  \.  (?: [\040\t] |  \(
10432    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10433    \)  )*   (?:
10434    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10435    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10436    |
10437    " (?:                      # opening quote...
10438    [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote
10439    |                     #    or
10440    \\ [^\x80-\xff]           #   Escaped something (something != CR)
10441    )* "  # closing quote
10442    )  )* # further okay, if led by a period
10443    (?: [\040\t] |  \(
10444    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10445    \)  )*  @  (?: [\040\t] |  \(
10446    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10447    \)  )*    (?:
10448    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10449    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10450    |   \[                         # [
10451    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10452    \]                        #           ]
10453    )                           # initial subdomain
10454    (?:                                  #
10455    (?: [\040\t] |  \(
10456    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10457    \)  )*  \.                        # if led by a period...
10458    (?: [\040\t] |  \(
10459    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10460    \)  )*   (?:
10461    [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...
10462    (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom
10463    |   \[                         # [
10464    (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff
10465    \]                        #           ]
10466    )                     #   ...further okay
10467    )*
10468    #       address spec
10469    (?: [\040\t] |  \(
10470    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10471    \)  )*  > #                  trailing >
10472    # name and address
10473    )  (?: [\040\t] |  \(
10474    (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*
10475    \)  )*                       # optional trailing comment
10476    /xSI
10477    Capturing subpattern count = 0
10478    Contains explicit CR or LF match
10479    Options: extended
10480    No first char
10481    No need char
10482    Subject length lower bound = 3
10483    Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8
10484      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
10485      f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f
10486    
10487    /<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
10488    Capturing subpattern count = 11
10489    Options: caseless dotall
10490    First char = '<'
10491    Need char = '>'
10492    Subject length lower bound = 47
10493    No set of starting bytes
10494    
10495    "(?>.*/)foo"SI
10496    Capturing subpattern count = 0
10497    No options
10498    First char at start or follows newline
10499    Need char = 'o'
10500    Subject length lower bound = 4
10501    No set of starting bytes
10502    
10503    /(?(?=[^a-z]+[a-z])  \d{2}-[a-z]{3}-\d{2}  |  \d{2}-\d{2}-\d{2} ) /xSI
10504    Capturing subpattern count = 0
10505    Options: extended
10506    No first char
10507    Need char = '-'
10508    Subject length lower bound = 8
10509    No set of starting bytes
10510    
10511    /(?:(?:(?:(?:(?:(?:(?:(?:(?:(a|b|c))))))))))/iSI
10512    Capturing subpattern count = 1
10513    Options: caseless
10514    No first char
10515    No need char
10516    Subject length lower bound = 1
10517    Starting byte set: A B C a b c
10518    
10519    /(?:c|d)(?:)(?:aaaaaaaa(?:)(?:bbbbbbbb)(?:bbbbbbbb(?:))(?:bbbbbbbb(?:)(?:bbbbbbbb)))/SI
10520    Capturing subpattern count = 0
10521    No options
10522    No first char
10523    Need char = 'b'
10524    Subject length lower bound = 41
10525    Starting byte set: c d
10526    
10527    /<a[\s]+href[\s]*=[\s]*          # find <a href=
10528     ([\"\'])?                       # find single or double quote
10529     (?(1) (.*?)\1 | ([^\s]+))       # if quote found, match up to next matching
10530                                     # quote, otherwise match up to next space
10531    /isxSI
10532    Capturing subpattern count = 3
10533    Max back reference = 1
10534    Options: caseless extended dotall
10535    First char = '<'
10536    Need char = '='
10537    Subject length lower bound = 9
10538    No set of starting bytes
10539    
10540    /^(?!:)                       # colon disallowed at start
10541      (?:                         # start of item
10542        (?: [0-9a-f]{1,4} |       # 1-4 hex digits or
10543        (?(1)0 | () ) )           # if null previously matched, fail; else null
10544        :                         # followed by colon
10545      ){1,7}                      # end item; 1-7 of them required
10546      [0-9a-f]{1,4} $             # final hex number at end of string
10547      (?(1)|.)                    # check that there was an empty component
10548      /xiIS
10549    Capturing subpattern count = 1
10550    Options: anchored caseless extended
10551    No first char
10552    Need char = ':'
10553    Subject length lower bound = 2
10554    No set of starting bytes
10555    
10556    /(?|(?<a>A)|(?<a>B))/I
10557    Capturing subpattern count = 1
10558    Named capturing subpatterns:
10559      a   1
10560      a   1
10561    No options
10562    No first char
10563    No need char
10564        AB\Ca
10565     0: A
10566     1: A
10567      C A (1) a
10568        BA\Ca
10569     0: B
10570     1: B
10571      C B (1) a
10572    
10573    /(?|(?<a>A)|(?<b>B))/
10574    Failed: different names for subpatterns of the same number are not allowed at offset 15
10575    
10576    /(?:a(?<quote> (?<apostrophe>')|(?<realquote>")) |
10577        b(?<quote> (?<apostrophe>')|(?<realquote>")) )
10578        (?('quote')[a-z]+|[0-9]+)/JIx
10579    Capturing subpattern count = 6
10580    Named capturing subpatterns:
10581      apostrophe   2
10582      apostrophe   5
10583      quote        1
10584      quote        4
10585      realquote    3
10586      realquote    6
10587    Options: extended dupnames
10588    No first char
10589    No need char
10590        a"aaaaa
10591     0: a"aaaaa
10592     1: "
10593     2: <unset>
10594     3: "
10595        b"aaaaa
10596     0: b"aaaaa
10597     1: <unset>
10598     2: <unset>
10599     3: <unset>
10600     4: "
10601     5: <unset>
10602     6: "
10603        ** Failers
10604    No match
10605        b"11111
10606    No match
10607        a"11111
10608    No match
10609    
10610    /^(?|(a)(b)(c)(?<D>d)|(?<D>e)) (?('D')X|Y)/JDZx
10611    ------------------------------------------------------------------
10612            Bra
10613            ^
10614            Bra
10615            CBra 1
10616            a
10617            Ket
10618            CBra 2
10619            b
10620            Ket
10621            CBra 3
10622            c
10623            Ket
10624            CBra 4
10625            d
10626            Ket
10627            Alt
10628            CBra 1
10629            e
10630            Ket
10631            Ket
10632            Cond
10633          4 Cond nref
10634            X
10635            Alt
10636            Y
10637            Ket
10638            Ket
10639            End
10640    ------------------------------------------------------------------
10641    Capturing subpattern count = 4
10642    Named capturing subpatterns:
10643      D   4
10644      D   1
10645    Options: anchored extended dupnames
10646    No first char
10647    No need char
10648        abcdX
10649     0: abcdX
10650     1: a
10651     2: b
10652     3: c
10653     4: d
10654        eX
10655     0: eX
10656     1: e
10657        ** Failers
10658    No match
10659        abcdY
10660    No match
10661        ey
10662    No match
10663    
10664    /(?<A>a) (b)(c)  (?<A>d  (?(R&A)$ | (?4)) )/JDZx
10665    ------------------------------------------------------------------
10666            Bra
10667            CBra 1
10668            a
10669            Ket
10670            CBra 2
10671            b
10672            Ket
10673            CBra 3
10674            c
10675            Ket
10676            CBra 4
10677            d
10678            Cond
10679            Cond nrecurse 1
10680            $
10681            Alt
10682            Recurse
10683            Ket
10684            Ket
10685            Ket
10686            End
10687    ------------------------------------------------------------------
10688    Capturing subpattern count = 4
10689    Named capturing subpatterns:
10690      A   1
10691      A   4
10692    Options: extended dupnames
10693    First char = 'a'
10694    Need char = 'd'
10695        abcdd
10696     0: abcdd
10697     1: a
10698     2: b
10699     3: c
10700     4: dd
10701        ** Failers
10702    No match
10703        abcdde
10704    No match
10705    
10706    /abcd*/
10707        xxxxabcd\P
10708     0: abcd
10709        xxxxabcd\P\P
10710    Partial match: abcd
10711    
10712    /abcd*/i
10713        xxxxabcd\P
10714     0: abcd
10715        xxxxabcd\P\P
10716    Partial match: abcd
10717        XXXXABCD\P
10718     0: ABCD
10719        XXXXABCD\P\P
10720    Partial match: ABCD
10721    
10722    /abc\d*/
10723        xxxxabc1\P
10724     0: abc1
10725        xxxxabc1\P\P
10726    Partial match: abc1
10727    
10728    /(a)bc\1*/
10729        xxxxabca\P
10730     0: abca
10731     1: a
10732        xxxxabca\P\P
10733    Partial match: abca
10734    
10735    /abc[de]*/
10736        xxxxabcde\P
10737     0: abcde
10738        xxxxabcde\P\P
10739    Partial match: abcde
10740    
10741    /-- This is not in the Perl >= 5.10 test because Perl seems currently to be
10742        broken and not behaving as specified in that it *does* bumpalong after
10743        hitting (*COMMIT). --/
10744    
10745    /(?1)(A(*COMMIT)|B)D/
10746        ABD
10747     0: ABD
10748     1: B
10749        XABD
10750     0: ABD
10751     1: B
10752        BAD
10753     0: BAD
10754     1: A
10755        ABXABD
10756     0: ABD
10757     1: B
10758        ** Failers
10759    No match
10760        ABX
10761    No match
10762        BAXBAD
10763    No match
10764    
10765    /(\3)(\1)(a)/<JS>
10766        cat
10767     0: a
10768     1:
10769     2:
10770     3: a
10771    
10772    /(\3)(\1)(a)/SI<JS>
10773    Capturing subpattern count = 3
10774    Max back reference = 3
10775    Options:
10776    No first char
10777    Need char = 'a'
10778    Subject length lower bound = 1
10779    No set of starting bytes
10780        cat
10781     0: a
10782     1:
10783     2:
10784     3: a
10785    
10786    /(\3)(\1)(a)/SI
10787    Capturing subpattern count = 3
10788    Max back reference = 3
10789    No options
10790    No first char
10791    Need char = 'a'
10792    Subject length lower bound = 3
10793    No set of starting bytes
10794        cat
10795    No match
10796    
10797    /i(?(DEFINE)(?<s>a))/SI
10798    Capturing subpattern count = 1
10799    Named capturing subpatterns:
10800      s   1
10801    No options
10802    First char = 'i'
10803    No need char
10804    Subject length lower bound = 1
10805    No set of starting bytes
10806        i
10807     0: i
10808    
10809    /()i(?(1)a)/SI
10810    Capturing subpattern count = 1
10811    No options
10812    No first char
10813    Need char = 'i'
10814    Subject length lower bound = 1
10815    Starting byte set: i
10816        ia
10817     0: ia
10818     1:
10819    
10820    /(?i)a(?-i)b|c/BZ
10821    ------------------------------------------------------------------
10822            Bra
10823         /i a
10824            b
10825            Alt
10826            c
10827            Ket
10828            End
10829    ------------------------------------------------------------------
10830        XabX
10831     0: ab
10832        XAbX
10833     0: Ab
10834        CcC
10835     0: c
10836        ** Failers
10837    No match
10838        XABX
10839    No match
10840    
10841    /(?i)a(?s)b|c/BZ
10842    ------------------------------------------------------------------
10843            Bra
10844         /i ab
10845            Alt
10846         /i c
10847            Ket
10848            End
10849    ------------------------------------------------------------------
10850    
10851    /(?i)a(?s-i)b|c/BZ
10852    ------------------------------------------------------------------
10853            Bra
10854         /i a
10855            b
10856            Alt
10857            c
10858            Ket
10859            End
10860    ------------------------------------------------------------------
10861    
10862    /^(ab(c\1)d|x){2}$/BZ
10863    ------------------------------------------------------------------
10864            Bra
10865            ^
10866            Once
10867            CBra 1
10868            ab
10869            CBra 2
10870            c
10871            \1
10872            Ket
10873            d
10874            Alt
10875            x
10876            Ket
10877            Ket
10878            Once
10879            CBra 1
10880            ab
10881            CBra 2
10882            c
10883            \1
10884            Ket
10885            d
10886            Alt
10887            x
10888            Ket
10889            Ket
10890            $
10891            Ket
10892            End
10893    ------------------------------------------------------------------
10894        xabcxd
10895     0: xabcxd
10896     1: abcxd
10897     2: cx
10898    
10899    /^(?&t)*+(?(DEFINE)(?<t>.))$/BZ
10900    ------------------------------------------------------------------
10901            Bra
10902            ^
10903            Braposzero
10904            SBraPos
10905            Recurse
10906            KetRpos
10907            Cond
10908            Cond def
10909            CBra 1
10910            Any
10911            Ket
10912            Ket
10913            $
10914            Ket
10915            End
10916    ------------------------------------------------------------------
10917    
10918    /^(?&t)*(?(DEFINE)(?<t>.))$/BZ
10919    ------------------------------------------------------------------
10920            Bra
10921            ^
10922            Brazero
10923            Once
10924            Recurse
10925            KetRmax
10926            Cond
10927            Cond def
10928            CBra 1
10929            Any
10930            Ket
10931            Ket
10932            $
10933            Ket
10934            End
10935    ------------------------------------------------------------------
10936    
10937    / -- The first four of these are not in the Perl >= 5.10 test because Perl
10938         documents that the use of \K in assertions is "not well defined". The
10939         last is here because Perl gives the match as "b" rather than "ab". I
10940         believe this to be a Perl bug. --/
10941    
10942    /(?=a\Kb)ab/
10943        ab
10944     0: b
10945    
10946    /(?!a\Kb)ac/
10947        ac
10948     0: ac
10949    
10950    /^abc(?<=b\Kc)d/
10951        abcd
10952     0: cd
10953    
10954    /^abc(?<!b\Kq)d/
10955        abcd
10956     0: abcd
10957    
10958    /(?>a\Kb)z|(ab)/
10959        ab
10960     0: ab
10961     1: ab
10962    
10963    /----------------------/
10964    
10965    /(?P<L1>(?P<L2>0|)|(?P>L2)(?P>L1))/
10966    Failed: recursive call could loop indefinitely at offset 31
10967    
10968    /abc(*MARK:)pqr/
10969    Failed: (*MARK) must have an argument at offset 10
10970    
10971    /abc(*:)pqr/
10972    Failed: (*MARK) must have an argument at offset 6
10973    
10974    /abc(*FAIL:123)xyz/
10975    Failed: an argument is not allowed for (*ACCEPT), (*FAIL), or (*COMMIT) at offset 13
10976    
10977    /--- This should, and does, fail. In Perl, it does not, which I think is a
10978         bug because replacing the B in the pattern by (B|D) does make it fail. ---/
10979    
10980    /A(*COMMIT)B/+K
10981        ACABX
10982    No match
10983    
10984    /--- These should be different, but in Perl 5.11 are not, which I think
10985         is a bug in Perl. ---/
10986    
10987    /A(*THEN)B|A(*THEN)C/K
10988        AC
10989     0: AC
10990    
10991    /A(*PRUNE)B|A(*PRUNE)C/K
10992        AC
10993    No match
10994    
10995    /--- A whole lot of tests of verbs with arguments are here rather than in test
10996         11 because Perl doesn't seem to follow its specification entirely
10997         correctly. ---/
10998    
10999    /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is
11000         not clear how Perl defines "involved in the failure of the match". ---/
11001    
11002    /^(A(*THEN:A)B|C(*THEN:B)D)/K
11003        AB
11004     0: AB
11005     1: AB
11006        CD
11007     0: CD
11008     1: CD
11009        ** Failers
11010    No match
11011        AC
11012    No match
11013        CB
11014    No match, mark = B
11015    
11016    /--- Check the use of names for success and failure. PCRE doesn't show these
11017    names for success, though Perl does, contrary to its spec. ---/
11018    
11019    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K
11020        AB
11021     0: AB
11022     1: AB
11023        CD
11024     0: CD
11025     1: CD
11026        ** Failers
11027    No match
11028        AC
11029    No match, mark = A
11030        CB
11031    No match, mark = B
11032    
11033    /--- An empty name does not pass back an empty string. It is the same as if no
11034    name were given. ---/
11035    
11036    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K
11037        AB
11038     0: AB
11039     1: AB
11040        CD
11041     0: CD
11042     1: CD
11043    
11044    /--- PRUNE goes to next bumpalong; COMMIT does not. ---/
11045    
11046    /A(*PRUNE:A)B/K
11047        ACAB
11048     0: AB
11049    
11050    /(*MARK:A)(*PRUNE:B)(C|X)/KS
11051        C
11052     0: C
11053     1: C
11054    MK: A
11055        D
11056    No match
11057    
11058    /(*MARK:A)(*PRUNE:B)(C|X)/KSS
11059        C
11060     0: C
11061     1: C
11062    MK: A
11063        D
11064    No match, mark = B
11065    
11066    /(*MARK:A)(*THEN:B)(C|X)/KS
11067        C
11068     0: C
11069     1: C
11070    MK: A
11071        D
11072    No match
11073    
11074    /(*MARK:A)(*THEN:B)(C|X)/KSY
11075        C
11076     0: C
11077     1: C
11078    MK: A
11079        D
11080    No match, mark = B
11081    
11082    /(*MARK:A)(*THEN:B)(C|X)/KSS
11083        C
11084     0: C
11085     1: C
11086    MK: A
11087        D
11088    No match, mark = B
11089    
11090    /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/
11091    
11092    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK
11093        AAAC
11094    No match
11095    
11096    /--- Same --/
11097    
11098    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK
11099        AAAC
11100    No match
11101    
11102    /--- This should fail; the SKIP advances by one, but when we get to AC, the
11103         PRUNE kills it. ---/
11104    
11105    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
11106        AAAC
11107    No match
11108    
11109    /A(*:A)A+(*SKIP)(B|Z) | AC/xK
11110        AAAC
11111    No match
11112    
11113    /--- This should fail, as a null name is the same as no name ---/
11114    
11115    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK
11116        AAAC
11117    No match
11118    
11119    /--- This fails in PCRE, and I think that is in accordance with Perl's
11120         documentation, though in Perl it succeeds. ---/
11121    
11122    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK
11123        AAAC
11124    No match
11125    
11126    /--- Mark names can be duplicated ---/
11127    
11128    /A(*:A)B|X(*:A)Y/K
11129        AABC
11130     0: AB
11131    MK: A
11132        XXYZ
11133     0: XY
11134    MK: A
11135    
11136    /^A(*:A)B|^X(*:A)Y/K
11137        ** Failers
11138    No match
11139        XAQQ
11140    No match, mark = A
11141    
11142    /--- A check on what happens after hitting a mark and them bumping along to
11143    something that does not even start. Perl reports tags after the failures here,
11144    though it does not when the individual letters are made into something
11145    more complicated. ---/
11146    
11147    /A(*:A)B|XX(*:B)Y/K
11148        AABC
11149     0: AB
11150    MK: A
11151        XXYZ
11152     0: XXY
11153    MK: B
11154        ** Failers
11155    No match
11156        XAQQ
11157    No match
11158        XAQQXZZ
11159    No match
11160        AXQQQ
11161    No match
11162        AXXQQQ
11163    No match
11164    
11165    /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
11166    optimizations defeat this. So does the PCRE optimization unless we disable it
11167    with \Y. ---/
11168    
11169    /(*COMMIT)ABC/
11170        ABCDEFG
11171     0: ABC
11172        ** Failers
11173    No match
11174        DEFGABC\Y
11175    No match
11176    
11177    /--- Repeat some tests with added studying. ---/
11178    
11179    /A(*COMMIT)B/+KS
11180        ACABX
11181    No match
11182    
11183    /A(*THEN)B|A(*THEN)C/KS
11184        AC
11185     0: AC
11186    
11187    /A(*PRUNE)B|A(*PRUNE)C/KS
11188        AC
11189    No match
11190    
11191    /^(A(*THEN:A)B|C(*THEN:B)D)/KS
11192        AB
11193     0: AB
11194     1: AB
11195        CD
11196     0: CD
11197     1: CD
11198        ** Failers
11199    No match
11200        AC
11201    No match
11202        CB
11203    No match, mark = B
11204    
11205    /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS
11206        AB
11207     0: AB
11208     1: AB
11209        CD
11210     0: CD
11211     1: CD
11212        ** Failers
11213    No match
11214        AC
11215    No match, mark = A
11216        CB
11217    No match, mark = B
11218    
11219    /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS
11220        AB
11221     0: AB
11222     1: AB
11223        CD
11224     0: CD
11225     1: CD
11226    
11227    /A(*PRUNE:A)B/KS
11228        ACAB
11229     0: AB
11230    
11231    /(*MARK:A)(*PRUNE:B)(C|X)/KS
11232        C
11233     0: C
11234     1: C
11235    MK: A
11236        D
11237    No match
11238    
11239    /(*MARK:A)(*THEN:B)(C|X)/KS
11240        C
11241     0: C
11242     1: C
11243    MK: A
11244        D
11245    No match
11246    
11247    /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS
11248        AAAC
11249    No match
11250    
11251    /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS
11252        AAAC
11253    No match
11254    
11255    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS
11256        AAAC
11257    No match
11258    
11259    /A(*:A)A+(*SKIP)(B|Z) | AC/xKS
11260        AAAC
11261    No match
11262    
11263    /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS
11264        AAAC
11265    No match
11266    
11267    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS
11268        AAAC
11269    No match
11270    
11271    /A(*:A)B|XX(*:B)Y/KS
11272        AABC
11273     0: AB
11274    MK: A
11275        XXYZ
11276     0: XXY
11277    MK: B
11278        ** Failers
11279    No match
11280        XAQQ
11281    No match
11282        XAQQXZZ
11283    No match
11284        AXQQQ
11285    No match
11286        AXXQQQ
11287    No match
11288    
11289    /(*COMMIT)ABC/
11290        ABCDEFG
11291     0: ABC
11292        ** Failers
11293    No match
11294        DEFGABC\Y
11295    No match
11296    
11297    /^(ab (c+(*THEN)cd) | xyz)/x
11298        abcccd
11299    No match
11300    
11301    /^(ab (c+(*PRUNE)cd) | xyz)/x
11302        abcccd
11303    No match
11304    
11305    /^(ab (c+(*FAIL)cd) | xyz)/x
11306        abcccd
11307    No match
11308    
11309    /--- Perl 5.11 gets some of these wrong ---/
11310    
11311    /(?>.(*ACCEPT))*?5/
11312        abcde
11313     0: a
11314    
11315    /(.(*ACCEPT))*?5/
11316        abcde
11317     0: a
11318     1: a
11319    
11320    /(.(*ACCEPT))5/
11321        abcde
11322     0: a
11323     1: a
11324    
11325    /(.(*ACCEPT))*5/
11326        abcde
11327     0: a
11328     1: a
11329    
11330    /A\NB./BZ
11331    ------------------------------------------------------------------
11332            Bra
11333            A
11334            Any
11335            B
11336            Any
11337            Ket
11338            End
11339    ------------------------------------------------------------------
11340        ACBD
11341     0: ACBD
11342        *** Failers
11343    No match
11344        A\nB
11345    No match
11346        ACB\n
11347    No match
11348    
11349    /A\NB./sBZ
11350    ------------------------------------------------------------------
11351            Bra
11352            A
11353            Any
11354            B
11355            AllAny
11356            Ket
11357            End
11358    ------------------------------------------------------------------
11359        ACBD
11360     0: ACBD
11361        ACB\n
11362     0: ACB\x0a
11363        *** Failers
11364    No match
11365        A\nB
11366    No match
11367    
11368    /A\NB/<crlf>
11369        A\nB
11370     0: A\x0aB
11371        A\rB
11372     0: A\x0dB
11373        ** Failers
11374    No match
11375        A\r\nB
11376    No match
11377    
11378    /\R+b/BZ
11379    ------------------------------------------------------------------
11380            Bra
11381            \R++
11382            b
11383            Ket
11384            End
11385    ------------------------------------------------------------------
11386    
11387    /\R+\n/BZ
11388    ------------------------------------------------------------------
11389            Bra
11390            \R+
11391            \x0a
11392            Ket
11393            End
11394    ------------------------------------------------------------------
11395    
11396    /\R+\d/BZ
11397    ------------------------------------------------------------------
11398            Bra
11399            \R++
11400            \d
11401            Ket
11402            End
11403    ------------------------------------------------------------------
11404    
11405    /\d*\R/BZ
11406    ------------------------------------------------------------------
11407            Bra
11408            \d*+
11409            \R
11410            Ket
11411            End
11412    ------------------------------------------------------------------
11413    
11414    /\s*\R/BZ
11415    ------------------------------------------------------------------
11416            Bra
11417            \s*+
11418            \R
11419            Ket
11420            End
11421    ------------------------------------------------------------------
11422    
11423    /-- Perl treats this one differently, not failing the second string. I believe
11424        that is a bug in Perl. --/
11425    
11426    /^((abc|abcx)(*THEN)y|abcd)/
11427        abcd
11428     0: abcd
11429     1: abcd
11430        *** Failers
11431    No match
11432        abcxy
11433    No match
11434    
11435    /(?<=abc)def/
11436        abc\P\P
11437    Partial match: abc
11438    
11439    /abc$/
11440        abc
11441     0: abc
11442        abc\P
11443     0: abc
11444        abc\P\P
11445    Partial match: abc
11446    
11447    /abc$/m
11448        abc
11449     0: abc
11450        abc\n
11451     0: abc
11452        abc\P\P
11453    Partial match: abc
11454        abc\n\P\P
11455     0: abc
11456        abc\P
11457     0: abc
11458        abc\n\P
11459     0: abc
11460    
11461    /abc\z/
11462        abc
11463     0: abc
11464        abc\P
11465     0: abc
11466        abc\P\P
11467    Partial match: abc
11468    
11469    /abc\Z/
11470        abc
11471     0: abc
11472        abc\P
11473     0: abc
11474        abc\P\P
11475    Partial match: abc
11476    
11477    /abc\b/
11478        abc
11479     0: abc
11480        abc\P
11481     0: abc
11482        abc\P\P
11483    Partial match: abc
11484    
11485    /abc\B/
11486        abc
11487    No match
11488        abc\P
11489    Partial match: abc
11490        abc\P\P
11491    Partial match: abc
11492    
11493    /.+/
11494        abc\>0
11495     0: abc
11496        abc\>1
11497     0: bc
11498        abc\>2
11499     0: c
11500        abc\>3
11501    No match
11502        abc\>4
11503    Error -24 (bad offset value)
11504        abc\>-4
11505    Error -24 (bad offset value)
11506    
11507    /^\cģ/
11508    Failed: \c must be followed by an ASCII character at offset 3
11509    
11510    /(?P<abn>(?P=abn)xxx)/BZ
11511    ------------------------------------------------------------------
11512            Bra
11513            Once
11514            CBra 1
11515            \1
11516            xxx
11517            Ket
11518            Ket
11519            Ket
11520            End
11521    ------------------------------------------------------------------
11522    
11523    /(a\1z)/BZ
11524    ------------------------------------------------------------------
11525            Bra
11526            Once
11527            CBra 1
11528            a
11529            \1
11530            z
11531            Ket
11532            Ket
11533            Ket
11534            End
11535    ------------------------------------------------------------------
11536    
11537    /(?P<abn>(?P=abn)(?<badstufxxx)/BZ
11538    Failed: syntax error in subpattern name (missing terminator) at offset 29
11539    
11540    /(?P<abn>(?P=axn)xxx)/BZ
11541    Failed: reference to non-existent subpattern at offset 15
11542    
11543    /(?P<abn>(?P=axn)xxx)(?<axn>yy)/BZ
11544    ------------------------------------------------------------------
11545            Bra
11546            CBra 1
11547            \2
11548            xxx
11549            Ket
11550            CBra 2
11551            yy
11552            Ket
11553            Ket
11554            End
11555    ------------------------------------------------------------------
11556    
11557    /-- These tests are here because Perl gets the first one wrong. --/
11558    
11559    /(\R*)(.)/s
11560        \r\n
11561     0: \x0d
11562     1:
11563     2: \x0d
11564        \r\r\n\n\r
11565     0: \x0d\x0d\x0a\x0a\x0d
11566     1: \x0d\x0d\x0a\x0a
11567     2: \x0d
11568        \r\r\n\n\r\n
11569     0: \x0d\x0d\x0a\x0a\x0d
11570     1: \x0d\x0d\x0a\x0a
11571     2: \x0d
11572    
11573    /(\R)*(.)/s
11574        \r\n
11575     0: \x0d
11576     1: <unset>
11577     2: \x0d
11578        \r\r\n\n\r
11579     0: \x0d\x0d\x0a\x0a\x0d
11580     1: \x0a
11581     2: \x0d
11582        \r\r\n\n\r\n
11583     0: \x0d\x0d\x0a\x0a\x0d
11584     1: \x0a
11585     2: \x0d
11586    
11587    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
11588        \r\n
11589     0: \x0d
11590     1:
11591     2: \x0d
11592        \r\r\n\n\r
11593     0: \x0d\x0d\x0a\x0a\x0d
11594     1: \x0d\x0d\x0a\x0a
11595     2: \x0d
11596        \r\r\n\n\r\n
11597     0: \x0d\x0d\x0a\x0a\x0d
11598     1: \x0d\x0d\x0a\x0a
11599     2: \x0d
11600    
11601    /-- --/
11602    
11603    /^abc$/BZ
11604    ------------------------------------------------------------------
11605            Bra
11606            ^
11607            abc
11608            $
11609            Ket
11610            End
11611    ------------------------------------------------------------------
11612    
11613    /^abc$/BZm
11614    ------------------------------------------------------------------
11615            Bra
11616         /m ^
11617            abc
11618         /m $
11619            Ket
11620            End
11621    ------------------------------------------------------------------
11622    
11623    /^(a)*+(\w)/S
11624        aaaaX
11625     0: aaaaX
11626     1: a
11627     2: X
11628        ** Failers
11629    No match
11630        aaaa
11631    No match
11632    
11633    /^(?:a)*+(\w)/S
11634        aaaaX
11635     0: aaaaX
11636     1: X
11637        ** Failers
11638    No match
11639        aaaa
11640    No match
11641    
11642    /(a)++1234/SDZ
11643    ------------------------------------------------------------------
11644            Bra
11645            CBraPos 1
11646            a
11647            KetRpos
11648            1234
11649            Ket
11650            End
11651    ------------------------------------------------------------------
11652    Capturing subpattern count = 1
11653    No options
11654    First char = 'a'
11655    Need char = '4'
11656    Subject length lower bound = 5
11657    No set of starting bytes
11658    
11659    /([abc])++1234/SI
11660    Capturing subpattern count = 1
11661    No options
11662    No first char
11663    Need char = '4'
11664    Subject length lower bound = 5
11665    Starting byte set: a b c
11666    
11667    /(?<=(abc)+)X/
11668    Failed: lookbehind assertion is not fixed length at offset 10
11669    
11670    /(^ab)/I
11671    Capturing subpattern count = 1
11672    Options: anchored
11673    No first char
11674    No need char
11675    
11676    /(^ab)++/I
11677    Capturing subpattern count = 1
11678    Options: anchored
11679    No first char
11680    No need char
11681    
11682    /(^ab|^)+/I
11683    Capturing subpattern count = 1
11684    Options: anchored
11685    No first char
11686    No need char
11687    
11688    /(^ab|^)++/I
11689    Capturing subpattern count = 1
11690    Options: anchored
11691    No first char
11692    No need char
11693    
11694    /(?:^ab)/I
11695    Capturing subpattern count = 0
11696    Options: anchored
11697    No first char
11698    No need char
11699    
11700    /(?:^ab)++/I
11701    Capturing subpattern count = 0
11702    Options: anchored
11703    No first char
11704    No need char
11705    
11706    /(?:^ab|^)+/I
11707    Capturing subpattern count = 0
11708    Options: anchored
11709    No first char
11710    No need char
11711    
11712    /(?:^ab|^)++/I
11713    Capturing subpattern count = 0
11714    Options: anchored
11715    No first char
11716    No need char
11717    
11718    /(.*ab)/I
11719    Capturing subpattern count = 1
11720    No options
11721    First char at start or follows newline
11722    Need char = 'b'
11723    
11724    /(.*ab)++/I
11725    Capturing subpattern count = 1
11726    No options
11727    First char at start or follows newline
11728    Need char = 'b'
11729    
11730    /(.*ab|.*)+/I
11731    Capturing subpattern count = 1
11732    No options
11733    First char at start or follows newline
11734    No need char
11735    
11736    /(.*ab|.*)++/I
11737    Capturing subpattern count = 1
11738    No options
11739    First char at start or follows newline
11740    No need char
11741    
11742    /(?:.*ab)/I
11743    Capturing subpattern count = 0
11744    No options
11745    First char at start or follows newline
11746    Need char = 'b'
11747    
11748    /(?:.*ab)++/I
11749    Capturing subpattern count = 0
11750    No options
11751    First char at start or follows newline
11752    Need char = 'b'
11753    
11754    /(?:.*ab|.*)+/I
11755    Capturing subpattern count = 0
11756    No options
11757    First char at start or follows newline
11758    No need char
11759    
11760    /(?:.*ab|.*)++/I
11761    Capturing subpattern count = 0
11762    No options
11763    First char at start or follows newline
11764    No need char
11765    
11766    /(?=a)[bcd]/I
11767    Capturing subpattern count = 0
11768    No options
11769    First char = 'a'
11770    No need char
11771    
11772    /((?=a))[bcd]/I
11773    Capturing subpattern count = 1
11774    No options
11775    First char = 'a'
11776    No need char
11777    
11778    /((?=a))+[bcd]/I
11779    Capturing subpattern count = 1
11780    No options
11781    First char = 'a'
11782    No need char
11783    
11784    /((?=a))++[bcd]/I
11785    Capturing subpattern count = 1
11786    No options
11787    First char = 'a'
11788    No need char
11789    
11790    /(?=a+)[bcd]/iI
11791    Capturing subpattern count = 0
11792    Options: caseless
11793    First char = 'a' (caseless)
11794    No need char
11795    
11796    /(?=a+?)[bcd]/iI
11797    Capturing subpattern count = 0
11798    Options: caseless
11799    First char = 'a' (caseless)
11800    No need char
11801    
11802    /(?=a++)[bcd]/iI
11803    Capturing subpattern count = 0
11804    Options: caseless
11805    First char = 'a' (caseless)
11806    No need char
11807    
11808    /(?=a{3})[bcd]/iI
11809