1*22dc650dSSadaf EbrahimiPCRE2 version 10.32-RC1 2018-02-19 2*22dc650dSSadaf Ebrahimi# This is a specialized test for checking, when PCRE2 is compiled with the 3*22dc650dSSadaf Ebrahimi# EBCDIC option but in an ASCII environment, that newline, white space, and \c 4*22dc650dSSadaf Ebrahimi# functionality is working. It catches cases where explicit values such as 0x0a 5*22dc650dSSadaf Ebrahimi# have been used instead of names like CHAR_LF. Needless to say, it is not a 6*22dc650dSSadaf Ebrahimi# genuine EBCDIC test! In patterns, alphabetic characters that follow a 7*22dc650dSSadaf Ebrahimi# backslash must be in EBCDIC code. In data, NL, NEL, LF, ESC, and DEL must be 8*22dc650dSSadaf Ebrahimi# in EBCDIC, but can of course be specified as escapes. 9*22dc650dSSadaf Ebrahimi 10*22dc650dSSadaf Ebrahimi# Test default newline and variations 11*22dc650dSSadaf Ebrahimi 12*22dc650dSSadaf Ebrahimi/^A/m 13*22dc650dSSadaf Ebrahimi ABC 14*22dc650dSSadaf Ebrahimi 0: A 15*22dc650dSSadaf Ebrahimi 12\x15ABC 16*22dc650dSSadaf Ebrahimi 0: A 17*22dc650dSSadaf Ebrahimi 18*22dc650dSSadaf Ebrahimi/^A/m,newline=any 19*22dc650dSSadaf Ebrahimi 12\x15ABC 20*22dc650dSSadaf Ebrahimi 0: A 21*22dc650dSSadaf Ebrahimi 12\x0dABC 22*22dc650dSSadaf Ebrahimi 0: A 23*22dc650dSSadaf Ebrahimi 12\x0d\x15ABC 24*22dc650dSSadaf Ebrahimi 0: A 25*22dc650dSSadaf Ebrahimi 12\x25ABC 26*22dc650dSSadaf Ebrahimi 0: A 27*22dc650dSSadaf Ebrahimi 28*22dc650dSSadaf Ebrahimi/^A/m,newline=anycrlf 29*22dc650dSSadaf Ebrahimi 12\x15ABC 30*22dc650dSSadaf Ebrahimi 0: A 31*22dc650dSSadaf Ebrahimi 12\x0dABC 32*22dc650dSSadaf Ebrahimi 0: A 33*22dc650dSSadaf Ebrahimi 12\x0d\x15ABC 34*22dc650dSSadaf Ebrahimi 0: A 35*22dc650dSSadaf Ebrahimi ** Fail 36*22dc650dSSadaf EbrahimiNo match 37*22dc650dSSadaf Ebrahimi 12\x25ABC 38*22dc650dSSadaf EbrahimiNo match 39*22dc650dSSadaf Ebrahimi 40*22dc650dSSadaf Ebrahimi# Test \h 41*22dc650dSSadaf Ebrahimi 42*22dc650dSSadaf Ebrahimi/^A\�/ 43*22dc650dSSadaf Ebrahimi A B 44*22dc650dSSadaf Ebrahimi 0: A\x20 45*22dc650dSSadaf Ebrahimi A\x41B 46*22dc650dSSadaf Ebrahimi 0: AA 47*22dc650dSSadaf Ebrahimi 48*22dc650dSSadaf Ebrahimi# Test \H 49*22dc650dSSadaf Ebrahimi 50*22dc650dSSadaf Ebrahimi/^A\�/ 51*22dc650dSSadaf Ebrahimi AB 52*22dc650dSSadaf Ebrahimi 0: AB 53*22dc650dSSadaf Ebrahimi A\x42B 54*22dc650dSSadaf Ebrahimi 0: AB 55*22dc650dSSadaf Ebrahimi ** Fail 56*22dc650dSSadaf EbrahimiNo match 57*22dc650dSSadaf Ebrahimi A B 58*22dc650dSSadaf EbrahimiNo match 59*22dc650dSSadaf Ebrahimi A\x41B 60*22dc650dSSadaf EbrahimiNo match 61*22dc650dSSadaf Ebrahimi 62*22dc650dSSadaf Ebrahimi# Test \R 63*22dc650dSSadaf Ebrahimi 64*22dc650dSSadaf Ebrahimi/^A\�/ 65*22dc650dSSadaf Ebrahimi A\x15B 66*22dc650dSSadaf Ebrahimi 0: A\x15 67*22dc650dSSadaf Ebrahimi A\x0dB 68*22dc650dSSadaf Ebrahimi 0: A\x0d 69*22dc650dSSadaf Ebrahimi A\x25B 70*22dc650dSSadaf Ebrahimi 0: A\x25 71*22dc650dSSadaf Ebrahimi A\x0bB 72*22dc650dSSadaf Ebrahimi 0: A\x0b 73*22dc650dSSadaf Ebrahimi A\x0cB 74*22dc650dSSadaf Ebrahimi 0: A\x0c 75*22dc650dSSadaf Ebrahimi ** Fail 76*22dc650dSSadaf EbrahimiNo match 77*22dc650dSSadaf Ebrahimi A B 78*22dc650dSSadaf EbrahimiNo match 79*22dc650dSSadaf Ebrahimi 80*22dc650dSSadaf Ebrahimi# Test \v 81*22dc650dSSadaf Ebrahimi 82*22dc650dSSadaf Ebrahimi/^A\�/ 83*22dc650dSSadaf Ebrahimi A\x15B 84*22dc650dSSadaf Ebrahimi 0: A\x15 85*22dc650dSSadaf Ebrahimi A\x0dB 86*22dc650dSSadaf Ebrahimi 0: A\x0d 87*22dc650dSSadaf Ebrahimi A\x25B 88*22dc650dSSadaf Ebrahimi 0: A\x25 89*22dc650dSSadaf Ebrahimi A\x0bB 90*22dc650dSSadaf Ebrahimi 0: A\x0b 91*22dc650dSSadaf Ebrahimi A\x0cB 92*22dc650dSSadaf Ebrahimi 0: A\x0c 93*22dc650dSSadaf Ebrahimi ** Fail 94*22dc650dSSadaf EbrahimiNo match 95*22dc650dSSadaf Ebrahimi A B 96*22dc650dSSadaf EbrahimiNo match 97*22dc650dSSadaf Ebrahimi 98*22dc650dSSadaf Ebrahimi# Test \V 99*22dc650dSSadaf Ebrahimi 100*22dc650dSSadaf Ebrahimi/^A\�/ 101*22dc650dSSadaf Ebrahimi A B 102*22dc650dSSadaf Ebrahimi 0: A\x20 103*22dc650dSSadaf Ebrahimi ** Fail 104*22dc650dSSadaf EbrahimiNo match 105*22dc650dSSadaf Ebrahimi A\x15B 106*22dc650dSSadaf EbrahimiNo match 107*22dc650dSSadaf Ebrahimi A\x0dB 108*22dc650dSSadaf EbrahimiNo match 109*22dc650dSSadaf Ebrahimi A\x25B 110*22dc650dSSadaf EbrahimiNo match 111*22dc650dSSadaf Ebrahimi A\x0bB 112*22dc650dSSadaf EbrahimiNo match 113*22dc650dSSadaf Ebrahimi A\x0cB 114*22dc650dSSadaf EbrahimiNo match 115*22dc650dSSadaf Ebrahimi 116*22dc650dSSadaf Ebrahimi# For repeated items, use an atomic group so that the output is the same 117*22dc650dSSadaf Ebrahimi# for DFA matching (otherwise it may show multiple matches). 118*22dc650dSSadaf Ebrahimi 119*22dc650dSSadaf Ebrahimi# Test \h+ 120*22dc650dSSadaf Ebrahimi 121*22dc650dSSadaf Ebrahimi/^A(?>\�+)/ 122*22dc650dSSadaf Ebrahimi A B 123*22dc650dSSadaf Ebrahimi 0: A\x20 124*22dc650dSSadaf Ebrahimi 125*22dc650dSSadaf Ebrahimi# Test \H+ 126*22dc650dSSadaf Ebrahimi 127*22dc650dSSadaf Ebrahimi/^A(?>\�+)/ 128*22dc650dSSadaf Ebrahimi AB 129*22dc650dSSadaf Ebrahimi 0: AB 130*22dc650dSSadaf Ebrahimi ** Fail 131*22dc650dSSadaf EbrahimiNo match 132*22dc650dSSadaf Ebrahimi A B 133*22dc650dSSadaf EbrahimiNo match 134*22dc650dSSadaf Ebrahimi 135*22dc650dSSadaf Ebrahimi# Test \R+ 136*22dc650dSSadaf Ebrahimi 137*22dc650dSSadaf Ebrahimi/^A(?>\�+)/ 138*22dc650dSSadaf Ebrahimi A\x15B 139*22dc650dSSadaf Ebrahimi 0: A\x15 140*22dc650dSSadaf Ebrahimi A\x0dB 141*22dc650dSSadaf Ebrahimi 0: A\x0d 142*22dc650dSSadaf Ebrahimi A\x25B 143*22dc650dSSadaf Ebrahimi 0: A\x25 144*22dc650dSSadaf Ebrahimi A\x0bB 145*22dc650dSSadaf Ebrahimi 0: A\x0b 146*22dc650dSSadaf Ebrahimi A\x0cB 147*22dc650dSSadaf Ebrahimi 0: A\x0c 148*22dc650dSSadaf Ebrahimi ** Fail 149*22dc650dSSadaf EbrahimiNo match 150*22dc650dSSadaf Ebrahimi A B 151*22dc650dSSadaf EbrahimiNo match 152*22dc650dSSadaf Ebrahimi 153*22dc650dSSadaf Ebrahimi# Test \v+ 154*22dc650dSSadaf Ebrahimi 155*22dc650dSSadaf Ebrahimi/^A(?>\�+)/ 156*22dc650dSSadaf Ebrahimi A\x15B 157*22dc650dSSadaf Ebrahimi 0: A\x15 158*22dc650dSSadaf Ebrahimi A\x0dB 159*22dc650dSSadaf Ebrahimi 0: A\x0d 160*22dc650dSSadaf Ebrahimi A\x25B 161*22dc650dSSadaf Ebrahimi 0: A\x25 162*22dc650dSSadaf Ebrahimi A\x0bB 163*22dc650dSSadaf Ebrahimi 0: A\x0b 164*22dc650dSSadaf Ebrahimi A\x0cB 165*22dc650dSSadaf Ebrahimi 0: A\x0c 166*22dc650dSSadaf Ebrahimi ** Fail 167*22dc650dSSadaf EbrahimiNo match 168*22dc650dSSadaf Ebrahimi A B 169*22dc650dSSadaf EbrahimiNo match 170*22dc650dSSadaf Ebrahimi 171*22dc650dSSadaf Ebrahimi# Test \V+ 172*22dc650dSSadaf Ebrahimi 173*22dc650dSSadaf Ebrahimi/^A(?>\�+)/ 174*22dc650dSSadaf Ebrahimi A B 175*22dc650dSSadaf Ebrahimi 0: A\x20B 176*22dc650dSSadaf Ebrahimi ** Fail 177*22dc650dSSadaf EbrahimiNo match 178*22dc650dSSadaf Ebrahimi A\x15B 179*22dc650dSSadaf EbrahimiNo match 180*22dc650dSSadaf Ebrahimi A\x0dB 181*22dc650dSSadaf EbrahimiNo match 182*22dc650dSSadaf Ebrahimi A\x25B 183*22dc650dSSadaf EbrahimiNo match 184*22dc650dSSadaf Ebrahimi A\x0bB 185*22dc650dSSadaf EbrahimiNo match 186*22dc650dSSadaf Ebrahimi A\x0cB 187*22dc650dSSadaf EbrahimiNo match 188*22dc650dSSadaf Ebrahimi 189*22dc650dSSadaf Ebrahimi# Test \c functionality 190*22dc650dSSadaf Ebrahimi 191*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/ 192*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 193*22dc650dSSadaf Ebrahimi 0: \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 194*22dc650dSSadaf Ebrahimi 195*22dc650dSSadaf Ebrahimi/\�[\�\\�]\�^\�_/ 196*22dc650dSSadaf Ebrahimi \x18\x19\x1a\x1b\x1c\x1d\x1e\x1f 197*22dc650dSSadaf Ebrahimi 0: \x1b\x1c\x1d\x1e\x1f 198*22dc650dSSadaf Ebrahimi 199*22dc650dSSadaf Ebrahimi/\�?/ 200*22dc650dSSadaf Ebrahimi A\xffB 201*22dc650dSSadaf Ebrahimi 0: \xff 202*22dc650dSSadaf Ebrahimi 203*22dc650dSSadaf Ebrahimi/\�&/ 204*22dc650dSSadaf EbrahimiFailed: error 168 at offset 3: \c\x20must\x20be\x20followed\x20by\x20a\x20letter\x20or\x20one\x20of\x20[\]^_\x3f 205*22dc650dSSadaf Ebrahimi 206*22dc650dSSadaf Ebrahimi# End 207