See my following example:
In[2553]:= f//ClearAll;
f[{m__List?MatrixQ},c_?MatrixQ]:={{m},c}
g//ClearAll;
g[{m__?MatrixQ},c_?MatrixQ]:={{m},c}
f[{IdentityMatrix[2],IdentityMatrix[2]},IdentityMatrix[2]]
%==g[{IdentityMatrix[2],IdentityMatrix[2]},IdentityMatrix[2]]
Out[2557]= {{{{1, 0}, {0, 1}}, {{1, 0}, {0, 1}}}, {{1, 0}, {0, 1}}}
Out[2558]= True
As you can see, {m__List?MatrixQ} and {m__?MatrixQ} give the same results. I wonder if they are equivalent in all cases.
Regards,
Zhao