Hallo Rainer,
meiner Ansicht nach ist das ist weder Bug noch Feature.
Es ist die Konsequenz aus der Tatsache, dass eben nicht die Formatierung angerührt wird, sondern nur Zeichen mit Zeichen ersetzt werden. In den Ersetzungsgruppen, deren Zeichenlängen einfach festgehalten werden…
Vermeiden kann man die Verschiebung der Formattierung, indem wir anders an die Geschichte herangehen:
Mit positiven lookbehinds oder in anderen Fällen mit positiven lookaheads arbeiten, um genau die Stellen zu treffen, die ausgetauscht werden sollen.
Dann braucht's aber möglicherweise 2 GREP Suchen/Ersetzen-Durchgänge.
Um beim ersten Beispiel zu bleiben:
und: