Nach einigem Nachdenken und Reflektieren muss ich jetzt feststellen, dass ich/wir den Schwanz mit dem Hund haben wedeln lassen.
Der eigentliche Fehler liegt nicht darin, dass sich das Caret-Zeichen ^ nicht auf den Absatzbeginn beschränkt und darüberhinaus auch den Beginn einer neuen Zeile berücksichtigt. Nein, der eigentliche Fehler liegt darin, dass Adobe diese Positionsmarke ^ als "Absatzbeginn" bezeichnet bzw. der Begriff "Absatzbeginn" eine gewisse Unschärfe in sich trägt. Und da diese Marke auch Positionen finden, die nicht Absatzbeginn sind, sondern Zeilenbeginn, weisen wir zu Recht auf eine Differenz zwischen Bezeichnung und Wirkung hin.
Unter einem Absatz verstehen wir eine Texteinheit, die zwischen bestimmten Begrenzern eingeschlossen ist:
– zwei Absatzschaltungen (RETURNs)
– Textanfang + Absatzschaltung
– Absatzschaltung + Textende
– Textanfang + Textende
(theoretisch könnte man nun auch die Trennung von Text durch Shift-Return [ein besonderes Return] als ein "Absetzen" = einen Absatz verstehen)
Computertechnisch hat sich diese "Sinneinheit" aus Begrifflichkeiten um die Schreibmaschine und den Telegrafen entwickelt:
Wagenrücklauf (carriage return, cr) und
Zeilenvorschub (line feed, lf).
Bei der Schreibmaschine war noch jede neue Zeile mit Beginn im Bereich des linken Rands mit einem handgreiflich verursachten Wagenrücklauf in Gemeinschaft mit einem Zeilenvorschub verbunden. Ein Absatz ("ab-setzen", hervorheben) wurde daraus erst mit einer besonderen Gestaltung: (Erst-)Zeileneinzug bzw. Leerzeile (vergrößerter Zeilenvorschub).
Tatsächlich war aber unter diesen mechanischen Bedingungen jede Zeile – unabhängig ob neuer Absatz oder nur neue Zeile – mit einem
Zeilenvorschub verbunden.
Auf dem Computer haben sich mit verschiedenen Betriebssystemen dann unterschiedliche Bezeichnungen und Codierungen für den Zeilenvorschub entwickelt:
Langer Rede kurzer Sinn: ^ sucht nicht nach einem
Absatzbeginn, wie die Bezeichnung, die Adobe dafür gewählt hat, nahelegt, sondern nach einem per Tastatur vorgenommenen
Zeilenbeginn - egal ob nun ein Return oder ein Shift-Return eingegeben wurde.
Insofern führt die GREP-Suche genau das aus, wofür das ^ im Kontext der regulären Ausdrücke steht:
Position Zeilenanfang. Wobei dieser "Zeilenanfang" nicht jeden Zeilenanfang (weicher Umbruch) einschließt, sondern nur solche, die durch ein entsprechendes Zeichen (Return oder Shift-Return) oder durch den "Textbeginn" veranlasst wurden.
Der Fehler liegt also nicht in der tatsächlichen Wirkung,
sondern in der irreführenden Bezeichnung.
Insofern stellen die beiden Ausdrücke
und
nicht eine überflüssige oder vermeidbare Umschweife dar, sondern vielmehr eine Präzisierung/Vergenauerung des Zeilenvorschubzeichens (nicht nach/vor dem \n; also nur nach dem damit verbleibenden \r).
Für die lange Ausführung bitte ich um Entschuldigung. Mitunter bedarf es eines weiten Rundumschlags, um sich selbst von falschen Überzeugungen zu befreien. ;-)
(Konsequenterweise müsste ich eigentlich meinen Bugreport jetzt löschen oder die o.g. Ausführungen dorthin übersetzen lassen. Denn u.U. bedeutete eine Änderung der Wirkung von ^ einen Fehler im Hinblick auf die Konventionen andernorts ... Was tun?)