/-- 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 --/