Mein Ansatz läuft über Match-Groups (die Runden Klammern um den Ausdruck von himitsu). Damit bekommst du jedes einzelne Zeichen, das nicht deiner Vorgabe entspricht.
Delphi-Quellcode:
var res := TRegEx.Matches('12.123.45678', '([^a-zA-Z0-9$%&*+\-\/])');
for var i := 0 to res.Count - 1 do ShowMessage('nicht erlaubt: "' + res[i].Value + '"');