Huppsala, hab es nur mit deinem Beispielproblem ohne Attribute getestet. Im Attributsteil ist ja noch einmal ein greedy Stern, der dann alles bis zum allerletzten ">blablabl</tag>" frisst. Also zwei *?:
Code:
<(?<tag>suchmaschine)(=.*?)?>(.*?)</(\k<tag>)>
Matcht
Code:
<suchmaschine>Suchbegriff(e)</suchmaschine>
<suchmaschine=Suchbegriff(e)>Text für Beitrag</suchmaschine>
<suchmaschine>Suchbegriff(e)</suchmaschine>
jedenfalls anstandslos. Und entspricht ja dann auch fast deiner Version
.