I was trying to use FreeQ to test for the presence of Hypergeometric2F1 functions in my expressions. I encountered the following strange behaviour relating to the use of blanks _ as arguments of Hypergeometric2F1 in the pattern to be tested for.
FreeQ[Hypergeometric2F1[a1, a2, b1, x], Hypergeometric2F1[a1, a2, _, _]]
(*False*)
as it should be, but
FreeQ[Hypergeometric2F1[a1, a2, b1, x], Hypergeometric2F1[_, _, _, _]]
(*True*)
I'd be grateful if someone could educate me what's going on here. I use version 9.0 on Linux x86 (64-bit).