Если я правильно понимаю ваши требования, то это будет регулярное выражение, которое вы можете использовать вместе с ответом @Tomalak.
preg_match('#.*@.*(?:aaa|bbb)|\.(?:com|info)$#ui', $html, $emails);
Этот шаблон соответствует тому, что вы не хотите.
.*@.*(?:aaa|bbb)
соответствует aaa или bbb после @
, * \.(?:com|info)$
является другой частью, это соответствует, если ваш адрес электронной почты заканчивается на .com
или .info
Вы можете увидеть его онлайн здесь на Regexr
Обновление:
.*(?:aaa|bbb).*\.(?:com|info)$
Это будет соответствовать aaa
или bbb
и строка должна заканчиваться .com
или .info
Посмотреть онлайн здесь, на Regexr