>>My SWAG as to why it works with [] is because the bracket can also be used to designate an array so the compiler ignores them and does the replace.
>
>Thats probably right. I think just about anywhere you can use a "()" you can also do "[]" and vice versa.
Not quite. Remember that you can delimit strings with [] just like you can with single or double quotes. The same isn't true for parentheses.
Mike Stewart