echo $begrüßung;
Deine Anforderungen sehen sehr nach "Wortgrenze" aus
Das würde ich nicht nehmen, denn das findet gemäß den Anforderungen zu viel. Man braucht jede Menge Ausnahmen, um das überflüssige auszuschließen. Mehrfach durchkämmen mit einfacheren Regeln scheint mit weniger grauen Haaren verbunden zu sein und pflegbareren Code zu erzeugen.
Wie man aber in einem kaputten HTML-String feststellen kann, ob man sich innerhalb oder außerhalb eines inhaltsbewehrten Elementes befindet, dazu fällt mir nicht wirklich etwas ein.
Mit sehr tolerantem Parser. Syntax nach klaren Reglen lässt sich stets einfacher parsen als menschliche Fantasie. Mit RegExp allein kann man zwar Muster wie <.+?>zahl</.+?> gut erkennen, und findet dabei auch Tags mit Attributwerten, aber auch ungültiges oder den Suchbedingungen vielleicht nicht entsprechende Vorkommen. Z.B.
<b><i>zahl</b>
<p><img …>zahl</p>
echo "$verabschiedung $name";