>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.
?MESSAGEBOX["String"]