forse sono riuscito a scrivere il pattern per l'href senza apici ne virgolette:

$pattern_a='|<a[^>]+href=([^"\'][^ ]+)[^>]*>(.*?)</a>|i';