ОК, если подумать, не помечая @ email, означает, что предыдущий элемент должен быть элементом, не относящимся к слову, потому что любой другой элемент, который может содержаться в слове, может сигнализироваться как электронное письмо, поэтому это привело бы:
!(^|\W)@([A-Za-z0-9_]+)!
но тогда вы должны использовать 2 доллара вместо 1 доллара.