The simplest way of dealing with such cases is to add the corresponding entries for them to both arrays - before the plain 'ABC' entry.

Alternatively, you could use:
FndArray = Array("<ABC.[0-9]{1,}>", "<ABC>", "<XYZ>")
RepArray = Array("www.microsoft.com", ("www.microsoft.com", "www.google.com")

and replace:
.MatchCase = True
.MatchWholeWord = True
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
with:
.MatchWildcards = True