Puede que lo necesites sea utilizar el modificador de patrón
U.
Eso hace que la función no sea
greedy (glotona o ambiciosa) y devuelva la coincidencia más corta que encuentre.
Probá con este patrón, a ver si te sirve:
Código PHP:
$patron="/<a.*<\/a>/iU";
Más info:
http://www.ignside.net/man/php/regex.php