Du hast vollkommen Recht. Ich bin aber anders an die Sache herangegangen: Ich habe den Quellcode analyiert und mich gefragt, wieso '11:33' gerauskommt, und nicht '11:22'. Und im Quellcode steht, das beim Auftreten des '!' die Zeichen zwischen dem letzten Literal (':') und dem Ende von RECHTS genommen werden.
Ich hatte zunächst eine andere Lösung (Wir simulieren die sukkessive Eingabe des Textes und schauen uns an, ob eingegebener Text = MaskEdit.Text und nehmen dann die längste Eingabe, bei der das noch funktioniert).