# This tests the EBCDIC support in PCRE2. It catches cases where explicit values # such as 0x0a have been used instead of names like CHAR_LF. # # This test file however is checked in to the repository encoded as ISO-8859-1, # using a reversible mapping from EBCDIC. This lets us easily author test cases. # However, they will only be run against a genuine EBCDIC when the input and # output files are converted to EBCDIC. # # There is also a special mode, on ASCII systems, where pcre2test takes ASCII # input (actually, ISO-8859-1), and then does the transcoding internally before # calling the genuinely-EBCDIC version of PCRE2. # Test default newline and variations /^A/m ABC 12\nABC /^A/m,newline=any 12\nABC 12\rABC 12\r\nABC 12\x85ABC /^A/m,newline=anycrlf 12\nABC 12\rABC 12\r\nABC \= Expect no match 12\x85ABC # Test \h /^A\h/ A B A\tB A\xA0B # Test \H /^A\H/ AB A\x42B \= Expect no match A B # Test \R /^A\R/ A\nB A\rB A\x85B A\x0bB A\x0cB \= Expect no match A B # Test \v /^A\v/ A\nB A\rB A\x85B A\x0bB A\x0cB \= Expect no match A B # Test \V /^A\V/ A B \= Expect no match A\nB A\rB A\x85B A\x0bB A\x0cB # For repeated items, use an atomic group so that the output is the same # for DFA matching (otherwise it may show multiple matches). # Test \h+ /^A(?>\h+)/ A B # Test \H+ /^A(?>\H+)/ AB \= Expect no match A B # Test \R+ /^A(?>\R+)/ A\nB A\rB A\x85B A\x0bB A\x0cB \= Expect no match A B # Test \v+ /^A(?>\v+)/ A\nB A\rB A\x85B A\x0bB A\x0cB \= Expect no match A B # Test \V+ /^A(?>\V+)/ A B \= Expect no match A\nB A\rB A\x85B A\x0bB A\x0cB # Test \c functionality /\c@\cA\cb\cC\cd\cE\cf\cG\ch\cI\cJ\cK\cl\cm\cN\cO\cp\cq\cr\cS\cT\cV\cW\cX\cy\cZ/ \x00\x01\x02\x03\x9c\x09\x86\x7f\x97\x8d\x8e\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x9d\x08\x87\x18\x19\x92 \x00\x01\x02\x03\x9c\x09\x86\x7f\x97\x8d\x8e\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x9d\x08\x87\x18\x19\x92 #if !ebcdic-nl25 /^\x15$/ \n /\cU/ \x0a \x85 #endif /\c[\c\\c]\c^\c_/ \x8f\x1c\x1d\x1e\x1f /\c?/ A\x9fB /\c&/ # End