Per the documentation, the returned string should be the input string if any replacement occurs. I haven't scanned all previous releases to see if this actually broke or was never implemented per the doc. For now I string compare the input and result strings, but it is possible for them to be the same but have been replaced if the consumer obviously replaced with the match.