use re 'debug'; $_="abc def"; #$_= qq!"abc def$"!; if (/"^abc[A\b]def$"/ ){ print "\ntrue\n"; } else { print "\nfalse\n"; } __END__ Compiling REx `"^abc[A\b]def ' size 19 Got 156 bytes for offset annotations. first at 1 1: EXACT <">(3) 3: BOL(4) 4: EXACT (6) 6: ANYOF[\10A](17) 17: EXACT (19) 19: END(0) anchored ""abc" at 0 (checking anchored) minlen 9 Offsets: [19] 1[1] 0[0] 2[1] 3[3] 0[0] 6[5] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 11[4] 0[0] 15[0] false Freeing REx: `"\"^abc[A\\b]def "' #### use re 'debug'; #$_="abc def"; $_= qq!"abc def$"!; if (/"^abc[A\b]def$"/ ){ print "\ntrue\n"; } else { print "\nfalse\n"; } __END__ Compiling REx `"^abc[A\b]def ' size 19 Got 156 bytes for offset annotations. first at 1 1: EXACT <">(3) 3: BOL(4) 4: EXACT (6) 6: ANYOF[\10A](17) 17: EXACT (19) 19: END(0) anchored ""abc" at 0 (checking anchored) minlen 9 Offsets: [19] 1[1] 0[0] 2[1] 3[3] 0[0] 6[5] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 0[0] 11[4] 0[0] 15[0] Guessing start of match, REx ""^abc[A\b]def " against ""abc def "... Found anchored substr ""abc" at offset 0... Guessed: match at offset 0 Matching REx ""^abc[A\b]def " against ""abc def " Setting an EVAL scope, savestack=3 0 <> <"abc def > | 1: EXACT <"> 1 <"> | 3: BOL failed... Match failed false Freeing REx: `"\"^abc[A\\b]def "'