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

Diff of /code/trunk/testdata/testoutput1

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

revision 1271 by ph10, Wed Mar 6 16:50:38 2013 UTC revision 1315 by ph10, Fri Apr 26 11:16:43 2013 UTC
# Line 6160  No match Line 6160  No match
6160   1: bc   1: bc
6161   2: bc   2: bc
6162    
6163  /-- This tests for an IPv6 address in the form where it can have up to --/  /-- This tests for an IPv6 address in the form where it can have up to
6164  /-- eight components, one and only one of which is empty. This must be --/      eight components, one and only one of which is empty. This must be
6165  No match      an internal component. --/
 /-- an internal component. --/  
 No match  
6166    
6167  /^(?!:)                       # colon disallowed at start  /^(?!:)                       # colon disallowed at start
6168    (?:                         # start of item    (?:                         # start of item
# Line 7770  No match Line 7768  No match
7768   1: (ab(cd)ef)   1: (ab(cd)ef)
7769   2: ef   2: ef
7770    
 /^(?!a(*SKIP)b)/  
     ac  
  0:  
   
7771  /^(?=a(*SKIP)b|ac)/  /^(?=a(*SKIP)b|ac)/
7772      ** Failers      ** Failers
7773  No match  No match
7774      ac      ac
7775  No match  No match
7776    
 /^(?=a(*THEN)b|ac)/  
     ac  
  0:  
   
7777  /^(?=a(*PRUNE)b)/  /^(?=a(*PRUNE)b)/
7778      ab      ab
7779   0:   0:
# Line 7796  No match Line 7786  No match
7786      ac      ac
7787   0:   0:
7788    
 /^(?(?!a(*SKIP)b))/  
     ac  
  0:  
   
7789  /(?>a\Kb)/  /(?>a\Kb)/
7790      ab      ab
7791   0: b   0: b
# Line 8169  No match Line 8155  No match
8155   1: AB   1: AB
8156   2: B   2: B
8157    
 /\A.*?(?:a|b(*THEN)c)/  
     ba  
  0: ba  
   
 /\A.*?(?:a|bc)/  
     ba  
  0: ba  
   
 /\A.*?(a|b(*THEN)c)/  
     ba  
  0: ba  
  1: a  
   
8158  /\A.*?(a|bc)/  /\A.*?(a|bc)/
8159      ba      ba
8160   0: ba   0: ba
8161   1: a   1: a
8162    
 /\A.*?(?:a|b(*THEN)c)++/  
     ba  
  0: ba  
   
8163  /\A.*?(?:a|bc)++/  /\A.*?(?:a|bc)++/
8164      ba      ba
8165   0: ba   0: ba
8166    
 /\A.*?(a|b(*THEN)c)++/  
     ba  
  0: ba  
  1: a  
   
8167  /\A.*?(a|bc)++/  /\A.*?(a|bc)++/
8168      ba      ba
8169   0: ba   0: ba
8170   1: a   1: a
8171    
 /\A.*?(?:a|b(*THEN)c|d)/  
     ba  
  0: ba  
   
8172  /\A.*?(?:a|bc|d)/  /\A.*?(?:a|bc|d)/
8173      ba      ba
8174   0: ba   0: ba
# Line 8719  No match Line 8679  No match
8679      aac      aac
8680   0: aac   0: aac
8681    
 /(?!a(*COMMIT)b)ac|cd/  
     ac  
  0: ac  
   
8682  /((?:a?)*)*c/  /((?:a?)*)*c/
8683    aac    aac
8684   0: aac   0: aac
# Line 8803  No match Line 8759  No match
8759      ac      ac
8760   0: ac   0: ac
8761    
8762  /(?:(a(*MARK:X)a+(*SKIP:X)b)){0}(?:(?1)|aac)/  /(?<=(*SKIP)ac)a/
8763      aac      aa
8764    No match
8765    
8766    /A(*MARK:A)A+(*SKIP:B)(B|Z) | AC/xK
8767        AAAC
8768     0: AC
8769    
8770    /a(*SKIP:m)x|ac(*:n)(*SKIP:n)d|ac/K
8771        acacd
8772     0: acd
8773    MK: n
8774    
8775    /A(*SKIP:m)x|A(*SKIP:n)x|AB/K
8776        AB
8777     0: AB
8778    
8779    /((*SKIP:r)d){0}a(*SKIP:m)x|ac(*:n)|ac/K
8780        acacd
8781     0: ac
8782    MK: n
8783    
8784    /-- Tests that try to figure out how Perl works. My hypothesis is that the
8785        first verb that is backtracked onto is the one that acts. This seems to be
8786        the case almost all the time, but there is one exception that is perhaps a
8787        bug. --/
8788    
8789    /-- This matches "aaaac"; each PRUNE advances one character until the subject
8790        no longer starts with 5 'a's. --/
8791    
8792    /aaaaa(*PRUNE)b|a+c/
8793        aaaaaac
8794     0: aaaac
8795    
8796    /-- Putting SKIP in front of PRUNE makes no difference, as it is never
8797    backtracked onto, whether or not it has a label. --/
8798    
8799    /aaaaa(*SKIP)(*PRUNE)b|a+c/
8800        aaaaaac
8801     0: aaaac
8802    
8803    /aaaaa(*SKIP:N)(*PRUNE)b|a+c/
8804        aaaaaac
8805     0: aaaac
8806    
8807    /aaaa(*:N)a(*SKIP:N)(*PRUNE)b|a+c/
8808        aaaaaac
8809     0: aaaac
8810    
8811    /-- Putting THEN in front makes no difference. */
8812    
8813    /aaaaa(*THEN)(*PRUNE)b|a+c/
8814        aaaaaac
8815     0: aaaac
8816    
8817    /-- However, putting COMMIT in front of the prune changes it to "no match". I
8818        think this is inconsistent and possibly a bug. For the moment, running this
8819        test is moved out of the Perl-compatible file. --/
8820    
8821    /aaaaa(*COMMIT)(*PRUNE)b|a+c/
8822    
8823    
8824    /---- OK, lets play the same game again using SKIP instead of PRUNE. ----/
8825    
8826    /-- This matches "ac" because SKIP forces the next match to start on the
8827        sixth "a". --/
8828    
8829    /aaaaa(*SKIP)b|a+c/
8830        aaaaaac
8831     0: ac
8832    
8833    /-- Putting PRUNE in front makes no difference. --/
8834    
8835    /aaaaa(*PRUNE)(*SKIP)b|a+c/
8836        aaaaaac
8837     0: ac
8838    
8839    /-- Putting THEN in front makes no difference. --/
8840    
8841    /aaaaa(*THEN)(*SKIP)b|a+c/
8842        aaaaaac
8843     0: ac
8844    
8845    /-- In this case, neither does COMMIT. This still matches "ac". --/
8846    
8847    /aaaaa(*COMMIT)(*SKIP)b|a+c/
8848        aaaaaac
8849     0: ac
8850    
8851    /-- This gives "no match", as expected. --/
8852    
8853    /aaaaa(*COMMIT)b|a+c/
8854        aaaaaac
8855    No match
8856    
8857    
8858    /------ Tests using THEN ------/
8859    
8860    /-- This matches "aaaaaac", as expected. --/
8861    
8862    /aaaaa(*THEN)b|a+c/
8863        aaaaaac
8864     0: aaaaaac
8865    
8866    /-- Putting SKIP in front makes no difference. --/
8867    
8868    /aaaaa(*SKIP)(*THEN)b|a+c/
8869        aaaaaac
8870     0: aaaaaac
8871    
8872    /-- Putting PRUNE in front makes no difference. --/
8873    
8874    /aaaaa(*PRUNE)(*THEN)b|a+c/
8875        aaaaaac
8876     0: aaaaaac
8877    
8878    /-- Putting COMMIT in front makes no difference. --/
8879    
8880    /aaaaa(*COMMIT)(*THEN)b|a+c/
8881        aaaaaac
8882     0: aaaaaac
8883    
8884    /-- End of "priority" tests --/
8885    
8886    /aaaaa(*:m)(*PRUNE:m)(*SKIP:m)m|a+/
8887        aaaaaa
8888     0: a
8889    
8890    /aaaaa(*:m)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+/
8891        aaaaaa
8892     0: a
8893    
8894    /aaaaa(*:n)(*PRUNE:m)(*SKIP:m)m|a+/
8895        aaaaaa
8896     0: aaaa
8897    
8898    /aaaaa(*:n)(*MARK:m)(*PRUNE)(*SKIP:m)m|a+/
8899        aaaaaa
8900     0: a
8901    
8902    /a(*MARK:A)aa(*PRUNE:A)a(*SKIP:A)b|a+c/
8903        aaaac
8904     0: aac
8905    
8906    /a(*MARK:A)aa(*MARK:A)a(*SKIP:A)b|a+c/
8907        aaaac
8908     0: ac
8909    
8910    /aaa(*PRUNE:A)a(*SKIP:A)b|a+c/
8911        aaaac
8912   0: aac   0: aac
8913    
8914    /aaa(*MARK:A)a(*SKIP:A)b|a+c/
8915        aaaac
8916     0: ac
8917    
8918    /a(*:m)a(*COMMIT)(*SKIP:m)b|a+c/K
8919        aaaaaac
8920     0: ac
8921    
8922    /.?(a|b(*THEN)c)/
8923        ba
8924     0: ba
8925     1: a
8926    
8927    /(a(*COMMIT)b)c|abd/
8928        abc
8929     0: abc
8930     1: ab
8931        abd
8932    No match
8933    
8934    /(?=a(*COMMIT)b)abc|abd/
8935        abc
8936     0: abc
8937        abd
8938     0: abd
8939    
8940    /(?>a(*COMMIT)b)c|abd/
8941        abc
8942     0: abc
8943        abd
8944     0: abd
8945    
8946    /a(?=b(*COMMIT)c)[^d]|abd/
8947        abd
8948    No match
8949        abc
8950     0: ab
8951    
8952    /a(?=bc).|abd/
8953        abd
8954     0: abd
8955        abc
8956     0: ab
8957    
8958    /a(?>b(*COMMIT)c)d|abd/
8959        abceabd
8960    No match
8961    
8962    /a(?>bc)d|abd/
8963        abceabd
8964     0: abd
8965    
8966    /(?>a(*COMMIT)b)c|abd/
8967        abd
8968     0: abd
8969    
8970    /(?>a(*COMMIT)c)d|abd/
8971        abd
8972    No match
8973    
8974    /((?=a(*COMMIT)b)ab|ac){0}(?:(?1)|a(c))/
8975        ac
8976     0: ac
8977     1: <unset>
8978     2: c
8979    
8980    /-- These tests were formerly in test 2, but changes in PCRE and Perl have
8981        made them compatible. --/
8982    
8983    /^(a)?(?(1)a|b)+$/
8984        *** Failers
8985    No match
8986        a
8987    No match
8988    
8989    /(?=a\Kb)ab/
8990        ab
8991     0: b
8992    
8993    /(?!a\Kb)ac/
8994        ac
8995     0: ac
8996    
8997    /^abc(?<=b\Kc)d/
8998        abcd
8999     0: cd
9000    
9001    /^abc(?<!b\Kq)d/
9002        abcd
9003     0: abcd
9004    
9005    
9006    /A(*PRUNE:A)A+(*SKIP:A)(B|Z) | AC/xK
9007        AAAC
9008    No match, mark = A
9009    
9010    /^((abc|abcx)(*THEN)y|abcd)/
9011        abcd
9012     0: abcd
9013     1: abcd
9014        *** Failers
9015    No match
9016        abcxy
9017    No match
9018    
9019    /^((yes|no)(*THEN)(*F))?/
9020      yes
9021    No match
9022    
9023    /(A (.*)   C? (*THEN)  | A D) (*FAIL)/x
9024    AbcdCBefgBhiBqz
9025    No match
9026    
9027    /(A (.*)   C? (*THEN)  | A D) z/x
9028    AbcdCBefgBhiBqz
9029    No match
9030    
9031    /(A (.*)   C? (*THEN)  | A D) \s* (*FAIL)/x
9032    AbcdCBefgBhiBqz
9033    No match
9034    
9035    /(A (.*)   C? (*THEN)  | A D) \s* z/x
9036    AbcdCBefgBhiBqz
9037    No match
9038    
9039    /(A (.*)   (?:C|) (*THEN)  | A D) (*FAIL)/x
9040    AbcdCBefgBhiBqz
9041    No match
9042    
9043    /(A (.*)   (?:C|) (*THEN)  | A D) z/x
9044    AbcdCBefgBhiBqz
9045    No match
9046    
9047    /(A (.*)   C{0,6} (*THEN)  | A D) (*FAIL)/x
9048    AbcdCBefgBhiBqz
9049    No match
9050    
9051    /(A (.*)   C{0,6} (*THEN)  | A D) z/x
9052    AbcdCBefgBhiBqz
9053    No match
9054    
9055    /(A (.*)   (CE){0,6} (*THEN)  | A D) (*FAIL)/x
9056    AbcdCEBefgBhiBqz
9057    No match
9058    
9059    /(A (.*)   (CE){0,6} (*THEN)  | A D) z/x
9060    AbcdCEBefgBhiBqz
9061    No match
9062    
9063    /(A (.*)   (CE*){0,6} (*THEN)  | A D) (*FAIL)/x
9064    AbcdCBefgBhiBqz
9065    No match
9066    
9067    /(A (.*)   (CE*){0,6} (*THEN)  | A D) z/x
9068    AbcdCBefgBhiBqz
9069    No match
9070    
9071    /(?=a(*COMMIT)b|ac)ac|ac/
9072        ac
9073    No match
9074    
9075    /(?=a(*COMMIT)b|(ac)) ac | (a)c/x
9076        ac
9077    No match
9078    
9079    /--------/
9080    
9081    /(?(?!b(*THEN)a)bn|bnn)/
9082       bnn
9083     0: bn
9084    
9085    /(?!b(*SKIP)a)bn|bnn/
9086        bnn
9087     0: bn
9088    
9089    /(?(?!b(*SKIP)a)bn|bnn)/
9090       bnn
9091     0: bn
9092    
9093    /(?!b(*PRUNE)a)bn|bnn/
9094        bnn
9095     0: bn
9096    
9097    /(?(?!b(*PRUNE)a)bn|bnn)/
9098       bnn
9099     0: bn
9100    
9101    /(?!b(*COMMIT)a)bn|bnn/
9102        bnn
9103     0: bn
9104    
9105    /(?(?!b(*COMMIT)a)bn|bnn)/
9106       bnn
9107     0: bn
9108    
9109    /(?=b(*SKIP)a)bn|bnn/
9110        bnn
9111    No match
9112    
9113    /(?=b(*THEN)a)bn|bnn/
9114        bnn
9115     0: bnn
9116    
9117     /^(?!a(*SKIP)b)/
9118         ac
9119     0:
9120    
9121     /^(?!a(*SKIP)b)../
9122         acd
9123     0: ac
9124    
9125    /(?!a(*SKIP)b)../
9126         acd
9127     0: ac
9128    
9129    /^(?(?!a(*SKIP)b))/
9130         ac
9131     0:
9132    
9133    /^(?!a(*PRUNE)b)../
9134         acd
9135     0: ac
9136    
9137    /(?!a(*PRUNE)b)../
9138         acd
9139     0: ac
9140    
9141     /(?!a(*COMMIT)b)ac|cd/
9142         ac
9143     0: ac
9144    
9145    /\A.*?(?:a|bc)/
9146        ba
9147     0: ba
9148    
9149    /^(A(*THEN)B|C(*THEN)D)/
9150        CD
9151     0: CD
9152     1: CD
9153    
9154    /(*:m(m)(?&y)(?(DEFINE)(?<y>b))/K
9155        abc
9156     0: b
9157    MK: m(m
9158    
9159    /(*PRUNE:m(m)(?&y)(?(DEFINE)(?<y>b))/K
9160        abc
9161     0: b
9162    MK: m(m
9163    
9164    /(*SKIP:m(m)(?&y)(?(DEFINE)(?<y>b))/K
9165        abc
9166     0: b
9167    
9168    /(*THEN:m(m)(?&y)(?(DEFINE)(?<y>b))/K
9169        abc
9170     0: b
9171    MK: m(m
9172    
9173    /^\d*\w{4}/
9174        1234
9175     0: 1234
9176        123
9177    No match
9178    
9179    /^[^b]*\w{4}/
9180        aaaa
9181     0: aaaa
9182        aaa
9183    No match
9184    
9185    /^[^b]*\w{4}/i
9186        aaaa
9187     0: aaaa
9188        aaa
9189    No match
9190    
9191    /^a*\w{4}/
9192        aaaa
9193     0: aaaa
9194        aaa
9195    No match
9196    
9197    /^a*\w{4}/i
9198        aaaa
9199     0: aaaa
9200        aaa
9201    No match
9202    
9203  /-- End of testinput1 --/  /-- End of testinput1 --/

Legend:
Removed from v.1271  
changed lines
  Added in v.1315

  ViewVC Help
Powered by ViewVC 1.1.5