Nur ich sehe nicht, wo hier die img-Tags berücksichtigt werden. Ich meine es funktioniert, aber wär toll, wenn du mir noch sagen könntest, wo dies der Fall ist.
Der reguläre Ausdruck "@(<a[^>]*>(.*?)</a>)|(<[^a][^>]*>)@" matcht alle <a>-Tags samt Inhalt und alles ander, und außerdem (mit dem | möglich gemacht) alles, was zwischen < und > steht (außer a sonst würde ja doppelt ersetzt werden).
Gruß,
Niklas