"Regular" expressions are called that because they specify what is known as "regular languages". This category of languages is characterized by context-free rules; for example, the word "bow" means one thing only, regardless of which words it is surrounded by (let's say it's a keyword for "what dogs say"). This is distinct from context-dependent languages, where "bow" in "I bow before you" is different from "shoot with a bow" which is different from "bow wow".
Modern regular expressions somewhat transcend this definition, but nevertheless, the From:
header syntax defined in RFC822 is too complex to be parsed by even a souped-up regular expression engine. You really, properly need a context-dependent grammar (and indeed, RFC5322 includes one) to completely parse every possible variation allowed by the specification. To connect to the previous example, what \"
means (i.e. how it should be parsed) depends on whether you are inside double quotes or not, and whether or not you are looking at the "real name", the email terminus, or a comment (in parentheses).
Now, you might want to back off, and say that only some of the possible variations are actually in common, widespread use; that's true, and there are regular expressions which handle almost all of them.
Try your regular expression on the test suite at http://code.iamcal.com/php/rfc822/tests/ and decide for yourself which of those test failures actually matter to you. Maybe you can come up with a good spec for what you "really mean". But your question, as it stands, has to be answered with a resounding "it cannot be done".