The problem is related to the "Advanced Patterns" (i.e. Regular expressions).
First of all to "over-simplify" what I want to achieve.. I want to match the word "cat" but not the word "caterpillar".. so the intuitive thing is to use "Look-around assertions":
cat(?!erpillar)
the above expression should match "cat" but not "caterpillar"..
the problem is McAfee uses Google RE2 not PCRE.. and look-around assertions are not supported in Google RE2.
So the next intuitive thing is to mix the usage of "Matched Expressions" & "Ignored Expressions":
Matched Expressions:
cat
Ignored Expressions:
caterpillar
Now the problem is that the two are matching! (i.e. the DLP endpoint detects both "cat" & "caterpillar").. why is that?