What would be the regular expressions to extract the name and email from strings like these?
johndoe@example.com John John Doe &l
You can try this (same code as yours but improved), but you need to check returned groups after matching because the email is either returned in group 2 or group 3, depending on whether a name is given.
(?:("?(?:.*)"?)\s)?<(.*@.*)>|(.*@.*)