1*22dc650dSSadaf Ebrahimi# This is a specialized test for checking, when PCRE2 is compiled with the 2*22dc650dSSadaf Ebrahimi# EBCDIC option but in an ASCII environment, that newline, white space, and \c 3*22dc650dSSadaf Ebrahimi# functionality is working. It catches cases where explicit values such as 0x0a 4*22dc650dSSadaf Ebrahimi# have been used instead of names like CHAR_LF. Needless to say, it is not a 5*22dc650dSSadaf Ebrahimi# genuine EBCDIC test! In patterns, alphabetic characters that follow a 6*22dc650dSSadaf Ebrahimi# backslash must be in EBCDIC code. In data, NL, NEL, LF, ESC, and DEL must be 7*22dc650dSSadaf Ebrahimi# in EBCDIC, but can of course be specified as escapes. 8*22dc650dSSadaf Ebrahimi 9*22dc650dSSadaf Ebrahimi# Test default newline and variations 10*22dc650dSSadaf Ebrahimi 11*22dc650dSSadaf Ebrahimi/^A/m 12*22dc650dSSadaf Ebrahimi ABC 13*22dc650dSSadaf Ebrahimi 12\x15ABC 14*22dc650dSSadaf Ebrahimi 15*22dc650dSSadaf Ebrahimi/^A/m,newline=any 16*22dc650dSSadaf Ebrahimi 12\x15ABC 17*22dc650dSSadaf Ebrahimi 12\x0dABC 18*22dc650dSSadaf Ebrahimi 12\x0d\x15ABC 19*22dc650dSSadaf Ebrahimi 12\x25ABC 20*22dc650dSSadaf Ebrahimi 21*22dc650dSSadaf Ebrahimi/^A/m,newline=anycrlf 22*22dc650dSSadaf Ebrahimi 12\x15ABC 23*22dc650dSSadaf Ebrahimi 12\x0dABC 24*22dc650dSSadaf Ebrahimi 12\x0d\x15ABC 25*22dc650dSSadaf Ebrahimi ** Fail 26*22dc650dSSadaf Ebrahimi 12\x25ABC 27*22dc650dSSadaf Ebrahimi 28*22dc650dSSadaf Ebrahimi# Test \h 29*22dc650dSSadaf Ebrahimi 30*22dc650dSSadaf Ebrahimi/^A\�/ 31*22dc650dSSadaf Ebrahimi A B 32*22dc650dSSadaf Ebrahimi A\x41B 33*22dc650dSSadaf Ebrahimi 34*22dc650dSSadaf Ebrahimi# Test \H 35*22dc650dSSadaf Ebrahimi 36*22dc650dSSadaf Ebrahimi/^A\�/ 37*22dc650dSSadaf Ebrahimi AB 38*22dc650dSSadaf Ebrahimi A\x42B 39*22dc650dSSadaf Ebrahimi ** Fail 40*22dc650dSSadaf Ebrahimi A B 41*22dc650dSSadaf Ebrahimi A\x41B 42*22dc650dSSadaf Ebrahimi 43*22dc650dSSadaf Ebrahimi# Test \R 44*22dc650dSSadaf Ebrahimi 45*22dc650dSSadaf Ebrahimi/^A\�/ 46*22dc650dSSadaf Ebrahimi A\x15B 47*22dc650dSSadaf Ebrahimi A\x0dB 48*22dc650dSSadaf Ebrahimi A\x25B 49*22dc650dSSadaf Ebrahimi A\x0bB 50*22dc650dSSadaf Ebrahimi A\x0cB 51*22dc650dSSadaf Ebrahimi ** Fail 52*22dc650dSSadaf Ebrahimi A B 53*22dc650dSSadaf Ebrahimi 54*22dc650dSSadaf Ebrahimi# Test \v 55*22dc650dSSadaf Ebrahimi 56*22dc650dSSadaf Ebrahimi/^A\�/ 57*22dc650dSSadaf Ebrahimi A\x15B 58*22dc650dSSadaf Ebrahimi A\x0dB 59*22dc650dSSadaf Ebrahimi A\x25B 60*22dc650dSSadaf Ebrahimi A\x0bB 61*22dc650dSSadaf Ebrahimi A\x0cB 62*22dc650dSSadaf Ebrahimi ** Fail 63*22dc650dSSadaf Ebrahimi A B 64*22dc650dSSadaf Ebrahimi 65*22dc650dSSadaf Ebrahimi# Test \V 66*22dc650dSSadaf Ebrahimi 67*22dc650dSSadaf Ebrahimi/^A\�/ 68*22dc650dSSadaf Ebrahimi A B 69*22dc650dSSadaf Ebrahimi ** Fail 70*22dc650dSSadaf Ebrahimi A\x15B 71*22dc650dSSadaf Ebrahimi A\x0dB 72*22dc650dSSadaf Ebrahimi A\x25B 73*22dc650dSSadaf Ebrahimi A\x0bB 74*22dc650dSSadaf Ebrahimi A\x0cB 75*22dc650dSSadaf Ebrahimi 76*22dc650dSSadaf Ebrahimi# For repeated items, use an atomic group so that the output is the same 77*22dc650dSSadaf Ebrahimi# for DFA matching (otherwise it may show multiple matches). 78*22dc650dSSadaf Ebrahimi 79*22dc650dSSadaf Ebrahimi# Test \h+ 80*22dc650dSSadaf Ebrahimi 81*22dc650dSSadaf Ebrahimi/^A(?>\�+)/ 82*22dc650dSSadaf Ebrahimi A B 83*22dc650dSSadaf Ebrahimi 84*22dc650dSSadaf Ebrahimi# Test \H+ 85*22dc650dSSadaf Ebrahimi 86*22dc650dSSadaf Ebrahimi/^A(?>\�+)/ 87*22dc650dSSadaf Ebrahimi AB 88*22dc650dSSadaf Ebrahimi ** Fail 89*22dc650dSSadaf Ebrahimi A B 90*22dc650dSSadaf Ebrahimi 91*22dc650dSSadaf Ebrahimi# Test \R+ 92*22dc650dSSadaf Ebrahimi 93*22dc650dSSadaf Ebrahimi/^A(?>\�+)/ 94*22dc650dSSadaf Ebrahimi A\x15B 95*22dc650dSSadaf Ebrahimi A\x0dB 96*22dc650dSSadaf Ebrahimi A\x25B 97*22dc650dSSadaf Ebrahimi A\x0bB 98*22dc650dSSadaf Ebrahimi A\x0cB 99*22dc650dSSadaf Ebrahimi ** Fail 100*22dc650dSSadaf Ebrahimi A B 101*22dc650dSSadaf Ebrahimi 102*22dc650dSSadaf Ebrahimi# Test \v+ 103*22dc650dSSadaf Ebrahimi 104*22dc650dSSadaf Ebrahimi/^A(?>\�+)/ 105*22dc650dSSadaf Ebrahimi A\x15B 106*22dc650dSSadaf Ebrahimi A\x0dB 107*22dc650dSSadaf Ebrahimi A\x25B 108*22dc650dSSadaf Ebrahimi A\x0bB 109*22dc650dSSadaf Ebrahimi A\x0cB 110*22dc650dSSadaf Ebrahimi ** Fail 111*22dc650dSSadaf Ebrahimi A B 112*22dc650dSSadaf Ebrahimi 113*22dc650dSSadaf Ebrahimi# Test \V+ 114*22dc650dSSadaf Ebrahimi 115*22dc650dSSadaf Ebrahimi/^A(?>\�+)/ 116*22dc650dSSadaf Ebrahimi A B 117*22dc650dSSadaf Ebrahimi ** Fail 118*22dc650dSSadaf Ebrahimi A\x15B 119*22dc650dSSadaf Ebrahimi A\x0dB 120*22dc650dSSadaf Ebrahimi A\x25B 121*22dc650dSSadaf Ebrahimi A\x0bB 122*22dc650dSSadaf Ebrahimi A\x0cB 123*22dc650dSSadaf Ebrahimi 124*22dc650dSSadaf Ebrahimi# Test \c functionality 125*22dc650dSSadaf Ebrahimi 126*22dc650dSSadaf Ebrahimi/\�@\�A\�b\�C\�d\�E\�f\�G\�h\�I\�J\�K\�l\�m\�N\�O\�p\�q\�r\�S\�T\�u\�V\�W\�X\�y\�Z/ 127*22dc650dSSadaf Ebrahimi \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f\x10\x11\x12\x13\x14\x15\x16\x17\x18\x19\x1a\x1b\x1c\x1d\x1e\x1f 128*22dc650dSSadaf Ebrahimi 129*22dc650dSSadaf Ebrahimi/\�[\�\\�]\�^\�_/ 130*22dc650dSSadaf Ebrahimi \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f 131*22dc650dSSadaf Ebrahimi 132*22dc650dSSadaf Ebrahimi/\�?/ 133*22dc650dSSadaf Ebrahimi A\xffB 134*22dc650dSSadaf Ebrahimi 135*22dc650dSSadaf Ebrahimi/\�&/ 136*22dc650dSSadaf Ebrahimi 137*22dc650dSSadaf Ebrahimi# End 138