/[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 598 by ph10, Sat May 7 15:37:31 2011 UTC revision 915 by zherczeg, Tue Feb 14 13:05:39 2012 UTC
# Line 3  Line 3 
3      It also checks the non-Perl syntax the PCRE supports (Python, .NET,      It also checks the non-Perl syntax the PCRE supports (Python, .NET,
4      Oniguruma). Finally, there are some tests where PCRE and Perl differ,      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      either because PCRE can't be compatible, or there is a possible Perl
6      bug. --/      bug.
7    
8        NOTE: This is a non-UTF set of tests. When UTF support is needed, use
9        test 5, and if Unicode Property Support is needed, use test 7. --/
10    
 /-- Originally, the Perl >= 5.10 things were in here too, but now I have  
     separated many (most?) of them out into test 11. However, there may still  
     be some that were overlooked. --/  
   
11  /(a)b|/I  /(a)b|/I
12  Capturing subpattern count = 1  Capturing subpattern count = 1
13  No options  No options
# Line 377  No need char Line 376  No need char
376   2: <unset>   2: <unset>
377   3: def   3: def
378    
 /abc/P  
     abc  
  0: abc  
     *** Failers  
 No match: POSIX code 17: match failed  
   
 /^abc|def/P  
     abcdef  
  0: abc  
     abcdef\B  
  0: def  
   
 /.*((abc)$|(def))/P  
     defabc  
  0: defabc  
  1: abc  
  2: abc  
     \Zdefabc  
  0: def  
  1: def  
  3: def  
   
 /the quick brown fox/P  
     the quick brown fox  
  0: the quick brown fox  
     *** Failers  
 No match: POSIX code 17: match failed  
     The Quick Brown Fox  
 No match: POSIX code 17: match failed  
   
 /the quick brown fox/Pi  
     the quick brown fox  
  0: the quick brown fox  
     The Quick Brown Fox  
  0: The Quick Brown Fox  
   
 /abc.def/P  
     *** Failers  
 No match: POSIX code 17: match failed  
     abc\ndef  
 No match: POSIX code 17: match failed  
   
 /abc$/P  
     abc  
  0: abc  
     abc\n  
  0: abc  
   
 /(abc)\2/P  
 Failed: POSIX code 15: bad back reference at offset 7  
   
 /(abc\1)/P  
     abc  
 No match: POSIX code 17: match failed  
   
379  /)/  /)/
380  Failed: unmatched parentheses at offset 0  Failed: unmatched parentheses at offset 0
381    
# Line 632  Need char = 'h' (caseless) Line 576  Need char = 'h' (caseless)
576  ------------------------------------------------------------------  ------------------------------------------------------------------
577          Bra          Bra
578          CBra 1          CBra 1
579       01 Opt       /i b
      NC b  
580          Ket          Ket
      00 Opt  
581          Ket          Ket
582          End          End
583  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1033  Failed: numbers out of order in {} quant Line 975  Failed: numbers out of order in {} quant
975  /abc/\  /abc/\
976  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
977    
 /abc/\P  
 Failed: POSIX code 9: bad escape sequence at offset 4  
   
978  /abc/\i  /abc/\i
979  Failed: \ at end of pattern at offset 4  Failed: \ at end of pattern at offset 4
980    
# Line 1151  No first char Line 1090  No first char
1090  No need char  No need char
1091      abc\00def\L\C0      abc\00def\L\C0
1092   0: abc\x00def   0: abc\x00def
1093   0C abc (7)   0C abc\x00def (7)
1094   0L abc   0L abc
1095    
1096  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+  /word ((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+ )((?:[a-zA-Z0-9]+
# Line 1247  No need char Line 1186  No need char
1186  ------------------------------------------------------------------  ------------------------------------------------------------------
1187          Bra          Bra
1188          Bra          Bra
      04 Opt  
1189          AllAny*          AllAny*
1190          X          X
1191          Alt          Alt
      04 Opt  
1192          ^          ^
1193          B          B
1194          Ket          Ket
      00 Opt  
1195          Ket          Ket
1196          End          End
1197  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 1273  Need char = 's' Line 1209  Need char = 's'
1209   0: iss   0: iss
1210   0+ issippi   0+ issippi
1211    
 /\Biss\B/I+P  
     Mississippi  
  0: iss  
  0+ issippi  
   
1212  /iss/IG+  /iss/IG+
1213  Capturing subpattern count = 0  Capturing subpattern count = 0
1214  No options  No options
# Line 1407  Capturing subpattern count = 0 Line 1338  Capturing subpattern count = 0
1338  Contains explicit CR or LF match  Contains explicit CR or LF match
1339  Options: multiline  Options: multiline
1340  First char at start or follows newline  First char at start or follows newline
1341  Need char = 10  Need char = \x0a
1342      ab\nab\ncd      ab\nab\ncd
1343   0: ab\x0a   0: ab\x0a
1344   0+ ab\x0acd   0+ ab\x0acd
# Line 1694  No need char Line 1625  No need char
1625      \Nabc      \Nabc
1626  No match  No match
1627    
 /a*(b+)(z)(z)/P  
     aaaabbbbzzzz  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O0  
     aaaabbbbzzzz\O1  
  0: aaaabbbbzz  
     aaaabbbbzzzz\O2  
  0: aaaabbbbzz  
  1: bbbb  
     aaaabbbbzzzz\O3  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
     aaaabbbbzzzz\O4  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
     aaaabbbbzzzz\O5  
  0: aaaabbbbzz  
  1: bbbb  
  2: z  
  3: z  
   
1628  /^.?abcd/IS  /^.?abcd/IS
1629  Capturing subpattern count = 0  Capturing subpattern count = 0
1630  Options: anchored  Options: anchored
# Line 2764  No need char Line 2668  No need char
2668  ------------------------------------------------------------------  ------------------------------------------------------------------
2669          Bra          Bra
2670          a          a
2671       01 Opt       /i b
      NC b  
2672          Ket          Ket
2673          End          End
2674  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2787  No match Line 2690  No match
2690          Bra          Bra
2691          CBra 1          CBra 1
2692          a          a
2693       01 Opt       /i b
      NC b  
2694          Ket          Ket
      00 Opt  
2695          Ket          Ket
2696          End          End
2697  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2812  No match Line 2713  No match
2713  /   (?i)abc/IxDZ  /   (?i)abc/IxDZ
2714  ------------------------------------------------------------------  ------------------------------------------------------------------
2715          Bra          Bra
2716       NC abc       /i abc
2717          Ket          Ket
2718          End          End
2719  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2825  Need char = 'c' (caseless) Line 2726  Need char = 'c' (caseless)
2726    (?i)abc/IxDZ    (?i)abc/IxDZ
2727  ------------------------------------------------------------------  ------------------------------------------------------------------
2728          Bra          Bra
2729       NC abc       /i abc
2730          Ket          Ket
2731          End          End
2732  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 2998  No need char Line 2899  No need char
2899  /(x)*+/DZ  /(x)*+/DZ
2900  ------------------------------------------------------------------  ------------------------------------------------------------------
2901          Bra          Bra
2902          Once          Braposzero
2903          Brazero          CBraPos 1
         CBra 1  
2904          x          x
2905          KetRmax          KetRpos
         Ket  
2906          Ket          Ket
2907          End          End
2908  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 3590  Need char = 'f' Line 3489  Need char = 'f'
3489    1    ^    ^     f    1    ^    ^     f
3490   0: abcdef   0: abcdef
3491    
3492  /(?C1)\dabc(?C2)def/I  /(?C1)\dabc(?C2)def/IS
3493    Capturing subpattern count = 0
3494    No options
3495    No first char
3496    Need char = 'f'
3497    Subject length lower bound = 7
3498    Starting byte set: 0 1 2 3 4 5 6 7 8 9
3499        1234abcdef
3500    --->1234abcdef
3501      1 ^              \d
3502      1  ^             \d
3503      1   ^            \d
3504      1    ^           \d
3505      2    ^   ^       d
3506     0: 4abcdef
3507        *** Failers
3508    No match
3509        abcdef
3510    No match
3511    
3512    /(?C1)\dabc(?C2)def/ISS
3513  Capturing subpattern count = 0  Capturing subpattern count = 0
3514  No options  No options
3515  No first char  No first char
# Line 3994  Need char = '<' Line 3913  Need char = '<'
3913          Bra          Bra
3914          CBra 1          CBra 1
3915          a          a
         Once  
3916          Recurse          Recurse
         Ket  
3917          b          b
3918          Ket          Ket
3919          Ket          Ket
# Line 4217  Need char = 'a' Line 4134  Need char = 'a'
4134          Any          Any
4135          \1          \1
4136          bbb          bbb
         Once  
4137          Recurse          Recurse
         Ket  
4138          d          d
4139          Ket          Ket
4140          End          End
# Line 4591  Need char = ']' Line 4506  Need char = ']'
4506          a          a
4507          CBra 2          CBra 2
4508          b          b
         Once  
4509          Recurse          Recurse
         Ket  
4510          c          c
4511          Ket          Ket
4512          Ket          Ket
# Line 4613  No need char Line 4526  No need char
4526          a          a
4527          CBra 2          CBra 2
4528          b          b
         Once  
4529          Recurse          Recurse
         Ket  
4530          c          c
4531          Ket          Ket
4532          KetRmax          KetRmax
# Line 4636  No need char Line 4547  No need char
4547          a          a
4548          CBra 2          CBra 2
4549          b          b
         Once  
4550          Recurse          Recurse
         Ket  
4551          c          c
4552          Ket          Ket
4553          Ket          Ket
# Line 4647  No need char Line 4556  No need char
4556          a          a
4557          CBra 2          CBra 2
4558          b          b
         Once  
4559          Recurse          Recurse
         Ket  
4560          c          c
4561          Ket          Ket
4562          Ket          Ket
# Line 4788  Need char = 'e' Line 4695  Need char = 'e'
4695   +4 ^   ^      e   +4 ^   ^      e
4696  No match  No match
4697    
4698  /a*b/ICDZ  /a*b/ICDZS
4699    ------------------------------------------------------------------
4700            Bra
4701            Callout 255 0 2
4702            a*+
4703            Callout 255 2 1
4704            b
4705            Callout 255 3 0
4706            Ket
4707            End
4708    ------------------------------------------------------------------
4709    Capturing subpattern count = 0
4710    Options:
4711    No first char
4712    Need char = 'b'
4713    Subject length lower bound = 1
4714    Starting byte set: a b
4715      ab
4716    --->ab
4717     +0 ^      a*
4718     +2 ^^     b
4719     +3 ^ ^
4720     0: ab
4721      aaaab
4722    --->aaaab
4723     +0 ^         a*
4724     +2 ^   ^     b
4725     +3 ^    ^
4726     0: aaaab
4727      aaaacb
4728    --->aaaacb
4729     +0 ^          a*
4730     +2 ^   ^      b
4731     +0  ^         a*
4732     +2  ^  ^      b
4733     +0   ^        a*
4734     +2   ^ ^      b
4735     +0    ^       a*
4736     +2    ^^      b
4737     +0      ^     a*
4738     +2      ^     b
4739     +3      ^^
4740     0: b
4741    
4742    /a*b/ICDZSS
4743  ------------------------------------------------------------------  ------------------------------------------------------------------
4744          Bra          Bra
4745          Callout 255 0 2          Callout 255 0 2
# Line 4871  Need char = 'b' Line 4822  Need char = 'b'
4822   +2    ^^      b   +2    ^^      b
4823  No match  No match
4824    
4825  /(abc|def)x/ICDZ  /(abc|def)x/ICDZS
4826    ------------------------------------------------------------------
4827            Bra
4828            Callout 255 0 9
4829            CBra 1
4830            Callout 255 1 1
4831            a
4832            Callout 255 2 1
4833            b
4834            Callout 255 3 1
4835            c
4836            Callout 255 4 0
4837            Alt
4838            Callout 255 5 1
4839            d
4840            Callout 255 6 1
4841            e
4842            Callout 255 7 1
4843            f
4844            Callout 255 8 0
4845            Ket
4846            Callout 255 9 1
4847            x
4848            Callout 255 10 0
4849            Ket
4850            End
4851    ------------------------------------------------------------------
4852    Capturing subpattern count = 1
4853    Options:
4854    No first char
4855    Need char = 'x'
4856    Subject length lower bound = 4
4857    Starting byte set: a d
4858      abcx
4859    --->abcx
4860     +0 ^        (abc|def)
4861     +1 ^        a
4862     +2 ^^       b
4863     +3 ^ ^      c
4864     +4 ^  ^     |
4865     +9 ^  ^     x
4866    +10 ^   ^
4867     0: abcx
4868     1: abc
4869      defx
4870    --->defx
4871     +0 ^        (abc|def)
4872     +1 ^        a
4873     +5 ^        d
4874     +6 ^^       e
4875     +7 ^ ^      f
4876     +8 ^  ^     )
4877     +9 ^  ^     x
4878    +10 ^   ^
4879     0: defx
4880     1: def
4881      ** Failers
4882    No match
4883      abcdefzx
4884    --->abcdefzx
4885     +0 ^            (abc|def)
4886     +1 ^            a
4887     +2 ^^           b
4888     +3 ^ ^          c
4889     +4 ^  ^         |
4890     +9 ^  ^         x
4891     +5 ^            d
4892     +0    ^         (abc|def)
4893     +1    ^         a
4894     +5    ^         d
4895     +6    ^^        e
4896     +7    ^ ^       f
4897     +8    ^  ^      )
4898     +9    ^  ^      x
4899    No match
4900    
4901    /(abc|def)x/ICDZSS
4902  ------------------------------------------------------------------  ------------------------------------------------------------------
4903          Bra          Bra
4904          Callout 255 0 9          Callout 255 0 9
# Line 4925  Need char = 'x' Line 4952  Need char = 'x'
4952  +10 ^   ^  +10 ^   ^
4953   0: defx   0: defx
4954   1: def   1: def
4955      ** Failers
4956    No match
4957    abcdefzx    abcdefzx
4958  --->abcdefzx  --->abcdefzx
4959   +0 ^            (abc|def)   +0 ^            (abc|def)
# Line 5025  No need char Line 5054  No need char
5054   0: abcdcdcd   0: abcdcdcd
5055   1: cd   1: cd
5056    
5057  /([ab]{,4}c|xy)/ICDZ  /([ab]{,4}c|xy)/ICDZS
5058    ------------------------------------------------------------------
5059            Bra
5060            Callout 255 0 14
5061            CBra 1
5062            Callout 255 1 4
5063            [ab]
5064            Callout 255 5 1
5065            {
5066            Callout 255 6 1
5067            ,
5068            Callout 255 7 1
5069            4
5070            Callout 255 8 1
5071            }
5072            Callout 255 9 1
5073            c
5074            Callout 255 10 0
5075            Alt
5076            Callout 255 11 1
5077            x
5078            Callout 255 12 1
5079            y
5080            Callout 255 13 0
5081            Ket
5082            Callout 255 14 0
5083            Ket
5084            End
5085    ------------------------------------------------------------------
5086    Capturing subpattern count = 1
5087    Options:
5088    No first char
5089    No need char
5090    Subject length lower bound = 2
5091    Starting byte set: a b x
5092        Note: that { does NOT introduce a quantifier
5093    --->Note: that { does NOT introduce a quantifier
5094     +0         ^                                        ([ab]{,4}c|xy)
5095     +1         ^                                        [ab]
5096     +5         ^^                                       {
5097    +11         ^                                        x
5098     +0                                 ^                ([ab]{,4}c|xy)
5099     +1                                 ^                [ab]
5100     +5                                 ^^               {
5101    +11                                 ^                x
5102     +0                                     ^            ([ab]{,4}c|xy)
5103     +1                                     ^            [ab]
5104     +5                                     ^^           {
5105    +11                                     ^            x
5106    No match
5107    
5108    /([ab]{,4}c|xy)/ICDZSS
5109  ------------------------------------------------------------------  ------------------------------------------------------------------
5110          Bra          Bra
5111          Callout 255 0 14          Callout 255 0 14
# Line 5477  No match Line 5557  No match
5557      123456\P      123456\P
5558  No match  No match
5559    
5560  /abc/I>testsavedregex  /abc/IS>testsavedregex
5561  Capturing subpattern count = 0  Capturing subpattern count = 0
5562  No options  No options
5563  First char = 'a'  First char = 'a'
5564  Need char = 'c'  Need char = 'c'
5565  Compiled regex written to testsavedregex  Subject length lower bound = 3
5566    No set of starting bytes
5567    Compiled pattern written to testsavedregex
5568    Study data written to testsavedregex
5569  <testsavedregex  <testsavedregex
5570  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5571  No study data  Study data loaded from testsavedregex
5572      abc      abc
5573   0: abc   0: abc
5574      ** Failers      ** Failers
# Line 5493  No match Line 5576  No match
5576      bca      bca
5577  No match  No match
5578    
5579  /abc/IF>testsavedregex  /abc/ISS>testsavedregex
5580  Capturing subpattern count = 0  Capturing subpattern count = 0
5581  No options  No options
5582  First char = 'a'  First char = 'a'
5583  Need char = 'c'  Need char = 'c'
5584  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5585  <testsavedregex  <testsavedregex
5586  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5587  No study data  No study data
5588      abc      abc
5589   0: abc   0: abc
# Line 5509  No match Line 5592  No match
5592      bca      bca
5593  No match  No match
5594    
5595  /(a|b)/IS>testsavedregex  /abc/IFS>testsavedregex
5596  Capturing subpattern count = 1  Capturing subpattern count = 0
5597  No options  No options
5598  No first char  First char = 'a'
5599    Need char = 'c'
5600    Subject length lower bound = 3
5601    No set of starting bytes
5602    Compiled pattern written to testsavedregex
5603    Study data written to testsavedregex
5604    <testsavedregex
5605    Compiled pattern (byte-inverted) loaded from testsavedregex
5606    Study data loaded from testsavedregex
5607        abc
5608     0: abc
5609        ** Failers
5610    No match
5611        bca
5612    No match
5613    
5614    /abc/IFSS>testsavedregex
5615    Capturing subpattern count = 0
5616    No options
5617    First char = 'a'
5618    Need char = 'c'
5619    Compiled pattern written to testsavedregex
5620    <testsavedregex
5621    Compiled pattern (byte-inverted) loaded from testsavedregex
5622    No study data
5623        abc
5624     0: abc
5625        ** Failers
5626    No match
5627        bca
5628    No match
5629    
5630    /(a|b)/IS>testsavedregex
5631    Capturing subpattern count = 1
5632    No options
5633    No first char
5634  No need char  No need char
5635  Subject length lower bound = 1  Subject length lower bound = 1
5636  Starting byte set: a b  Starting byte set: a b
5637  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5638  Study data written to testsavedregex  Study data written to testsavedregex
5639  <testsavedregex  <testsavedregex
5640  Compiled regex loaded from testsavedregex  Compiled pattern loaded from testsavedregex
5641  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5642      abc      abc
5643   0: a   0: a
# Line 5530  Study data loaded from testsavedregex Line 5648  Study data loaded from testsavedregex
5648      def      def
5649  No match  No match
5650    
5651    /(a|b)/ISS>testsavedregex
5652    Capturing subpattern count = 1
5653    No options
5654    No first char
5655    No need char
5656    Compiled pattern written to testsavedregex
5657    <testsavedregex
5658    Compiled pattern loaded from testsavedregex
5659    No study data
5660        abc
5661     0: a
5662     1: a
5663        ** Failers
5664     0: a
5665     1: a
5666        def
5667    No match
5668    
5669  /(a|b)/ISF>testsavedregex  /(a|b)/ISF>testsavedregex
5670  Capturing subpattern count = 1  Capturing subpattern count = 1
5671  No options  No options
# Line 5537  No first char Line 5673  No first char
5673  No need char  No need char
5674  Subject length lower bound = 1  Subject length lower bound = 1
5675  Starting byte set: a b  Starting byte set: a b
5676  Compiled regex written to testsavedregex  Compiled pattern written to testsavedregex
5677  Study data written to testsavedregex  Study data written to testsavedregex
5678  <testsavedregex  <testsavedregex
5679  Compiled regex (byte-inverted) loaded from testsavedregex  Compiled pattern (byte-inverted) loaded from testsavedregex
5680  Study data loaded from testsavedregex  Study data loaded from testsavedregex
5681      abc      abc
5682   0: a   0: a
# Line 5551  Study data loaded from testsavedregex Line 5687  Study data loaded from testsavedregex
5687      def      def
5688  No match  No match
5689    
5690    /(a|b)/ISSF>testsavedregex
5691    Capturing subpattern count = 1
5692    No options
5693    No first char
5694    No need char
5695    Compiled pattern written to testsavedregex
5696    <testsavedregex
5697    Compiled pattern (byte-inverted) loaded from testsavedregex
5698    No study data
5699        abc
5700     0: a
5701     1: a
5702        ** Failers
5703     0: a
5704     1: a
5705        def
5706    No match
5707    
5708  ~<(\w+)/?>(.)*</(\1)>~smgI  ~<(\w+)/?>(.)*</(\1)>~smgI
5709  Capturing subpattern count = 3  Capturing subpattern count = 3
5710  Max back reference = 1  Max back reference = 1
5711  Options: multiline dotall  Options: multiline dotall
5712  First char = '<'  First char = '<'
5713  Need char = '>'  Need char = '>'
5714      <!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>
5715   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>
5716   1: seite   1: seite
5717   2: \x0a   2: \x0a
# Line 5606  No match Line 5760  No match
5760      line one\nthis is a line\nbreak in the second line      line one\nthis is a line\nbreak in the second line
5761  No match  No match
5762    
 /ab.cd/P  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ** Failers  
 No match: POSIX code 17: match failed  
     ab\ncd  
 No match: POSIX code 17: match failed  
   
 /ab.cd/Ps  
     ab-cd  
  0: ab-cd  
     ab=cd  
  0: ab=cd  
     ab\ncd  
  0: ab\x0acd  
   
5763  /(?i)(?-i)AbCd/I  /(?i)(?-i)AbCd/I
5764  Capturing subpattern count = 0  Capturing subpattern count = 0
5765  No options  No options
# Line 5916  No need char Line 6052  No need char
6052      ((this))      ((this))
6053   0: ((this))   0: ((this))
6054    
 /a(b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /a(?P<name>b)c/PN  
     abc  
 Matched with REG_NOSUB  
   
 /\x{100}/I  
 Failed: character value in \x{...} sequence is too large at offset 6  
   
6055  /\x{0000ff}/I  /\x{0000ff}/I
6056  Capturing subpattern count = 0  Capturing subpattern count = 0
6057  No options  No options
6058  First char = 255  First char = \xff
6059  No need char  No need char
6060    
6061  /^((?P<A>a1)|(?P<A>a2)b)/I  /^((?P<A>a1)|(?P<A>a2)b)/I
# Line 6040  no parentheses with name "Z" Line 6165  no parentheses with name "Z"
6165   0: a1   0: a1
6166   1: a1   1: a1
6167   2: a1   2: a1
6168  copy substring Z failed -7  get substring Z failed -7
6169    G a1 (2) A    G a1 (2) A
6170    
6171  /^(?P<A>a)(?P<A>b)/IJ  /^(?P<A>a)(?P<A>b)/IJ
# Line 6072  No need char Line 6197  No need char
6197    G a (1) A    G a (1) A
6198      cd\GA      cd\GA
6199   0: cd   0: cd
6200  copy substring A failed -7  get substring A failed -7
6201    
6202  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ  /^(?P<A>a)(?P<A>b)|cd(?P<A>ef)(?P<A>gh)/IJ
6203  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 6240  No need char Line 6365  No need char
6365   9:   9:
6366  10: Y  10: Y
6367    
 /\777/I  
 Failed: octal value is greater than \377 (not in UTF-8 mode) at offset 3  
   
6368  /\s*,\s*/IS  /\s*,\s*/IS
6369  Capturing subpattern count = 0  Capturing subpattern count = 0
6370  No options  No options
# Line 6674  No match Line 6796  No match
6796  ------------------------------------------------------------------  ------------------------------------------------------------------
6797          Bra          Bra
6798          ^          ^
6799          a*       /i a*
6800       NC A       /i A
6801          \d          \d
6802          Ket          Ket
6803          End          End
# Line 7303  Matched, but too many substrings Line 7425  Matched, but too many substrings
7425  /[^a]+a/BZi  /[^a]+a/BZi
7426  ------------------------------------------------------------------  ------------------------------------------------------------------
7427          Bra          Bra
7428          [^A]++       /i [^a]++
7429       NC a       /i a
7430          Ket          Ket
7431          End          End
7432  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7312  Matched, but too many substrings Line 7434  Matched, but too many substrings
7434  /[^a]+A/BZi  /[^a]+A/BZi
7435  ------------------------------------------------------------------  ------------------------------------------------------------------
7436          Bra          Bra
7437          [^A]++       /i [^a]++
7438       NC A       /i A
7439          Ket          Ket
7440          End          End
7441  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 7508  No match Line 7630  No match
7630  ------------------------------------------------------------------  ------------------------------------------------------------------
7631          Bra          Bra
7632          ^          ^
         Once  
7633          Recurse          Recurse
         Ket  
7634          [()]          [()]
7635          CBra 1          CBra 1
7636          Ket          Ket
# Line 7544  No match Line 7664  No match
7664  ------------------------------------------------------------------  ------------------------------------------------------------------
7665          Bra          Bra
7666          ^          ^
         Once  
7667          Recurse          Recurse
         Ket  
7668          ()          ()
7669          CBra 1          CBra 1
7670          Ket          Ket
# Line 7558  No match Line 7676  No match
7676  ------------------------------------------------------------------  ------------------------------------------------------------------
7677          Bra          Bra
7678          ^          ^
         Once  
7679          Recurse          Recurse
         Ket  
7680          [(\]a]          [(\]a]
7681          CBra 1          CBra 1
7682          Ket          Ket
# Line 7573  No match Line 7689  No match
7689  ------------------------------------------------------------------  ------------------------------------------------------------------
7690          Bra          Bra
7691          ^          ^
         Once  
7692          Recurse          Recurse
         Ket  
7693          CBra 1          CBra 1
7694          Ket          Ket
7695          Ket          Ket
# Line 7707  Options: extended Line 7821  Options: extended
7821  First char = 'x'  First char = 'x'
7822  Need char = 'z'  Need char = 'z'
7823    
 /(?(DEFINE) abc){3} xyz/x  
 Failed: repeating a DEFINE group is not allowed at offset 17  
   
7824  /(a|)*\d/  /(a|)*\d/
7825    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa    \O0aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
7826  No match  No match
# Line 8027  No match Line 8138  No match
8138          Alt          Alt
8139          c          c
8140          Ket          Ket
         Once  
8141          Recurse          Recurse
8142          Ket          Ket
         Ket  
8143          End          End
8144  ------------------------------------------------------------------  ------------------------------------------------------------------
8145      abc      abc
# Line 8041  No match Line 8150  No match
8150  ------------------------------------------------------------------  ------------------------------------------------------------------
8151          Bra          Bra
8152          xy          xy
         Once  
8153          Recurse          Recurse
         Ket  
8154          CBra 1          CBra 1
8155          abc          abc
8156          Ket          Ket
# Line 8273  Failed: syntax error in subpattern name Line 8380  Failed: syntax error in subpattern name
8380   3: <unset>   3: <unset>
8381   4: x   4: x
8382    
 /[\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09<  
  0: \x09  
   
 /[\h]+/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x09 \xa0]+  
         Ket  
         End  
 ------------------------------------------------------------------  
     >\x09\x20\xa0<  
  0: \x09 \xa0  
   
 /[\v]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x0a-\x0d\x85]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\H]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[^\h]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x08\x0a-\x1f!-\x9f\xa1-\xff] (neg)  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x09\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
 /[\x0a\V]/BZ  
 ------------------------------------------------------------------  
         Bra  
         [\x00-\x0a\x0e-\x84\x86-\xff]  
         Ket  
         End  
 ------------------------------------------------------------------  
   
8383  /\H++X/BZ  /\H++X/BZ
8384  ------------------------------------------------------------------  ------------------------------------------------------------------
8385          Bra          Bra
# Line 8524  No match Line 8571  No match
8571  ------------------------------------------------------------------  ------------------------------------------------------------------
8572    
8573  /\( (?: [^()]* | (?R) )* \)/x  /\( (?: [^()]* | (?R) )* \)/x
8574  (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8575   0: (0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(0(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)
8576    
8577  /[\E]AAA/  /[\E]AAA/
# Line 8706  Failed: number is too big at offset 19 Line 8753  Failed: number is too big at offset 19
8753  /\g6666666666/  /\g6666666666/
8754  Failed: number is too big at offset 11  Failed: number is too big at offset 11
8755    
8756  /[\g6666666666]/  /[\g6666666666]/BZ
8757  Failed: number is too big at offset 12  ------------------------------------------------------------------
8758            Bra
8759            [6g]
8760            Ket
8761            End
8762    ------------------------------------------------------------------
8763    
8764  /(?1)\c[/  /(?1)\c[/
8765  Failed: reference to non-existent subpattern at offset 3  Failed: reference to non-existent subpattern at offset 3
# Line 9013  Failed: subpattern name expected at offs Line 9065  Failed: subpattern name expected at offs
9065  /\k{}/  /\k{}/
9066  Failed: subpattern name expected at offset 3  Failed: subpattern name expected at offset 3
9067    
9068    /\k/
9069    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 2
9070    
9071    /\kabc/
9072    Failed: \k is not followed by a braced, angle-bracketed, or quoted name at offset 5
9073    
9074  /(?P=)/  /(?P=)/
9075  Failed: subpattern name expected at offset 4  Failed: subpattern name expected at offset 4
9076    
# Line 9234  No options Line 9292  No options
9292  First char at start or follows newline  First char at start or follows newline
9293  No need char  No need char
9294    
 /a?|b?/P  
     abc  
  0: a  
     ** Failers  
  0:  
     ddd\N  
 No match: POSIX code 17: match failed  
   
9295  /xyz/C  /xyz/C
9296    xyz    xyz
9297  --->xyz  --->xyz
# Line 9636  Partial match: the cat Line 9686  Partial match: the cat
9686     abc\P\P     abc\P\P
9687   0: abc   0: abc
9688    
 /\w+A/P  
    CDAAAAB  
  0: CDAAAA  
   
 /\w+A/PU  
    CDAAAAB  
  0: CDA  
   
9689  /abc\K123/  /abc\K123/
9690      xyzabc123pqr      xyzabc123pqr
9691   0: 123   0: 123
# Line 9671  Partial match: +ab Line 9713  Partial match: +ab
9713  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^m][^>]>[^<])(?<word>\w*+))/BZ
9714  ------------------------------------------------------------------  ------------------------------------------------------------------
9715          Bra          Bra
         Once  
9716          Recurse          Recurse
         Ket  
         Once  
9717          Recurse          Recurse
         Ket  
9718          Cond          Cond
9719          Cond def          Cond def
9720          CBra 1          CBra 1
# Line 9697  Partial match: +ab Line 9735  Partial match: +ab
9735  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ  /(?&word)(?&element)(?(DEFINE)(?<element><[^\d][^>]>[^<])(?<word>\w*+))/BZ
9736  ------------------------------------------------------------------  ------------------------------------------------------------------
9737          Bra          Bra
         Once  
9738          Recurse          Recurse
         Ket  
         Once  
9739          Recurse          Recurse
         Ket  
9740          Cond          Cond
9741          Cond def          Cond def
9742          CBra 1          CBra 1
# Line 10044  Need char = ':' Line 10078  Need char = ':'
10078  Subject length lower bound = 22  Subject length lower bound = 22
10079  No set of starting bytes  No set of starting bytes
10080    
 /  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                          # optional leading comment  
 (?:    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 # address  
 |                     #  or  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )             # one word, optionally followed by....  
 (?:  
 [^()<>@,;:".\\\[\]\x80-\xff\000-\010\012-\037]  |  # atom and space parts, or...  
 \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)       |  # comments, or...  
   
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 # quoted strings  
 )*  
 <  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                     # leading <  
 (?:  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
   
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  ,  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 )* # further okay, if led by comma  
 :                                # closing colon  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  )? #       optional route  
 (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )                    # initial word  
 (?:  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |  
 " (?:                      # opening quote...  
 [^\\\x80-\xff\n\015"]                #   Anything except backslash and quote  
 |                     #    or  
 \\ [^\x80-\xff]           #   Escaped something (something != CR)  
 )* "  # closing quote  
 )  )* # further okay, if led by a period  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  @  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*    (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                           # initial subdomain  
 (?:                                  #  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  \.                        # if led by a period...  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*   (?:  
 [^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]+    # some number of atom characters...  
 (?![^(\040)<>@,;:".\\\[\]\000-\037\x80-\xff]) # ..not followed by something that could be part of an atom  
 |   \[                         # [  
 (?: [^\\\x80-\xff\n\015\[\]] |  \\ [^\x80-\xff]  )*    #    stuff  
 \]                        #           ]  
 )                     #   ...further okay  
 )*  
 #       address spec  
 (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*  > #                  trailing >  
 # name and address  
 )  (?: [\040\t] |  \(  
 (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  |  \( (?:  [^\\\x80-\xff\n\015()]  |  \\ [^\x80-\xff]  )* \)  )*  
 \)  )*                       # optional trailing comment  
 /xSI  
 Capturing subpattern count = 0  
 Contains explicit CR or LF match  
 Options: extended  
 No first char  
 No need char  
 Subject length lower bound = 3  
 Starting byte set: \x09 \x20 ! " # $ % & ' ( * + - / 0 1 2 3 4 5 6 7 8  
   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  
   f g h i j k l m n o p q r s t u v w x y z { | } ~ \x7f  
   
10081  /<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  /<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
10082  Capturing subpattern count = 11  Capturing subpattern count = 11
10083  Options: caseless dotall  Options: caseless dotall
# Line 10443  No match Line 10273  No match
10273          Cond nrecurse 1          Cond nrecurse 1
10274          $          $
10275          Alt          Alt
         Once  
10276          Recurse          Recurse
10277          Ket          Ket
10278          Ket          Ket
10279          Ket          Ket
         Ket  
10280          End          End
10281  ------------------------------------------------------------------  ------------------------------------------------------------------
10282  Capturing subpattern count = 4  Capturing subpattern count = 4
# Line 10586  Starting byte set: i Line 10414  Starting byte set: i
10414  /(?i)a(?-i)b|c/BZ  /(?i)a(?-i)b|c/BZ
10415  ------------------------------------------------------------------  ------------------------------------------------------------------
10416          Bra          Bra
10417       NC a       /i a
      00 Opt  
10418          b          b
10419          Alt          Alt
      00 Opt  
10420          c          c
10421          Ket          Ket
10422          End          End
# Line 10609  No match Line 10435  No match
10435  /(?i)a(?s)b|c/BZ  /(?i)a(?s)b|c/BZ
10436  ------------------------------------------------------------------  ------------------------------------------------------------------
10437          Bra          Bra
10438       NC a       /i ab
      05 Opt  
      NC b  
10439          Alt          Alt
10440       05 Opt       /i c
      NC c  
10441          Ket          Ket
10442          End          End
10443  ------------------------------------------------------------------  ------------------------------------------------------------------
# Line 10622  No match Line 10445  No match
10445  /(?i)a(?s-i)b|c/BZ  /(?i)a(?s-i)b|c/BZ
10446  ------------------------------------------------------------------  ------------------------------------------------------------------
10447          Bra          Bra
10448       NC a       /i a
      04 Opt  
10449          b          b
10450          Alt          Alt
      04 Opt  
10451          c          c
10452          Ket          Ket
10453          End          End
# Line 10673  No match Line 10494  No match
10494  ------------------------------------------------------------------  ------------------------------------------------------------------
10495          Bra          Bra
10496          ^          ^
10497          Once          Braposzero
10498          Brazero          SBraPos
         Once  
10499          Recurse          Recurse
10500          KetRmax          KetRpos
         Ket  
10501          Cond          Cond
10502          Cond def          Cond def
10503          CBra 1          CBra 1
# Line 10767  No match Line 10586  No match
10586      AC      AC
10587  No match  No match
10588    
 /--- A whole lot of tests of verbs with arguments are here rather than in test  
      11 because Perl doesn't seem to follow its specification entirely  
      correctly. ---/  
   
 /--- Perl 5.11 sets $REGERROR on the AC failure case here; PCRE does not. It is  
      not clear how Perl defines "involved in the failure of the match". ---/  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /--- Check the use of names for success and failure. PCRE doesn't show these  
 names for success, though Perl does, contrary to its spec. ---/  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /--- An empty name does not pass back an empty string. It is the same as if no  
 name were given. ---/  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/K  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /--- PRUNE goes to next bumpalong; COMMIT does not. ---/  
   
 /A(*PRUNE:A)B/K  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/K  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /(*MARK:A)(*THEN:B)(C|X)/K  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match, mark = B  
   
 /--- This should fail, as the skip causes a bump to offset 3 (the skip) ---/  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- Same --/  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xK  
     AAAC  
 No match  
   
10589  /--- This should fail; the SKIP advances by one, but when we get to AC, the  /--- This should fail; the SKIP advances by one, but when we get to AC, the
10590       PRUNE kills it. ---/       PRUNE kills it. Perl behaves differently. ---/
10591    
10592  /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK  /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
10593      AAAC      AAAC
10594  No match  No match, mark = A
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This should fail, as a null name is the same as no name ---/  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xK  
     AAAC  
 No match  
   
 /--- This fails in PCRE, and I think that is in accordance with Perl's  
      documentation, though in Perl it succeeds. ---/  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xK  
     AAAC  
 No match  
10595    
10596  /--- Mark names can be duplicated ---/  /--- Mark names can be duplicated. Perl doesn't give a mark for this one,
10597    though PCRE does. ---/
10598    
 /A(*:A)B|X(*:A)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XY  
 MK: A  
   
10599  /^A(*:A)B|^X(*:A)Y/K  /^A(*:A)B|^X(*:A)Y/K
10600      ** Failers      ** Failers
10601  No match  No match
10602      XAQQ      XAQQ
10603  No match, mark = A  No match, mark = A
10604    
 /--- A check on what happens after hitting a mark and them bumping along to  
 something that does not even start. Perl reports tags after the failures here,  
 though it does not when the individual letters are made into something  
 more complicated. ---/  
   
 /A(*:A)B|XX(*:B)Y/K  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
10605  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl  /--- COMMIT at the start of a pattern should be the same as an anchor. Perl
10606  optimizations defeat this. So does the PCRE optimization unless we disable it  optimizations defeat this. So does the PCRE optimization unless we disable it
10607  with \Y. ---/  with \Y. ---/
# Line 10925  No match Line 10614  No match
10614      DEFGABC\Y      DEFGABC\Y
10615  No match  No match
10616    
10617  /--- Repeat some tests with added studying. ---/  /^(ab (c+(*THEN)cd) | xyz)/x
10618        abcccd
 /A(*COMMIT)B/+KS  
     ACABX  
10619  No match  No match
   
 /A(*THEN)B|A(*THEN)C/KS  
     AC  
  0: AC  
10620    
10621  /A(*PRUNE)B|A(*PRUNE)C/KS  /^(ab (c+(*PRUNE)cd) | xyz)/x
10622      AC      abcccd
 No match  
   
 /^(A(*THEN:A)B|C(*THEN:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:A)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
     ** Failers  
 No match  
     AC  
 No match, mark = A  
     CB  
 No match, mark = B  
   
 /^(A(*PRUNE:)B|C(*PRUNE:B)D)/KS  
     AB  
  0: AB  
  1: AB  
     CD  
  0: CD  
  1: CD  
   
 /A(*PRUNE:A)B/KS  
     ACAB  
  0: AB  
   
 /(*MARK:A)(*PRUNE:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /(*MARK:A)(*THEN:B)(C|X)/KS  
     C  
  0: C  
  1: C  
 MK: A  
     D  
 No match  
   
 /A(*MARK:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*MARK:B)(*SKIP:B)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*:A)A+(*SKIP)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:)(B|Z) | AC/xKS  
     AAAC  
 No match  
   
 /A(*MARK:A)A+(*SKIP:B)(B|Z) | AAC/xKS  
     AAAC  
 No match  
   
 /A(*:A)B|XX(*:B)Y/KS  
     AABC  
  0: AB  
 MK: A  
     XXYZ  
  0: XXY  
 MK: B  
     ** Failers  
 No match  
     XAQQ  
 No match  
     XAQQXZZ  
 No match  
     AXQQQ  
 No match  
     AXXQQQ  
 No match  
   
 /(*COMMIT)ABC/  
     ABCDEFG  
  0: ABC  
     ** Failers  
 No match  
     DEFGABC\Y  
 No match  
   
 /^(ab (c+(*THEN)cd) | xyz)/x  
     abcccd  
 No match  
   
 /^(ab (c+(*PRUNE)cd) | xyz)/x  
     abcccd  
10623  No match  No match
10624    
10625  /^(ab (c+(*FAIL)cd) | xyz)/x  /^(ab (c+(*FAIL)cd) | xyz)/x
# Line 11305  Failed: reference to non-existent subpat Line 10874  Failed: reference to non-existent subpat
10874          End          End
10875  ------------------------------------------------------------------  ------------------------------------------------------------------
10876    
10877    /-- These tests are here because Perl gets the first one wrong. --/
10878    
10879    /(\R*)(.)/s
10880        \r\n
10881     0: \x0d
10882     1:
10883     2: \x0d
10884        \r\r\n\n\r
10885     0: \x0d\x0d\x0a\x0a\x0d
10886     1: \x0d\x0d\x0a\x0a
10887     2: \x0d
10888        \r\r\n\n\r\n
10889     0: \x0d\x0d\x0a\x0a\x0d
10890     1: \x0d\x0d\x0a\x0a
10891     2: \x0d
10892    
10893    /(\R)*(.)/s
10894        \r\n
10895     0: \x0d
10896     1: <unset>
10897     2: \x0d
10898        \r\r\n\n\r
10899     0: \x0d\x0d\x0a\x0a\x0d
10900     1: \x0a
10901     2: \x0d
10902        \r\r\n\n\r\n
10903     0: \x0d\x0d\x0a\x0a\x0d
10904     1: \x0a
10905     2: \x0d
10906    
10907    /((?>\r\n|\n|\x0b|\f|\r|\x85)*)(.)/s
10908        \r\n
10909     0: \x0d
10910     1:
10911     2: \x0d
10912        \r\r\n\n\r
10913     0: \x0d\x0d\x0a\x0a\x0d
10914     1: \x0d\x0d\x0a\x0a
10915     2: \x0d
10916        \r\r\n\n\r\n
10917     0: \x0d\x0d\x0a\x0a\x0d
10918     1: \x0d\x0d\x0a\x0a
10919     2: \x0d
10920    
10921    /-- --/
10922    
10923    /^abc$/BZ
10924    ------------------------------------------------------------------
10925            Bra
10926            ^
10927            abc
10928            $
10929            Ket
10930            End
10931    ------------------------------------------------------------------
10932    
10933    /^abc$/BZm
10934    ------------------------------------------------------------------
10935            Bra
10936         /m ^
10937            abc
10938         /m $
10939            Ket
10940            End
10941    ------------------------------------------------------------------
10942    
10943    /^(a)*+(\w)/S
10944        aaaaX
10945     0: aaaaX
10946     1: a
10947     2: X
10948        ** Failers
10949    No match
10950        aaaa
10951    No match
10952    
10953    /^(?:a)*+(\w)/S
10954        aaaaX
10955     0: aaaaX
10956     1: X
10957        ** Failers
10958    No match
10959        aaaa
10960    No match
10961    
10962    /(a)++1234/SDZ
10963    ------------------------------------------------------------------
10964            Bra
10965            CBraPos 1
10966            a
10967            KetRpos
10968            1234
10969            Ket
10970            End
10971    ------------------------------------------------------------------
10972    Capturing subpattern count = 1
10973    No options
10974    First char = 'a'
10975    Need char = '4'
10976    Subject length lower bound = 5
10977    No set of starting bytes
10978    
10979    /([abc])++1234/SI
10980    Capturing subpattern count = 1
10981    No options
10982    No first char
10983    Need char = '4'
10984    Subject length lower bound = 5
10985    Starting byte set: a b c
10986    
10987    /(?<=(abc)+)X/
10988    Failed: lookbehind assertion is not fixed length at offset 10
10989    
10990    /(^ab)/I
10991    Capturing subpattern count = 1
10992    Options: anchored
10993    No first char
10994    No need char
10995    
10996    /(^ab)++/I
10997    Capturing subpattern count = 1
10998    Options: anchored
10999    No first char
11000    No need char
11001    
11002    /(^ab|^)+/I
11003    Capturing subpattern count = 1
11004    Options: anchored
11005    No first char
11006    No need char
11007    
11008    /(^ab|^)++/I
11009    Capturing subpattern count = 1
11010    Options: anchored
11011    No first char
11012    No need char
11013    
11014    /(?:^ab)/I
11015    Capturing subpattern count = 0
11016    Options: anchored
11017    No first char
11018    No need char
11019    
11020    /(?:^ab)++/I
11021    Capturing subpattern count = 0
11022    Options: anchored
11023    No first char
11024    No need char
11025    
11026    /(?:^ab|^)+/I
11027    Capturing subpattern count = 0
11028    Options: anchored
11029    No first char
11030    No need char
11031    
11032    /(?:^ab|^)++/I
11033    Capturing subpattern count = 0
11034    Options: anchored
11035    No first char
11036    No need char
11037    
11038    /(.*ab)/I
11039    Capturing subpattern count = 1
11040    No options
11041    First char at start or follows newline
11042    Need char = 'b'
11043    
11044    /(.*ab)++/I
11045    Capturing subpattern count = 1
11046    No options
11047    First char at start or follows newline
11048    Need char = 'b'
11049    
11050    /(.*ab|.*)+/I
11051    Capturing subpattern count = 1
11052    No options
11053    First char at start or follows newline
11054    No need char
11055    
11056    /(.*ab|.*)++/I
11057    Capturing subpattern count = 1
11058    No options
11059    First char at start or follows newline
11060    No need char
11061    
11062    /(?:.*ab)/I
11063    Capturing subpattern count = 0
11064    No options
11065    First char at start or follows newline
11066    Need char = 'b'
11067    
11068    /(?:.*ab)++/I
11069    Capturing subpattern count = 0
11070    No options
11071    First char at start or follows newline
11072    Need char = 'b'
11073    
11074    /(?:.*ab|.*)+/I
11075    Capturing subpattern count = 0
11076    No options
11077    First char at start or follows newline
11078    No need char
11079    
11080    /(?:.*ab|.*)++/I
11081    Capturing subpattern count = 0
11082    No options
11083    First char at start or follows newline
11084    No need char
11085    
11086    /(?=a)[bcd]/I
11087    Capturing subpattern count = 0
11088    No options
11089    First char = 'a'
11090    No need char
11091    
11092    /((?=a))[bcd]/I
11093    Capturing subpattern count = 1
11094    No options
11095    First char = 'a'
11096    No need char
11097    
11098    /((?=a))+[bcd]/I
11099    Capturing subpattern count = 1
11100    No options
11101    First char = 'a'
11102    No need char
11103    
11104    /((?=a))++[bcd]/I
11105    Capturing subpattern count = 1
11106    No options
11107    First char = 'a'
11108    No need char
11109    
11110    /(?=a+)[bcd]/iI
11111    Capturing subpattern count = 0
11112    Options: caseless
11113    First char = 'a' (caseless)
11114    No need char
11115    
11116    /(?=a+?)[bcd]/iI
11117    Capturing subpattern count = 0
11118    Options: caseless
11119    First char = 'a' (caseless)
11120    No need char
11121    
11122    /(?=a++)[bcd]/iI
11123    Capturing subpattern count = 0
11124    Options: caseless
11125    First char = 'a' (caseless)
11126    No need char
11127    
11128    /(?=a{3})[bcd]/iI
11129    Capturing subpattern count = 0
11130    Options: caseless
11131    First char = 'a' (caseless)
11132    Need char = 'a' (caseless)
11133    
11134    /(abc)\1+/S
11135    
11136    /-- Perl doesn't get these right IMO (the 3rd is PCRE-specific) --/
11137    
11138    /(?1)(?:(b(*ACCEPT))){0}/
11139        b
11140     0: b
11141    
11142    /(?1)(?:(b(*ACCEPT))){0}c/
11143        bc
11144     0: bc
11145        ** Failers
11146    No match
11147        b
11148    No match
11149    
11150    /(?1)(?:((*ACCEPT))){0}c/
11151        c
11152     0: c
11153        c\N
11154     0: c
11155    
11156    /^.*?(?(?=a)a|b(*THEN)c)/
11157        ba
11158    No match
11159    
11160    /^.*?(?(?=a)a|bc)/
11161        ba
11162     0: ba
11163    
11164    /^.*?(?(?=a)a(*THEN)b|c)/
11165        ac
11166    No match
11167    
11168    /^.*?(?(?=a)a(*THEN)b)c/
11169        ac
11170    No match
11171    
11172    /^.*?(a(*THEN)b)c/
11173        aabc
11174    No match
11175    
11176    /^.*? (?1) c (?(DEFINE)(a(*THEN)b))/x
11177        aabc
11178     0: aabc
11179    
11180    /^.*?(a(*THEN)b|z)c/
11181        aabc
11182     0: aabc
11183     1: ab
11184    
11185    /^.*?(z|a(*THEN)b)c/
11186        aabc
11187     0: aabc
11188     1: ab
11189    
11190    /-- --/
11191    
11192    /-- These studied versions are here because they are not Perl-compatible; the
11193        studying means the mark is not seen. --/
11194    
11195    /(*MARK:A)(*SKIP:B)(C|X)/KS
11196        C
11197     0: C
11198     1: C
11199    MK: A
11200        D
11201    No match, mark = A
11202    
11203    /(*:A)A+(*SKIP:A)(B|Z)/KS
11204        AAAC
11205    No match, mark = A
11206    
11207    /-- --/
11208    
11209    "(?=a*(*ACCEPT)b)c"
11210        c
11211     0: c
11212        c\N
11213     0: c
11214    
11215    /(?1)c(?(DEFINE)((*ACCEPT)b))/
11216        c
11217     0: c
11218        c\N
11219     0: c
11220    
11221    /(?>(*ACCEPT)b)c/
11222        c
11223     0:
11224        c\N
11225    No match
11226    
11227    /(?:(?>(a)))+a%/++
11228        %aa%
11229     0: aa%
11230     0+
11231     1: a
11232     1+ a%
11233    
11234    /(a)b|ac/++SS
11235        ac\O3
11236    Matched, but too many substrings
11237     0: ac
11238     0+
11239    
11240    /(a)(b)x|abc/++
11241         abc\O6
11242     0: abc
11243     0+
11244    
11245    /(a)bc|(a)(b)\2/
11246        \O3abc
11247    Matched, but too many substrings
11248     0: abc
11249        \O4abc
11250    Matched, but too many substrings
11251     0: abc
11252    
11253    /(?(DEFINE)(a(?2)|b)(b(?1)|a))(?:(?1)|(?2))/SI
11254    Capturing subpattern count = 2
11255    No options
11256    No first char
11257    No need char
11258    Subject length lower bound = 1
11259    No set of starting bytes
11260    
11261    /(a(?2)|b)(b(?1)|a)(?:(?1)|(?2))/SI
11262    Capturing subpattern count = 2
11263    No options
11264    No first char
11265    No need char
11266    Subject length lower bound = 3
11267    Starting byte set: a b
11268    
11269    /(a(?2)|b)(b(?1)|a)(?1)(?2)/SI
11270    Capturing subpattern count = 2
11271    No options
11272    No first char
11273    No need char
11274    Subject length lower bound = 4
11275    Starting byte set: a b
11276    
11277    /(abc)(?1)/SI
11278    Capturing subpattern count = 1
11279    No options
11280    First char = 'a'
11281    Need char = 'c'
11282    Subject length lower bound = 6
11283    No set of starting bytes
11284    
11285    /^(?>a)++/
11286        aa\M
11287    Minimum match() limit = 5
11288    Minimum match() recursion limit = 2
11289     0: aa
11290        aaaaaaaaa\M
11291    Minimum match() limit = 12
11292    Minimum match() recursion limit = 2
11293     0: aaaaaaaaa
11294    
11295    /(a)(?1)++/
11296        aa\M
11297    Minimum match() limit = 7
11298    Minimum match() recursion limit = 4
11299     0: aa
11300     1: a
11301        aaaaaaaaa\M
11302    Minimum match() limit = 21
11303    Minimum match() recursion limit = 4
11304     0: aaaaaaaaa
11305     1: a
11306    
11307    /(?:(foo)|(bar)|(baz))X/SS=
11308        bazfooX
11309     0: fooX
11310     1: foo
11311     2: <unset>
11312     3: <unset>
11313        foobazbarX
11314     0: barX
11315     1: <unset>
11316     2: bar
11317     3: <unset>
11318        barfooX
11319     0: fooX
11320     1: foo
11321     2: <unset>
11322     3: <unset>
11323        bazX
11324     0: bazX
11325     1: <unset>
11326     2: <unset>
11327     3: baz
11328        foobarbazX
11329     0: bazX
11330     1: <unset>
11331     2: <unset>
11332     3: baz
11333        bazfooX\O0
11334    Matched, but too many substrings
11335        bazfooX\O2
11336    Matched, but too many substrings
11337     0: fooX
11338        bazfooX\O4
11339    Matched, but too many substrings
11340     0: fooX
11341     1: <unset>
11342        bazfooX\O6
11343    Matched, but too many substrings
11344     0: fooX
11345     1: foo
11346     2: <unset>
11347        bazfooX\O8
11348    Matched, but too many substrings
11349     0: fooX
11350     1: foo
11351     2: <unset>
11352     3: <unset>
11353        bazfooX\O10
11354     0: fooX
11355     1: foo
11356     2: <unset>
11357     3: <unset>
11358    
11359    /(?=abc){3}abc/BZ
11360    ------------------------------------------------------------------
11361            Bra
11362            Assert
11363            abc
11364            Ket
11365            abc
11366            Ket
11367            End
11368    ------------------------------------------------------------------
11369    
11370    /(?=abc)+abc/BZ
11371    ------------------------------------------------------------------
11372            Bra
11373            Assert
11374            abc
11375            Ket
11376            abc
11377            Ket
11378            End
11379    ------------------------------------------------------------------
11380    
11381    /(?=abc)++abc/BZ
11382    ------------------------------------------------------------------
11383            Bra
11384            Assert
11385            abc
11386            Ket
11387            abc
11388            Ket
11389            End
11390    ------------------------------------------------------------------
11391    
11392    /(?=abc){0}xyz/BZ
11393    ------------------------------------------------------------------
11394            Bra
11395            Skip zero
11396            Assert
11397            abc
11398            Ket
11399            xyz
11400            Ket
11401            End
11402    ------------------------------------------------------------------
11403    
11404    /(?=(a))?./BZ
11405    ------------------------------------------------------------------
11406            Bra
11407            Brazero
11408            Assert
11409            CBra 1
11410            a
11411            Ket
11412            Ket
11413            Any
11414            Ket
11415            End
11416    ------------------------------------------------------------------
11417    
11418    /(?=(a))??./BZ
11419    ------------------------------------------------------------------
11420            Bra
11421            Braminzero
11422            Assert
11423            CBra 1
11424            a
11425            Ket
11426            Ket
11427            Any
11428            Ket
11429            End
11430    ------------------------------------------------------------------
11431    
11432    /^(?=(a)){0}b(?1)/BZ
11433    ------------------------------------------------------------------
11434            Bra
11435            ^
11436            Skip zero
11437            Assert
11438            CBra 1
11439            a
11440            Ket
11441            Ket
11442            b
11443            Recurse
11444            Ket
11445            End
11446    ------------------------------------------------------------------
11447    
11448    /(?(DEFINE)(a))?b(?1)/BZ
11449    ------------------------------------------------------------------
11450            Bra
11451            Cond
11452            Cond def
11453            CBra 1
11454            a
11455            Ket
11456            Ket
11457            b
11458            Recurse
11459            Ket
11460            End
11461    ------------------------------------------------------------------
11462    
11463    /^(?=(?1))?[az]([abc])d/BZ
11464    ------------------------------------------------------------------
11465            Bra
11466            ^
11467            Brazero
11468            Assert
11469            Recurse
11470            Ket
11471            [az]
11472            CBra 1
11473            [a-c]
11474            Ket
11475            d
11476            Ket
11477            End
11478    ------------------------------------------------------------------
11479    
11480    /^(?!a){0}\w+/BZ
11481    ------------------------------------------------------------------
11482            Bra
11483            ^
11484            Skip zero
11485            Assert not
11486            a
11487            Ket
11488            \w+
11489            Ket
11490            End
11491    ------------------------------------------------------------------
11492    
11493    /(?<=(abc))?xyz/BZ
11494    ------------------------------------------------------------------
11495            Bra
11496            Brazero
11497            AssertB
11498            Reverse
11499            CBra 1
11500            abc
11501            Ket
11502            Ket
11503            xyz
11504            Ket
11505            End
11506    ------------------------------------------------------------------
11507    
11508    /[:a[:abc]b:]/BZ
11509    ------------------------------------------------------------------
11510            Bra
11511            [:[a-c]
11512            b:]
11513            Ket
11514            End
11515    ------------------------------------------------------------------
11516    
11517    /((?2))((?1))/SS
11518        abc
11519    Error -26 (nested recursion at the same subject position)
11520    
11521    /((?(R2)a+|(?1)b))/SS
11522        aaaabcde
11523    Error -26 (nested recursion at the same subject position)
11524    
11525    /(?(R)a*(?1)|((?R))b)/SS
11526        aaaabcde
11527    Error -26 (nested recursion at the same subject position)
11528    
11529    /(a+|(?R)b)/
11530    Failed: recursive call could loop indefinitely at offset 7
11531    
11532    /^(a(*:A)(d|e(*:B))z|aeq)/C
11533        adz
11534    --->adz
11535     +0 ^       ^
11536     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11537     +2 ^       a
11538     +3 ^^      (*:A)
11539     +8 ^^      (d|e(*:B))
11540    Latest Mark: A
11541     +9 ^^      d
11542    +10 ^ ^     |
11543    +18 ^ ^     z
11544    +19 ^  ^    |
11545    +24 ^  ^
11546     0: adz
11547     1: adz
11548     2: d
11549        aez
11550    --->aez
11551     +0 ^       ^
11552     +1 ^       (a(*:A)(d|e(*:B))z|aeq)
11553     +2 ^       a
11554     +3 ^^      (*:A)
11555     +8 ^^      (d|e(*:B))
11556    Latest Mark: A
11557     +9 ^^      d
11558    +11 ^^      e
11559    +12 ^ ^     (*:B)
11560    +17 ^ ^     )
11561    Latest Mark: B
11562    +18 ^ ^     z
11563    +19 ^  ^    |
11564    +24 ^  ^
11565     0: aez
11566     1: aez
11567     2: e
11568        aeqwerty
11569    --->aeqwerty
11570     +0 ^            ^
11571     +1 ^            (a(*:A)(d|e(*:B))z|aeq)
11572     +2 ^            a
11573     +3 ^^           (*:A)
11574     +8 ^^           (d|e(*:B))
11575    Latest Mark: A
11576     +9 ^^           d
11577    +11 ^^           e
11578    +12 ^ ^          (*:B)
11579    +17 ^ ^          )
11580    Latest Mark: B
11581    +18 ^ ^          z
11582    +20 ^            a
11583    +21 ^^           e
11584    +22 ^ ^          q
11585    +23 ^  ^         )
11586    +24 ^  ^
11587     0: aeq
11588     1: aeq
11589    
11590    /.(*F)/
11591        \P\Pabc
11592    No match
11593    
11594    /\btype\b\W*?\btext\b\W*?\bjavascript\b/IS
11595    Capturing subpattern count = 0
11596    No options
11597    First char = 't'
11598    Need char = 't'
11599    Subject length lower bound = 18
11600    No set of starting bytes
11601    
11602    /\btype\b\W*?\btext\b\W*?\bjavascript\b|\burl\b\W*?\bshell:|<input\b.*?\btype\b\W*?\bimage\b|\bonkeyup\b\W*?\=/IS
11603    Capturing subpattern count = 0
11604    No options
11605    No first char
11606    No need char
11607    Subject length lower bound = 8
11608    Starting byte set: < o t u
11609    
11610    /a(*SKIP)c|b(*ACCEPT)|/+SI
11611    Capturing subpattern count = 0
11612    No options
11613    No first char
11614    No need char
11615    Study returned NULL
11616        a
11617     0:
11618     0+
11619    
11620    /a(*SKIP)c|b(*ACCEPT)cd(*ACCEPT)|x/SI
11621    Capturing subpattern count = 0
11622    No options
11623    No first char
11624    No need char
11625    Subject length lower bound = -1
11626    Starting byte set: a b x
11627        ax
11628     0: x
11629    
11630    'a*(*ACCEPT)b'+
11631        \N\N
11632    No match
11633        abc\N\N
11634     0: a
11635     0+ bc
11636        bbb\N\N
11637     0:
11638     0+ bb
11639    
11640    /(*ACCEPT)a/+I
11641    Capturing subpattern count = 0
11642    No options
11643    No first char
11644    No need char
11645        bax
11646     0:
11647     0+ bax
11648    
11649    /z(*ACCEPT)a/+I
11650    Capturing subpattern count = 0
11651    No options
11652    First char = 'z'
11653    No need char
11654        baxzbx
11655     0: z
11656     0+ bx
11657    
11658    /a(?:.)*?a/ims
11659        \Mabbbbbbbbbbbbbbbbbbbbba
11660    Minimum match() limit = 65
11661    Minimum match() recursion limit = 2
11662     0: abbbbbbbbbbbbbbbbbbbbba
11663    
11664    /a(?:.(*THEN))*?a/ims
11665        \Mabbbbbbbbbbbbbbbbbbbbba
11666    Minimum match() limit = 86
11667    Minimum match() recursion limit = 45
11668     0: abbbbbbbbbbbbbbbbbbbbba
11669    
11670    /a(?:.(*THEN:ABC))*?a/ims
11671        \Mabbbbbbbbbbbbbbbbbbbbba
11672    Minimum match() limit = 86
11673    Minimum match() recursion limit = 45
11674     0: abbbbbbbbbbbbbbbbbbbbba
11675    
11676    /-- These tests are in agreement with development Perl 5.015, which has fixed
11677        some things, but they don't all work with 5.012, so they aren't in the
11678        Perl-compatible tests. Those after the first come from Perl's own test
11679        files. --/
11680    
11681    /^((yes|no)(*THEN)(*F))?/
11682      yes
11683    No match
11684    
11685    /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
11686    AbcdCBefgBhiBqz
11687    No match
11688    
11689    /(A (.*)   C? (*THEN)  | A D) z/x
11690    AbcdCBefgBhiBqz
11691    No match
11692    
11693    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
11694    AbcdCBefgBhiBqz
11695    No match
11696    
11697    /(A (.*)   C? (*THEN)  | A D) \s* z/x
11698    AbcdCBefgBhiBqz
11699    No match
11700    
11701    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
11702    AbcdCBefgBhiBqz
11703    No match
11704    
11705    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
11706    AbcdCBefgBhiBqz
11707    No match
11708    
11709    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
11710    AbcdCBefgBhiBqz
11711    No match
11712    
11713    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
11714    AbcdCBefgBhiBqz
11715    No match
11716    
11717    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
11718    AbcdCEBefgBhiBqz
11719    No match
11720    
11721    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
11722    AbcdCEBefgBhiBqz
11723    No match
11724    
11725    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
11726    AbcdCBefgBhiBqz
11727    No match
11728    
11729    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
11730    AbcdCBefgBhiBqz
11731    No match
11732    
11733    /-----------------------------------------------/
11734    
11735    /^(?>a+)(?>(z+))\w/BZ
11736    ------------------------------------------------------------------
11737            Bra
11738            ^
11739            Once_NC
11740            a+
11741            Ket
11742            Once
11743            CBra 1
11744            z+
11745            Ket
11746            Ket
11747            \w
11748            Ket
11749            End
11750    ------------------------------------------------------------------
11751        aaaazzzzb
11752     0: aaaazzzzb
11753     1: zzzz
11754        ** Failers
11755    No match
11756        aazz
11757    No match
11758    
11759    /(.)(\1|a(?2))/
11760        bab
11761     0: bab
11762     1: b
11763     2: ab
11764    
11765    /\1|(.)(?R)\1/
11766        cbbbc
11767     0: cbbbc
11768     1: c
11769    
11770    /(.)((?(1)c|a)|a(?2))/
11771        baa
11772    No match
11773    
11774    /(?P<abn>(?P=abn)xxx)/BZ
11775    ------------------------------------------------------------------
11776            Bra
11777            Once
11778            CBra 1
11779            \1
11780            xxx
11781            Ket
11782            Ket
11783            Ket
11784            End
11785    ------------------------------------------------------------------
11786    
11787    /(a\1z)/BZ
11788    ------------------------------------------------------------------
11789            Bra
11790            Once
11791            CBra 1
11792            a
11793            \1
11794            z
11795            Ket
11796            Ket
11797            Ket
11798            End
11799    ------------------------------------------------------------------
11800    
11801    /^(?>a+)(?>b+)(?>c+)(?>d+)(?>e+)/
11802         \Maabbccddee
11803    Minimum match() limit = 12
11804    Minimum match() recursion limit = 3
11805     0: aabbccddee
11806    
11807    /^(?>(a+))(?>(b+))(?>(c+))(?>(d+))(?>(e+))/
11808         \Maabbccddee
11809    Minimum match() limit = 22
11810    Minimum match() recursion limit = 21
11811     0: aabbccddee
11812     1: aa
11813     2: bb
11814     3: cc
11815     4: dd
11816     5: ee
11817    
11818    /^(?>(a+))(?>b+)(?>(c+))(?>d+)(?>(e+))/
11819         \Maabbccddee
11820    Minimum match() limit = 18
11821    Minimum match() recursion limit = 13
11822     0: aabbccddee
11823     1: aa
11824     2: cc
11825     3: ee
11826    
11827    /^a\x41z/<JS>
11828        aAz
11829     0: aAz
11830        *** Failers
11831    No match
11832        ax41z
11833    No match
11834    
11835    /^a[m\x41]z/<JS>
11836        aAz
11837     0: aAz
11838    
11839    /^a\x1z/<JS>
11840        ax1z
11841     0: ax1z
11842    
11843    /^a\u0041z/<JS>
11844        aAz
11845     0: aAz
11846        *** Failers
11847    No match
11848        au0041z
11849    No match
11850    
11851    /^a[m\u0041]z/<JS>
11852        aAz
11853     0: aAz
11854    
11855    /^a\u041z/<JS>
11856        au041z
11857     0: au041z
11858        *** Failers
11859    No match
11860        aAz
11861    No match
11862    
11863    /^a\U0041z/<JS>
11864        aU0041z
11865     0: aU0041z
11866        *** Failers
11867    No match
11868        aAz
11869    No match
11870    
11871    /(?(?=c)c|d)++Y/BZ
11872    ------------------------------------------------------------------
11873            Bra
11874            BraPos
11875            Cond
11876            Assert
11877            c
11878            Ket
11879            c
11880            Alt
11881            d
11882            Ket
11883            KetRpos
11884            Y
11885            Ket
11886            End
11887    ------------------------------------------------------------------
11888    
11889    /(?(?=c)c|d)*+Y/BZ
11890    ------------------------------------------------------------------
11891            Bra
11892            Braposzero
11893            BraPos
11894            Cond
11895            Assert
11896            c
11897            Ket
11898            c
11899            Alt
11900            d
11901            Ket
11902            KetRpos
11903            Y
11904            Ket
11905            End
11906    ------------------------------------------------------------------
11907    
11908    /a[\NB]c/
11909    Failed: \N is not supported in a class at offset 3
11910    
11911    /a[B-\Nc]/
11912    Failed: \N is not supported in a class at offset 5
11913    
11914    /(a)(?2){0,1999}?(b)/
11915    
11916    /(a)(?(DEFINE)(b))(?2){0,1999}?(?2)/
11917    
11918    /--- This test, with something more complicated than individual letters, causes
11919    different behaviour in Perl. Perhaps it disables some optimization; no tag is
11920    passed back for the failures, whereas in PCRE there is a tag. ---/
11921    
11922    /(A|P)(*:A)(B|P) | (X|P)(X|P)(*:B)(Y|P)/xK
11923        AABC
11924     0: AB
11925     1: A
11926     2: B
11927    MK: A
11928        XXYZ
11929     0: XXY
11930     1: <unset>
11931     2: <unset>
11932     3: X
11933     4: X
11934     5: Y
11935    MK: B
11936        ** Failers
11937    No match
11938        XAQQ
11939    No match, mark = A
11940        XAQQXZZ
11941    No match, mark = A
11942        AXQQQ
11943    No match, mark = A
11944        AXXQQQ
11945    No match, mark = B
11946    
11947    /-- Perl doesn't give marks for these, though it does if the alternatives are
11948    replaced by single letters. --/
11949    
11950    /(b|q)(*:m)f|a(*:n)w/K
11951        aw
11952     0: aw
11953    MK: n
11954        ** Failers
11955    No match, mark = n
11956        abc
11957    No match, mark = m
11958    
11959    /(q|b)(*:m)f|a(*:n)w/K
11960        aw
11961     0: aw
11962    MK: n
11963        ** Failers
11964    No match, mark = n
11965        abc
11966    No match, mark = m
11967    
11968    /-- After a partial match, the behaviour is as for a failure. --/
11969    
11970    /^a(*:X)bcde/K
11971       abc\P
11972    Partial match, mark=X: abc
11973    
11974    /-- These are here because Perl doesn't return a mark, except for the first --/
11975    
11976    /(?=(*:x))(q|)/K+
11977        abc
11978     0:
11979     0+ abc
11980     1:
11981    MK: x
11982    
11983    /(?=(*:x))((*:y)q|)/K+
11984        abc
11985     0:
11986     0+ abc
11987     1:
11988    MK: x
11989    
11990    /(?=(*:x))(?:(*:y)q|)/K+
11991        abc
11992     0:
11993     0+ abc
11994    MK: x
11995    
11996    /(?=(*:x))(?>(*:y)q|)/K+
11997        abc
11998     0:
11999     0+ abc
12000    MK: x
12001    
12002    /(?=a(*:x))(?!a(*:y)c)/K+
12003        ab
12004     0:
12005     0+ ab
12006    MK: x
12007    
12008    /(?=a(*:x))(?=a(*:y)c|)/K+
12009        ab
12010     0:
12011     0+ ab
12012    MK: x
12013    
12014    /(..)\1/
12015        ab\P
12016    Partial match: ab
12017        aba\P
12018    Partial match: aba
12019        abab\P
12020     0: abab
12021     1: ab
12022    
12023    /(..)\1/i
12024        ab\P
12025    Partial match: ab
12026        abA\P
12027    Partial match: abA
12028        aBAb\P
12029     0: aBAb
12030     1: aB
12031    
12032    /(..)\1{2,}/
12033        ab\P
12034    Partial match: ab
12035        aba\P
12036    Partial match: aba
12037        abab\P
12038    Partial match: abab
12039        ababa\P
12040    Partial match: ababa
12041        ababab\P
12042     0: ababab
12043     1: ab
12044        ababab\P\P
12045    Partial match: ababab
12046        abababa\P
12047     0: ababab
12048     1: ab
12049        abababa\P\P
12050    Partial match: abababa
12051    
12052    /(..)\1{2,}/i
12053        ab\P
12054    Partial match: ab
12055        aBa\P
12056    Partial match: aBa
12057        aBAb\P
12058    Partial match: aBAb
12059        AbaBA\P
12060    Partial match: AbaBA
12061        abABAb\P
12062     0: abABAb
12063     1: ab
12064        aBAbaB\P\P
12065    Partial match: aBAbaB
12066        abABabA\P
12067     0: abABab
12068     1: ab
12069        abaBABa\P\P
12070    Partial match: abaBABa
12071    
12072    /(..)\1{2,}?x/i
12073        ab\P
12074    Partial match: ab
12075        abA\P
12076    Partial match: abA
12077        aBAb\P
12078    Partial match: aBAb
12079        abaBA\P
12080    Partial match: abaBA
12081        abAbaB\P
12082    Partial match: abAbaB
12083        abaBabA\P
12084    Partial match: abaBabA
12085        abAbABaBx\P
12086     0: abAbABaBx
12087     1: ab
12088    
12089  /-- End of testinput2 --/  /-- End of testinput2 --/

Legend:
Removed from v.598  
changed lines
  Added in v.915

  ViewVC Help
Powered by ViewVC 1.1.5