I did that and found the same result as you did.
I am still wondering: what would be the purpose of an action that looks for any string and replaces it with itself (that is how I read the replace action)
Isn't it obvious? A track with the title "Bitches & $$$", for instance, would be formatted to "Bitches & $", implying that Brown Hood now only has a single dollar, though to his credit he has retained all his bitches.
Of course, the "correct result" should be that nothing is arbitrarily removed without the operator's explicit instruction. It's clearly a bug.
EDIT: the above example would occur if using an action with more than one 'replace with regex' scripts, which for me is often the case.
Hmm, not so obvious at all, because you never said, that your input-output example is even valid when using the $1 referrer, given by the round brackets, and you never said, that the input string as the whole match should be reflected without change when using the $0 referrer.
As a workaround you can use an action "Format value" in combination with the function $regexp(). This should work as it should be.
Actually, I clearly stated from the beginning that any replace /w regex action, regardless of syntax or referrers used, will have the same result. As for your workaround, while that is useful to know, it does not fulfill the objective of this forum: namely, to get bugs in the software fixed.