It seems useful to unify replace/regexp behaviour. The difference is confusing and seems to be accidental.
Possible solution: make the default the same - perhaps "fail". Add/extend "custom in fail" for both with "on fail, do nothing".
During upgrade, add "on fail, do nothing" for 'replace' steps - both functional improvement and no breakage for users.