in reply to Replacing string with []

You have been given two fine solutions with the /Q ... /E and the quotemeta built-ins. These two constructs do all the dirty meta-character escaping work for you so that you don't have to worry about the details. And they are especially fine if you are given a search string (for example if it is coming from a file that you read or from user input).

However, for the sake of completeness, I would add that these two operators simply add the \ escaping character before any non-word character (that may otherwise be interpreted as a regex meta-character). If you are building yourself your pattern, you might also add the escaping character before the [ opening square bracket yourself, as shown in the following session under the Perl debugger:

DB<1> $str = "123 A_D1 XYZ A_D1[1] BLAH BLAH"; DB<2> $str =~ s/A_D1\[1]//g; DB<3> p $str 123 A_D1 XYZ BLAH BLAH