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