^start of line
\w+any word character, repeated at least once
*matches any number of characters from the set below:
-the literal - (4510 / 558 / 2D16)
\.the literal . (4610 / 568 / 2E16)
\wany word character
@the literal @ (6410 / 1008 / 4016)
Negative Lookahead(?!(?:outlook|myemail|yahoo)\.com$) Non-Capturing Group(?:outlook|myemail|yahoo) outlookthe literal text outlook (case sensitive) myemailthe literal text myemail (case sensitive) yahoothe literal text yahoo (case sensitive) \.the literal . (4610 / 568 / 2E16)
comthe literal text com (case sensitive) $end of line
\w+any word character, repeated at least once
*?matches any number of characters from the set below:
-the literal - (4510 / 558 / 2D16)
\.the literal . (4610 / 568 / 2E16)
\wany word character
\.the literal . (4610 / 568 / 2E16)
\w{2,4}any word character, repeated between 2 and 4 times
$end of line
g modifier: global. Finds all matches instead of stopping after the first
m modifier: multiline. Causes ^ and $ to match the start and end of each line, not only the start and end of the string