You're missing uppercase:
'/[A-Za-z\d._%+-]+@[A-Za-z\d.-]+\.[A-Za-z]{2,4}\b/i'
I put it in everywhere in case you want to match HELLO@GMAIL.COM, you can always downcase it.
EDIT: I think I was trying to solve this for a different email address which wasn't being matched
EDIT 2: search the html, those that don't work have emphasis like example<em>@example.com</em>
so won't parse.