Blocking email address with regular expression not working

No, it is not possible to only have watched words applied to public posts. With that regex in place, you’ll need to get your users to enter email addresses in a way that doesn’t get matched by the regex. Maybe something like adding a space before the @ character would work.