It actually depends on `blink-matching-paren', not `show-paren-mode'.
Okay, thanks. IMO it's a bug nonetheless, it's a warning which might
confuse users.
Not sure, IMHO "balanced" replacements like \(foo\|bar\) -> [\1] are
more common,
It's about query-replace, not query-replace-regexp
You can make balanced non-regexp replacements in query-replace like
(foo (bar)) -> (bar (foo))
The warning "No matching parenthesis found" helps the users to write
correctly balanced expressions everywhere, including minibuffers.
When you sometimes write an unbalanced expression intentionally,
you can ignore this warning.