/-- This set of tests checks UTF-8 support with the DFA matching functionality
    of pcre_dfa_exec(), excluding Unicode property support. The -dfa flag must
    be used with pcretest when running it. --/
    
< forbid W 
/\x{100}ab/8
  \x{100}ab
  
/a\x{100}*b/8
    ab
    a\x{100}b  
    a\x{100}\x{100}b  
    
/a\x{100}+b/8
    a\x{100}b  
    a\x{100}\x{100}b  
    *** Failers 
    ab
     
/\bX/8
    Xoanon
    +Xoanon
    \x{300}Xoanon 
    *** Failers 
    YXoanon  
    
/\BX/8
    YXoanon
    *** Failers
    Xoanon
    +Xoanon    
    \x{300}Xoanon 
/X\b/8
    X+oanon
    ZX\x{300}oanon 
    FAX 
    *** Failers 
    Xoanon  
    
/X\B/8
    Xoanon  
    *** Failers
    X+oanon
    ZX\x{300}oanon 
    FAX 
    
/[^a]/8
    abcd
    a\x{100}   
/^[abc\x{123}\x{400}-\x{402}]{2,3}\d/8
    ab99
    \x{123}\x{123}45
    \x{400}\x{401}\x{402}6  
    *** Failers
    d99
    \x{123}\x{122}4   
    \x{400}\x{403}6  
    \x{400}\x{401}\x{402}\x{402}6  
/a.b/8
    acb
    a\x7fb
    a\x{100}b 
    *** Failers
    a\nb  
/a(.{3})b/8
    a\x{4000}xyb 
    a\x{4000}\x7fyb 
    a\x{4000}\x{100}yb 
    *** Failers
    a\x{4000}b 
    ac\ncb 
/a(.*?)(.)/
    a\xc0\x88b
/a(.*?)(.)/8
    a\x{100}b
/a(.*)(.)/
    a\xc0\x88b
/a(.*)(.)/8
    a\x{100}b
/a(.)(.)/
    a\xc0\x92bcd
/a(.)(.)/8
    a\x{240}bcd
/a(.?)(.)/
    a\xc0\x92bcd
/a(.?)(.)/8
    a\x{240}bcd
/a(.??)(.)/
    a\xc0\x92bcd
/a(.??)(.)/8
    a\x{240}bcd
/a(.{3})b/8
    a\x{1234}xyb 
    a\x{1234}\x{4321}yb 
    a\x{1234}\x{4321}\x{3412}b 
    *** Failers
    a\x{1234}b 
    ac\ncb 
/a(.{3,})b/8
    a\x{1234}xyb 
    a\x{1234}\x{4321}yb 
    a\x{1234}\x{4321}\x{3412}b 
    axxxxbcdefghijb 
    a\x{1234}\x{4321}\x{3412}\x{3421}b 
    *** Failers
    a\x{1234}b 
/a(.{3,}?)b/8
    a\x{1234}xyb 
    a\x{1234}\x{4321}yb 
    a\x{1234}\x{4321}\x{3412}b 
    axxxxbcdefghijb 
    a\x{1234}\x{4321}\x{3412}\x{3421}b 
    *** Failers
    a\x{1234}b 
/a(.{3,5})b/8
    a\x{1234}xyb 
    a\x{1234}\x{4321}yb 
    a\x{1234}\x{4321}\x{3412}b 
    axxxxbcdefghijb 
    a\x{1234}\x{4321}\x{3412}\x{3421}b 
    axbxxbcdefghijb 
    axxxxxbcdefghijb 
    *** Failers
    a\x{1234}b 
    axxxxxxbcdefghijb 
/a(.{3,5}?)b/8
    a\x{1234}xyb 
    a\x{1234}\x{4321}yb 
    a\x{1234}\x{4321}\x{3412}b 
    axxxxbcdefghijb 
    a\x{1234}\x{4321}\x{3412}\x{3421}b 
    axbxxbcdefghijb 
    axxxxxbcdefghijb 
    *** Failers
    a\x{1234}b 
    axxxxxxbcdefghijb 
/^[a\x{c0}]/8
    *** Failers
    \x{100}
/(?<=aXb)cd/8
    aXbcd
/(?<=a\x{100}b)cd/8
    a\x{100}bcd
/(?<=a\x{100000}b)cd/8
    a\x{100000}bcd
    
/(?:\x{100}){3}b/8
    \x{100}\x{100}\x{100}b
    *** Failers 
    \x{100}\x{100}b
/\x{ab}/8
    \x{ab} 
    \xc2\xab
    *** Failers 
    \x00{ab}
/(?<=(.))X/8
    WXYZ
    \x{256}XYZ 
    *** Failers
    XYZ 
/[^a]+/8g
    bcd
    \x{100}aY\x{256}Z 
    
/^[^a]{2}/8
    \x{100}bc
 
/^[^a]{2,}/8
    \x{100}bcAa
/^[^a]{2,}?/8
    \x{100}bca
/[^a]+/8ig
    bcd
    \x{100}aY\x{256}Z 
    
/^[^a]{2}/8i
    \x{100}bc
 
/^[^a]{2,}/8i
    \x{100}bcAa
/^[^a]{2,}?/8i
    \x{100}bca
/\x{100}{0,0}/8
    abcd
 
/\x{100}?/8
    abcd
    \x{100}\x{100} 
/\x{100}{0,3}/8 
    \x{100}\x{100} 
    \x{100}\x{100}\x{100}\x{100} 
    
/\x{100}*/8
    abce
    \x{100}\x{100}\x{100}\x{100} 
/\x{100}{1,1}/8
    abcd\x{100}\x{100}\x{100}\x{100} 
/\x{100}{1,3}/8
    abcd\x{100}\x{100}\x{100}\x{100} 
/\x{100}+/8
    abcd\x{100}\x{100}\x{100}\x{100} 
/\x{100}{3}/8
    abcd\x{100}\x{100}\x{100}XX
/\x{100}{3,5}/8
    abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
/\x{100}{3,}/8O
    abcd\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}XX
/(?<=a\x{100}{2}b)X/8
    Xyyya\x{100}\x{100}bXzzz
/\D*/8O
  aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa
/\D*/8O
  \x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}\x{100}
/\D/8
    1X2
    1\x{100}2 
  
/>\S/8
    > >X Y
    > >\x{100} Y
  
/\d/8
    \x{100}3
    
/\s/8
    \x{100} X
    
/\D+/8
    12abcd34
    *** Failers
    1234  
/\D{2,3}/8
    12abcd34
    12ab34
    *** Failers  
    1234
    12a34  
/\D{2,3}?/8
    12abcd34
    12ab34
    *** Failers  
    1234
    12a34  
/\d+/8
    12abcd34
    *** Failers
/\d{2,3}/8
    12abcd34
    1234abcd
    *** Failers  
    1.4 
/\d{2,3}?/8
    12abcd34
    1234abcd
    *** Failers  
    1.4 
/\S+/8
    12abcd34
    *** Failers
    \    \ 
/\S{2,3}/8
    12abcd34
    1234abcd
    *** Failers
    \     \  
/\S{2,3}?/8
    12abcd34
    1234abcd
    *** Failers
    \     \  
/>\s+</8
    12>      <34
    *** Failers
/>\s{2,3}</8
    ab>  <cd
    ab>   <ce
    *** Failers
    ab>    <cd 
/>\s{2,3}?</8
    ab>  <cd
    ab>   <ce
    *** Failers
    ab>    <cd 
/\w+/8
    12      34
    *** Failers
    +++=*! 
/\w{2,3}/8
    ab  cd
    abcd ce
    *** Failers
    a.b.c
/\w{2,3}?/8
    ab  cd
    abcd ce
    *** Failers
    a.b.c
/\W+/8
    12====34
    *** Failers
    abcd 
/\W{2,3}/8
    ab====cd
    ab==cd
    *** Failers
    a.b.c
/\W{2,3}?/8
    ab====cd
    ab==cd
    *** Failers
    a.b.c
/[\x{100}]/8
    \x{100}
    Z\x{100}
    \x{100}Z
    *** Failers 
/[Z\x{100}]/8
    Z\x{100}
    \x{100}
    \x{100}Z
    *** Failers 
/[\x{100}\x{200}]/8
   ab\x{100}cd
   ab\x{200}cd
   *** Failers  
/[\x{100}-\x{200}]/8
   ab\x{100}cd
   ab\x{200}cd
   ab\x{111}cd 
   *** Failers  
/[z-\x{200}]/8
   ab\x{100}cd
   ab\x{200}cd
   ab\x{111}cd 
   abzcd
   ab|cd  
   *** Failers  
/[Q\x{100}\x{200}]/8
   ab\x{100}cd
   ab\x{200}cd
   Q? 
   *** Failers  
/[Q\x{100}-\x{200}]/8
   ab\x{100}cd
   ab\x{200}cd
   ab\x{111}cd 
   Q? 
   *** Failers  
/[Qz-\x{200}]/8
   ab\x{100}cd
   ab\x{200}cd
   ab\x{111}cd 
   abzcd
   ab|cd  
   Q? 
   *** Failers  
/[\x{100}\x{200}]{1,3}/8
   ab\x{100}cd
   ab\x{200}cd
   ab\x{200}\x{100}\x{200}\x{100}cd
   *** Failers  
/[\x{100}\x{200}]{1,3}?/8
   ab\x{100}cd
   ab\x{200}cd
   ab\x{200}\x{100}\x{200}\x{100}cd
   *** Failers  
/[Q\x{100}\x{200}]{1,3}/8
   ab\x{100}cd
   ab\x{200}cd
   ab\x{200}\x{100}\x{200}\x{100}cd
   *** Failers  
/[Q\x{100}\x{200}]{1,3}?/8
   ab\x{100}cd
   ab\x{200}cd
   ab\x{200}\x{100}\x{200}\x{100}cd
   *** Failers  
/(?<=[\x{100}\x{200}])X/8
    abc\x{200}X
    abc\x{100}X 
    *** Failers
    X  
/(?<=[Q\x{100}\x{200}])X/8
    abc\x{200}X
    abc\x{100}X 
    abQX 
    *** Failers
    X  
/(?<=[\x{100}\x{200}]{3})X/8
    abc\x{100}\x{200}\x{100}X
    *** Failers
    abc\x{200}X
    X  
/[^\x{100}\x{200}]X/8
    AX
    \x{150}X
    \x{500}X 
    *** Failers
    \x{100}X
    \x{200}X   
/[^Q\x{100}\x{200}]X/8
    AX
    \x{150}X
    \x{500}X 
    *** Failers
    \x{100}X
    \x{200}X   
    QX 
/[^\x{100}-\x{200}]X/8
    AX
    \x{500}X 
    *** Failers
    \x{100}X
    \x{150}X
    \x{200}X   
/[z-\x{100}]/8i
    z
    Z 
    \x{100}
    *** Failers
    \x{102}
    y    
/[\xFF]/
    >\xff<
/[\xff]/8
    >\x{ff}<
/[^\xFF]/
    XYZ
/[^\xff]/8
    XYZ
    \x{123} 
/^[ac]*b/8
  xb
/^[ac\x{100}]*b/8
  xb
/^[^x]*b/8i
  xb
/^[^x]*b/8
  xb
  
/^\d*b/8
  xb 
/(|a)/g8
    catac
    a\x{256}a 
/^\x{85}$/8i
    \x{85}
/^abc./mgx8<any>
    abc1 \x0aabc2 \x0babc3xx \x0cabc4 \x0dabc5xx \x0d\x0aabc6 \x{0085}abc7 \x{2028}abc8 \x{2029}abc9 JUNK
/abc.$/mgx8<any>
    abc1\x0a abc2\x0b abc3\x0c abc4\x0d abc5\x0d\x0a abc6\x{0085} abc7\x{2028} abc8\x{2029} abc9
/^a\Rb/8<bsr_unicode>
    a\nb
    a\rb
    a\r\nb
    a\x0bb
    a\x0cb
    a\x{85}b   
    a\x{2028}b 
    a\x{2029}b 
    ** Failers
    a\n\rb    
/^a\R*b/8<bsr_unicode>
    ab
    a\nb
    a\rb
    a\r\nb
    a\x0bb
    a\x0c\x{2028}\x{2029}b
    a\x{85}b   
    a\n\rb    
    a\n\r\x{85}\x0cb 
/^a\R+b/8<bsr_unicode>
    a\nb
    a\rb
    a\r\nb
    a\x0bb
    a\x0c\x{2028}\x{2029}b
    a\x{85}b   
    a\n\rb    
    a\n\r\x{85}\x0cb 
    ** Failers
    ab  
/^a\R{1,3}b/8<bsr_unicode>
    a\nb
    a\n\rb
    a\n\r\x{85}b
    a\r\n\r\nb 
    a\r\n\r\n\r\nb 
    a\n\r\n\rb
    a\n\n\r\nb 
    ** Failers
    a\n\n\n\rb
    a\r
/\h+\V?\v{3,4}/8O
    \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
/\V?\v{3,4}/8O 
    \x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
/\h+\V?\v{3,4}/8O
    >\x09\x20\x{a0}X\x0a\x0a\x0a<
/\V?\v{3,4}/8O
    >\x09\x20\x{a0}X\x0a\x0a\x0a<
/\H\h\V\v/8
    X X\x0a
    X\x09X\x0b
    ** Failers
    \x{a0} X\x0a   
    
/\H*\h+\V?\v{3,4}/8O 
    \x09\x20\x{a0}X\x0a\x0b\x0c\x0d\x0a
    \x09\x20\x{a0}\x0a\x0b\x0c\x0d\x0a
    \x09\x20\x{a0}\x0a\x0b\x0c
    ** Failers 
    \x09\x20\x{a0}\x0a\x0b
     
/\H\h\V\v/8
    \x{3001}\x{3000}\x{2030}\x{2028}
    X\x{180e}X\x{85}
    ** Failers
    \x{2009} X\x0a   
    
/\H*\h+\V?\v{3,4}/8O 
    \x{1680}\x{180e}\x{2007}X\x{2028}\x{2029}\x0c\x0d\x0a
    \x09\x{205f}\x{a0}\x0a\x{2029}\x0c\x{2028}\x0a
    \x09\x20\x{202f}\x0a\x0b\x0c
    ** Failers 
    \x09\x{200a}\x{a0}\x{2028}\x0b
     
/a\Rb/I8<bsr_anycrlf>
    a\rb
    a\nb
    a\r\nb
    ** Failers
    a\x{85}b
    a\x0bb     
/a\Rb/I8<bsr_unicode>
    a\rb
    a\nb
    a\r\nb
    a\x{85}b
    a\x0bb     
    ** Failers 
    a\x{85}b\<bsr_anycrlf>
    a\x0bb\<bsr_anycrlf>
    
/a\R?b/I8<bsr_anycrlf>
    a\rb
    a\nb
    a\r\nb
    ** Failers
    a\x{85}b
    a\x0bb     
/a\R?b/I8<bsr_unicode>
    a\rb
    a\nb
    a\r\nb
    a\x{85}b
    a\x0bb     
    ** Failers 
    a\x{85}b\<bsr_anycrlf>
    a\x0bb\<bsr_anycrlf>
 
/X/8f<any> 
    A\x{1ec5}ABCXYZ
/abcd*/8
    xxxxabcd\P
    xxxxabcd\P\P
/abcd*/i8
    xxxxabcd\P
    xxxxabcd\P\P
    XXXXABCD\P
    XXXXABCD\P\P
/abc\d*/8
    xxxxabc1\P
    xxxxabc1\P\P
/abc[de]*/8
    xxxxabcde\P
    xxxxabcde\P\P
/\bthe cat\b/8
    the cat\P
    the cat\P\P
/ab\Cde/8
    abXde
/(?<=ab\Cde)X/8
/./8<CRLF>
    \r\P
    \r\P\P 
  
/.{2,3}/8<CRLF>
    \r\P 
    \r\P\P
    \r\r\P
    \r\r\P\P
    \r\r\r\P
    \r\r\r\P\P     
/.{2,3}?/8<CRLF>
    \r\P 
    \r\P\P
    \r\r\P
    \r\r\P\P
    \r\r\r\P
    \r\r\r\P\P     
/[^\x{100}]/8
    \x{100}\x{101}X
/[^\x{100}]+/8
    \x{100}\x{101}X
/-- End of testinput9 --/ 
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>