Martin DeMello wrote:
> What characters have to be escaped within a [] in a regular
> expression? I was a bit taken aback by the following:
> 
> irb(main):001:0> a = '!#$%^&*((*)*_GHF$%#$*^%&;2~__)+|{}|{\\'
> => "!\#$%^&*((*)*_GHF$%\#$*^%&;2~__)+|{}|{\\"
> irb(main):002:0> a.gsub(/[!@#$%^&*+={}|\\]/, '_')
> SyntaxError: compile error
> (irb):2: parse error, unexpected $undefined.
> a.gsub(/[!@#$%^&*+={}|\\]/, '_')
>             ^
> (irb):2: parse error, unexpected $undefined.

Hi. You don't need braces to interpolate global variables. "#$%" tries 
to interpolate special variable $%.

--