Du bist mein Held der Woche! Dein neues Pattern funktioniert wie gewünscht, die Leerzeilen werden entfernt.
Dein Pattern übersteigt meine RegExp Fähigkeiten zwar um etwa 2 "Fähigkeitsklassen", aber mit all den Informationen blicke ich ein wenig durch. Ich habe dein neues Pattern minimal geändert, sodass das Leerzeichen hinter der (ausbalancierten) schließenden Klammer erhalten bleibt.
Dein neues Pattern aus dem letzen Post und darunter meine Mini-Änderung:
(?mi)^\h*Func\h+((?(DEFINE)(?<brackets>\((?|''(?>[^'']+|'''')*''|"(?>[^"]+|"")*"|[^\(\)\r\n"'']*|(?&brackets))*\)))\w+\h*(?&brackets)(?=\h*\R\h*EndFunc))
(?mi)^\h*Func\h+((?(DEFINE)(?<brackets>\((?|''(?>[^'']+|'''')*''|"(?>[^"]+|"")*"|[^\(\)\r\n"'']*|(?&brackets))*\)))\w+\h*(?&brackets)\h*(?=\R\h*EndFunc))
Im Test funktioniert es, aber das heißt ja nicht unbedingt, dass es immer so funktioniert. Deshalb die Frage: Ist das so richtig, oder hat das noch andere Auswirkungen?
Vielen Dank für deine Mühe!