http://qs321.pair.com?node_id=762230


in reply to Re^2: Regex help
in thread Regex help

What is the reason to put \E at the end of a regexp?

Replies are listed 'Best First'.
Re^4: Regex help
by moritz (Cardinal) on May 06, 2009 at 11:53 UTC
    It doesn't make a difference, but if you want to write something after the variable, it's treated literally unless there's an \E. That's a common mistake I made, so I always haven an \E for every \Q.

    Example:

    $ perl -Mre=debug -e 'my $x= "*"; /\Q$x.+/' Compiling REx "\*\.\+" Final program: 1: EXACT <*.+> (3) 3: END (0) anchored "*.+" at 0 (checking anchored isall) minlen 3 Freeing REx: "\*\.\+"
    You see that the .+ is also treated literally.
Re^4: Regex help
by ikegami (Patriarch) on May 06, 2009 at 15:21 UTC
    It's easier to say

    Use /\Q$variable\E/

    than

    Use /\Q$variable/ except if that's not the entire regexp pattern. You probably have to use /\Q$variable\E/ then.