^start of line
Positive Lookahead(?=.*\b(?:There|This|Dog)\b) .*any character (except for line terminators), repeated any number of times
\ban ASCII word boundary
Non-Capturing Group(?:There|This|Dog) Therethe literal text There (case insensitive) Thisthe literal text This (case insensitive) Dogthe literal text Dog (case insensitive) \ban ASCII word boundary
\s*any whitespace character, repeated any number of times
\S+any non-whitespace character, repeated at least once
Non-Capturing Group(?:\s+\S+){1,5} {1,5}repeats the group contents below between 1 and 5 times:
\s+any whitespace character, repeated at least once
\S+any non-whitespace character, repeated at least once
\s*any whitespace character, repeated any number of 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
i modifier: insensitive. Matches without distinguishing uppercase and lowercase letters