Behaviour of PatternTest

I was surprised by the following behavior of PatternTest and I think that this may be instructive for other people too.

Consider FreeQ[x], an operator that returns True if its operand does not contain x. E.g. FreeQ[x][1] returns True.

Now look at:

MatchQ[2 , _?FreeQ[x]] False 

Not what I ecpected. However, if we put brackets around FreeQ[x]:

MatchQ[2 , _?(FreeQ[x])] True 

With the help of Wolfram support I could finally entangle this mystery. The PatternTest has a pretty high precedence, higher than Part, so that _?FreeQ[x] is interpreted as (_?FreeQ)[x] and not as expected: _?(FreeQ[x])