--- embedaddon/pcre/testdata/testinput10 2012/02/21 23:05:52 1.1.1.1 +++ embedaddon/pcre/testdata/testinput10 2012/02/21 23:50:25 1.1.1.2 @@ -1,137 +1,989 @@ -/-- These are a few representative patterns whose lengths and offsets are to be -shown when the link size is 2. This is just a doublecheck test to ensure the -sizes don't go horribly wrong when something is changed. The pattern contents -are all themselves checked in other tests. Unicode, including property support, -is required for these tests. --/ +/-- This set of tests check Unicode property support with the DFA matching + functionality of pcre_dfa_exec(). The -dfa flag must be used with pcretest + when running it. --/ -/((?i)b)/BM +/\pL\P{Nd}/8 + AB + *** Failers + A0 + 00 -/(?s)(.*X|^B)/BM +/\X./8 + AB + A\x{300}BC + A\x{300}\x{301}\x{302}BC + *** Failers + \x{300} -/(?s:.*X|^B)/BM +/\X\X/8 + ABC + A\x{300}B\x{300}\x{301}C + A\x{300}\x{301}\x{302}BC + *** Failers + \x{300} -/^[[:alnum:]]/BM +/^\pL+/8 + abcd + a + *** Failers -/#/IxMD +/^\PL+/8 + 1234 + = + *** Failers + abcd -/a#/IxMD +/^\X+/8 + abcdA\x{300}\x{301}\x{302} + A\x{300}\x{301}\x{302} + A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302} + a + *** Failers + \x{300}\x{301}\x{302} -/x?+/BM +/\X?abc/8 + abc + A\x{300}abc + A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz + \x{300}abc + *** Failers -/x++/BM +/^\X?abc/8 + abc + A\x{300}abc + *** Failers + A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz + \x{300}abc -/x{1,3}+/BM +/\X*abc/8 + abc + A\x{300}abc + A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz + \x{300}abc + *** Failers -/(x)*+/BM +/^\X*abc/8 + abc + A\x{300}abc + A\x{300}\x{301}\x{302}A\x{300}A\x{300}A\x{300}abcxyz + *** Failers + \x{300}abc -/^((a+)(?U)([ab]+)(?-U)([bc]+)(\w*))/BM +/^\pL?=./8 + A=b + =c + *** Failers + 1=2 + AAAA=b -|8J\$WE\<\.rX\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|BM +/^\pL*=./8 + AAAA=b + =c + *** Failers + 1=2 -|\$\<\.X\+ix\[d1b\!H\#\?vV0vrK\:ZH1\=2M\>iV\;\?aPhFB\<\*vW\@QW\@sO9\}cfZA\-i\'w\%hKd6gt1UJP\,15_\#QY\$M\^Mss_U\/\]\&LK9\[5vQub\^w\[KDD\qmj\;2\}YWFdYx\.Ap\]hjCPTP\(n28k\+3\;o\&WXqs\/gOXdr\$\:r\'do0\;b4c\(f_Gr\=\"\\4\)\[01T7ajQJvL\$W\~mL_sS\/4h\:x\*\[ZN\=KLs\&L5zX\/\/\>it\,o\:aU\(\;Z\>pW\&T7oP\'2K\^E\:x9\'c\[\%z\-\,64JQ5AeH_G\#KijUKghQw\^\\vea3a\?kka_G\$8\#\`\*kynsxzBLru\'\]k_\[7FrVx\}\^\=\$blx\>s\-N\%j\;D\*aZDnsw\:YKZ\%Q\.Kne9\#hP\?\+b3\(SOvL\,\^\;\&u5\@\?5C5Bhb\=m\-vEh_L15Jl\]U\)0RP6\{q\%L\^_z5E\'Dw6X\b|BM +/^\X{2,3}X/8 + A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X + A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X + *** Failers + X + A\x{300}\x{301}\x{302}X + A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}A\x{300}\x{301}\x{302}X -/(a(?1)b)/BM +/^\pC\pL\pM\pN\pP\pS\pZb|c)d(?Pe)/BM +/\P{Lu}/8i + 1234 + ** Failers + ABC -/(?:a(?Pc(?Pd)))(?Pa)/BM +/(?<=A\p{Nd})XYZ/8 + A2XYZ + 123A5XYZPQR + ABA\x{660}XYZpqr + ** Failers + AXYZ + XYZ + +/(?a)...(?P=a)bbb(?P>a)d/BM +/[\p{Nd}]/8 + 1234 -/abc(?C255)de(?C)f/BM +/[\p{Nd}+-]+/8 + 1234 + 12-34 + 12+\x{661}-34 + ** Failers + abcd -/abcde/CBM +/[\P{Nd}]+/8 + abcd + ** Failers + 1234 -/\x{100}/8BM +/\D+/8 + 11111111111111111111111111111111111111111111111111111111111111111111111 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa + +/\P{Nd}+/8 + 11111111111111111111111111111111111111111111111111111111111111111111111 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -/\x{1000}/8BM +/[\D]+/8 + 11111111111111111111111111111111111111111111111111111111111111111111111 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -/\x{10000}/8BM +/[\P{Nd}]+/8 + 11111111111111111111111111111111111111111111111111111111111111111111111 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -/\x{100000}/8BM +/[\D\P{Nd}]+/8 + 11111111111111111111111111111111111111111111111111111111111111111111111 + aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa -/\x{1000000}/8BM +/\pL/8 + a + A -/\x{4000000}/8BM +/\pL/8i + a + A + +/\p{Lu}/8 + A + aZ + ** Failers + abc -/\x{7fffFFFF}/8BM +/\p{Lu}/8i + A + aZ + ** Failers + abc -/[\x{ff}]/8BM +/\p{Ll}/8 + a + Az + ** Failers + ABC -/[\x{100}]/8BM +/\p{Ll}/8i + a + Az + ** Failers + ABC -/\x80/8BM +/^\x{c0}$/8i + \x{c0} + \x{e0} -/\xff/8BM +/^\x{e0}$/8i + \x{c0} + \x{e0} -/\x{0041}\x{2262}\x{0391}\x{002e}/D8M +/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8 + A\x{391}\x{10427}\x{ff3a}\x{1fb0} + ** Failers + a\x{391}\x{10427}\x{ff3a}\x{1fb0} + A\x{3b1}\x{10427}\x{ff3a}\x{1fb0} + A\x{391}\x{1044F}\x{ff3a}\x{1fb0} + A\x{391}\x{10427}\x{ff5a}\x{1fb0} + A\x{391}\x{10427}\x{ff3a}\x{1fb8} + +/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8i + A\x{391}\x{10427}\x{ff3a}\x{1fb0} + a\x{391}\x{10427}\x{ff3a}\x{1fb0} + A\x{3b1}\x{10427}\x{ff3a}\x{1fb0} + A\x{391}\x{1044F}\x{ff3a}\x{1fb0} + A\x{391}\x{10427}\x{ff5a}\x{1fb0} + A\x{391}\x{10427}\x{ff3a}\x{1fb8} + +/\x{391}+/8i + \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391} + +/\x{391}{3,5}(.)/8i + \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X + +/\x{391}{3,5}?(.)/8i + \x{391}\x{3b1}\x{3b1}\x{3b1}\x{391}X + +/[\x{391}\x{ff3a}]/8i + \x{391} + \x{ff3a} + \x{3b1} + \x{ff5a} -/\x{D55c}\x{ad6d}\x{C5B4}/D8M +/[\x{c0}\x{391}]/8i + \x{c0} + \x{e0} -/\x{65e5}\x{672c}\x{8a9e}/D8M +/[\x{105}-\x{109}]/8i + \x{104} + \x{105} + \x{109} + ** Failers + \x{100} + \x{10a} + +/[z-\x{100}]/8i + Z + z + \x{39c} + \x{178} + | + \x{80} + \x{ff} + \x{100} + \x{101} + ** Failers + \x{102} + Y + y -/[\x{100}]/8BM +/[z-\x{100}]/8i -/[Z\x{100}]/8BM +/^\X/8 + A + A\x{300}BC + A\x{300}\x{301}\x{302}BC + *** Failers + \x{300} -/^[\x{100}\E-\Q\E\x{150}]/B8M +/^[\X]/8 + X123 + *** Failers + AXYZ -/^[\QĀ\E-\QŐ\E]/B8M +/^(\X*)C/8 + A\x{300}\x{301}\x{302}BCA\x{300}\x{301} + A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C -/^[\QĀ\E-\QŐ\E/B8M +/^(\X*?)C/8 + A\x{300}\x{301}\x{302}BCA\x{300}\x{301} + A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C -/[\p{L}]/BM +/^(\X*)(.)/8 + A\x{300}\x{301}\x{302}BCA\x{300}\x{301} + A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C -/[\p{^L}]/BM +/^(\X*?)(.)/8 + A\x{300}\x{301}\x{302}BCA\x{300}\x{301} + A\x{300}\x{301}\x{302}BCA\x{300}\x{301}C -/[\P{L}]/BM +/^\X(.)/8 + *** Failers + A\x{300}\x{301}\x{302} -/[\P{^L}]/BM +/^\X{2,3}(.)/8 + A\x{300}\x{301}B\x{300}X + A\x{300}\x{301}B\x{300}C\x{300}\x{301} + A\x{300}\x{301}B\x{300}C\x{300}\x{301}X + A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X + +/^\X{2,3}?(.)/8 + A\x{300}\x{301}B\x{300}X + A\x{300}\x{301}B\x{300}C\x{300}\x{301} + A\x{300}\x{301}B\x{300}C\x{300}\x{301}X + A\x{300}\x{301}B\x{300}C\x{300}\x{301}DA\x{300}X -/[abc\p{L}\x{0660}]/8BM +/^\pN{2,3}X/ + 12X + 123X + *** Failers + X + 1X + 1234X -/[\p{Nd}]/8BM +/\x{100}/i8 + \x{100} + \x{101} + +/^\p{Han}+/8 + \x{2e81}\x{3007}\x{2f804}\x{31a0} + ** Failers + \x{2e7f} -/[\p{Nd}+-]+/8BM +/^\P{Katakana}+/8 + \x{3105} + ** Failers + \x{30ff} -/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8iBM +/^[\p{Arabic}]/8 + \x{06e9} + \x{060b} + ** Failers + X\x{06e9} -/A\x{391}\x{10427}\x{ff3a}\x{1fb0}/8BM +/^[\P{Yi}]/8 + \x{2f800} + ** Failers + \x{a014} + \x{a4c6} -/[\x{105}-\x{109}]/8iBM +/^\p{Any}X/8 + AXYZ + \x{1234}XYZ + ** Failers + X + +/^\P{Any}X/8 + ** Failers + AX + +/^\p{Any}?X/8 + XYZ + AXYZ + \x{1234}XYZ + ** Failers + ABXYZ -/( ( (?(1)0|) )* )/xBM +/^\P{Any}?X/8 + XYZ + ** Failers + AXYZ + \x{1234}XYZ + ABXYZ -/( (?(1)0|)* )/xBM +/^\p{Any}+X/8 + AXYZ + \x{1234}XYZ + A\x{1234}XYZ + ** Failers + XYZ -/[a]/BM +/^\P{Any}+X/8 + ** Failers + AXYZ + \x{1234}XYZ + A\x{1234}XYZ + XYZ -/[a]/8BM +/^\p{Any}*X/8 + XYZ + AXYZ + \x{1234}XYZ + A\x{1234}XYZ + ** Failers -/[\xaa]/BM +/^\P{Any}*X/8 + XYZ + ** Failers + AXYZ + \x{1234}XYZ + A\x{1234}XYZ -/[\xaa]/8BM +/^[\p{Any}]X/8 + AXYZ + \x{1234}XYZ + ** Failers + X + +/^[\P{Any}]X/8 + ** Failers + AX + +/^[\p{Any}]?X/8 + XYZ + AXYZ + \x{1234}XYZ + ** Failers + ABXYZ -/[^a]/BM +/^[\P{Any}]?X/8 + XYZ + ** Failers + AXYZ + \x{1234}XYZ + ABXYZ -/[^a]/8BM +/^[\p{Any}]+X/8 + AXYZ + \x{1234}XYZ + A\x{1234}XYZ + ** Failers + XYZ -/[^\xaa]/BM +/^[\P{Any}]+X/8 + ** Failers + AXYZ + \x{1234}XYZ + A\x{1234}XYZ + XYZ -/[^\xaa]/8BM +/^[\p{Any}]*X/8 + XYZ + AXYZ + \x{1234}XYZ + A\x{1234}XYZ + ** Failers -/[^\d]/8WB +/^[\P{Any}]*X/8 + XYZ + ** Failers + AXYZ + \x{1234}XYZ + A\x{1234}XYZ -/[[:^alpha:][:^cntrl:]]+/8WB +/^\p{Any}{3,5}?/8 + abcdefgh + \x{1234}\n\r\x{3456}xyz -/[[:^cntrl:][:^alpha:]]+/8WB +/^\p{Any}{3,5}/8 + abcdefgh + \x{1234}\n\r\x{3456}xyz -/[[:alpha:]]+/8WB +/^\P{Any}{3,5}?/8 + ** Failers + abcdefgh + \x{1234}\n\r\x{3456}xyz -/[[:^alpha:]\S]+/8WB +/^\p{L&}X/8 + AXY + aXY + \x{1c5}XY + ** Failers + \x{1bb}XY + \x{2b0}XY + !XY -/abc(d|e)(*THEN)x(123(*THEN)4|567(b|q)(*THEN)xx)/B +/^[\p{L&}]X/8 + AXY + aXY + \x{1c5}XY + ** Failers + \x{1bb}XY + \x{2b0}XY + !XY -/-- End of testinput10 --/ +/^\p{L&}+X/8 + AXY + aXY + AbcdeXyz + \x{1c5}AbXY + abcDEXypqreXlmn + ** Failers + \x{1bb}XY + \x{2b0}XY + !XY + +/^[\p{L&}]+X/8 + AXY + aXY + AbcdeXyz + \x{1c5}AbXY + abcDEXypqreXlmn + ** Failers + \x{1bb}XY + \x{2b0}XY + !XY + +/^\p{L&}+?X/8 + AXY + aXY + AbcdeXyz + \x{1c5}AbXY + abcDEXypqreXlmn + ** Failers + \x{1bb}XY + \x{2b0}XY + !XY + +/^[\p{L&}]+?X/8 + AXY + aXY + AbcdeXyz + \x{1c5}AbXY + abcDEXypqreXlmn + ** Failers + \x{1bb}XY + \x{2b0}XY + !XY + +/^\P{L&}X/8 + !XY + \x{1bb}XY + \x{2b0}XY + ** Failers + \x{1c5}XY + AXY + +/^[\P{L&}]X/8 + !XY + \x{1bb}XY + \x{2b0}XY + ** Failers + \x{1c5}XY + AXY + +/^\x{023a}+?(\x{0130}+)/8i + \x{023a}\x{2c65}\x{0130} + +/^\x{023a}+([^X])/8i + \x{023a}\x{2c65}X + +/\x{c0}+\x{116}+/8i + \x{c0}\x{e0}\x{116}\x{117} + +/[\x{c0}\x{116}]+/8i + \x{c0}\x{e0}\x{116}\x{117} + +/Check property support in non-UTF-8 mode/ + +/\p{L}{4}/ + 123abcdefg + 123abc\xc4\xc5zz + +/\p{Carian}\p{Cham}\p{Kayah_Li}\p{Lepcha}\p{Lycian}\p{Lydian}\p{Ol_Chiki}\p{Rejang}\p{Saurashtra}\p{Sundanese}\p{Vai}/8 + \x{102A4}\x{AA52}\x{A91D}\x{1C46}\x{10283}\x{1092E}\x{1C6B}\x{A93B}\x{A8BF}\x{1BA0}\x{A50A}==== + +/\x{a77d}\x{1d79}/8i + \x{a77d}\x{1d79} + \x{1d79}\x{a77d} + +/\x{a77d}\x{1d79}/8 + \x{a77d}\x{1d79} + ** Failers + \x{1d79}\x{a77d} + +/^\p{Xan}/8 + ABCD + 1234 + \x{6ca} + \x{a6c} + \x{10a7} + ** Failers + _ABC + +/^\p{Xan}+/8 + ABCD1234\x{6ca}\x{a6c}\x{10a7}_ + ** Failers + _ABC + +/^\p{Xan}*/8 + ABCD1234\x{6ca}\x{a6c}\x{10a7}_ + +/^\p{Xan}{2,9}/8 + ABCD1234\x{6ca}\x{a6c}\x{10a7}_ + +/^[\p{Xan}]/8 + ABCD1234_ + 1234abcd_ + \x{6ca} + \x{a6c} + \x{10a7} + ** Failers + _ABC + +/^[\p{Xan}]+/8 + ABCD1234\x{6ca}\x{a6c}\x{10a7}_ + ** Failers + _ABC + +/^>\p{Xsp}/8 + >\x{1680}\x{2028}\x{0b} + ** Failers + \x{0b} + +/^>\p{Xsp}+/8 + > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} + +/^>\p{Xsp}*/8 + > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} + +/^>\p{Xsp}{2,9}/8 + > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} + +/^>[\p{Xsp}]/8 + >\x{2028}\x{0b} + +/^>[\p{Xsp}]+/8 + > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} + +/^>\p{Xps}/8 + >\x{1680}\x{2028}\x{0b} + >\x{a0} + ** Failers + \x{0b} + +/^>\p{Xps}+/8 + > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} + +/^>\p{Xps}+?/8 + >\x{1680}\x{2028}\x{0b} + +/^>\p{Xps}*/8 + > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} + +/^>\p{Xps}{2,9}/8 + > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} + +/^>\p{Xps}{2,9}?/8 + > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} + +/^>[\p{Xps}]/8 + >\x{2028}\x{0b} + +/^>[\p{Xps}]+/8 + > \x{09}\x{0a}\x{0c}\x{0d}\x{a0}\x{1680}\x{2028}\x{0b} + +/^\p{Xwd}/8 + ABCD + 1234 + \x{6ca} + \x{a6c} + \x{10a7} + _ABC + ** Failers + [] + +/^\p{Xwd}+/8 + ABCD1234\x{6ca}\x{a6c}\x{10a7}_ + +/^\p{Xwd}*/8 + ABCD1234\x{6ca}\x{a6c}\x{10a7}_ + +/^\p{Xwd}{2,9}/8 + A_12\x{6ca}\x{a6c}\x{10a7} + +/^[\p{Xwd}]/8 + ABCD1234_ + 1234abcd_ + \x{6ca} + \x{a6c} + \x{10a7} + _ABC + ** Failers + [] + +/^[\p{Xwd}]+/8 + ABCD1234\x{6ca}\x{a6c}\x{10a7}_ + +/-- Unicode properties for \b abd \B --/ + +/\b...\B/8W + abc_ + \x{37e}abc\x{376} + \x{37e}\x{376}\x{371}\x{393}\x{394} + !\x{c0}++\x{c1}\x{c2} + !\x{c0}+++++ + +/-- Without PCRE_UCP, non-ASCII always fail, even if < 256 --/ + +/\b...\B/8 + abc_ + ** Failers + \x{37e}abc\x{376} + \x{37e}\x{376}\x{371}\x{393}\x{394} + !\x{c0}++\x{c1}\x{c2} + !\x{c0}+++++ + +/-- With PCRE_UCP, non-UTF8 chars that are < 256 still check properties --/ + +/\b...\B/W + abc_ + !\x{c0}++\x{c1}\x{c2} + !\x{c0}+++++ + +/-- End of testinput10 --/