Il problema è un altro, buonste. Le espressioni regolari sono belle toste e quello che chiedi non è banale: nel tuo caso, così a occhio, è un'ora di lavoro (almeno).

Ti butto giù un abbozzo su cui puoi lavorare:

codice:
/\s*([^<]*)<([^>]*)>;/
Questa piglia i patterns .... <....>; ma non tiene assolutamente conto della tua eccezione (nome.cognome@provider_xxx.com; soprannome@provider@provider_yyy.com.

Nel tuo futuro vedo una settimana d'inferno...