Si en el texto no hay coincidencia no debería desaparecer nada, no es propio de las expresiones regulares.
Edito: no lo había visto hasta ahora, y me confundió por un par de minutos.
La explicación es sencilla, la culpa la tiene el hambre de (.*?) pues toma desde la comilla del enlace que no tiene valor de href, y continúa hasta la otra comilla del próximo enlace.
Yo lo cambie por (\S*?) y me funcionó bien, aunque no se si realmente se adapte al problema.