Here you are.
Got an answer from Tim Pietzcker
If you want to match a :-) that is not preceded by "please ignore me", then you'd need a negative lookbehind (?<!...) instead of lookahead (?!...). However, JavaScript doesn't support lookbehind.
So what you could do is to match (\bplease ignore me\s*)?:-\) and then, if it matches, check whether the capturing group $1 is empty.