>(2) You need both the anchors ^ and $ otherwise you may have a match of any sequence of chars in the string
>
>(3) Since (?!) is a zero width assertion you can put both after each other
>
>(?!not this)(?!and not that)
>
http://xkcd.com/208/(I just had to)