Ti succede perché è sbagliata l'espressione regolare.
(.*)+ dice "prendi qualsiasi cosa" quindi sono compresi anche gli spazi e di conseguenza
bla bla pippo@isp.tld ciccio
viene tutto preso, escludi gli spazi e ti prenderà solo l'indirizzo email.
Inoltre ^ dice che il match deve cominciare dall'inizio della stringa, quindi se l'email non è la prima cosa, escludendo gli spazi (quindi rendendo buono il pattern per prendere l'indirizzo) questo non ti verrà considerato.
Allo stesso modo $ indica che ciò che cerchi deve essere anche l'ultima cosa presente nella stringa in cui si cerca.
insomma, al momento la tua espressione regolare (escludendo gli spazi) prenderebbe un indirizzo solo se fosse l'unica cosa presente nella stringa.