Perl has a built-in function for A-Za-z_0-9: quotemeta()
Nearly there. Too bad, Anonymous Monk cannot fix his own typos. Correctly said and taken from perldoc -f quotemeta:
quotemeta
Returns the value of EXPR with all the ASCII non-"word"
characters backslashed. (That is, all ASCII characters not
matching "/[A-Za-z_0-9]/" will be preceded by a backslash in
the returned string, regardless of any locale settings.) This
is the internal function implementing the "\Q" escape in
double-quoted strings. (See below for the behavior on non-
ASCII code points.)
...
Cheers, Sören
Créateur des bugs mobiles - let loose once, run everywhere.
(hooked on the Perl Programming language)