The regular expression: (?i-msx:\b(?:deceased|passed\s+away|died|dying|death(?!\s+benefits))\b) matches as follows: NODE EXPLANATION ---------------------------------------------------------------------- (?i-msx: group, but do not capture (case-insensitive) (with ^ and $ matching normally) (with . not matching \n) (matching whitespace and # normally): ---------------------------------------------------------------------- \b the boundary between a word char (\w) and something that is not a word char ---------------------------------------------------------------------- (?: group, but do not capture: ---------------------------------------------------------------------- deceased 'deceased' ---------------------------------------------------------------------- | OR ---------------------------------------------------------------------- passed 'passed' ---------------------------------------------------------------------- \s+ whitespace (\n, \r, \t, \f, and " ") (1 or more times (matching the most amount possible)) ---------------------------------------------------------------------- away 'away' ---------------------------------------------------------------------- | OR ---------------------------------------------------------------------- died 'died' ---------------------------------------------------------------------- | OR ---------------------------------------------------------------------- dying 'dying' ---------------------------------------------------------------------- | OR ---------------------------------------------------------------------- death 'death' ---------------------------------------------------------------------- (?! look ahead to see if there is not: ---------------------------------------------------------------------- \s+ whitespace (\n, \r, \t, \f, and " ") (1 or more times (matching the most amount possible)) ---------------------------------------------------------------------- benefits 'benefits' ---------------------------------------------------------------------- ) end of look-ahead ---------------------------------------------------------------------- ) end of grouping ---------------------------------------------------------------------- \b the boundary between a word char (\w) and something that is not a word char ---------------------------------------------------------------------- ) end of grouping ----------------------------------------------------------------------