Also, it doesn't work. For example, the pattern [^b][^a][^r] match "xbar" (1st char is not b, 2nd char is not a, 3rd char is not r), and it won't match "boo" or "cat". (Because of the b in "boo" and the a in "cat", respectively.)
I believe you want something using negative lookahead, like
This matches only if it is not (!) possible to find "bar" after skipping an unknown number of characters (.*).