Turns out there are a lot of pattern tests:
In[3]:= Names["*Q"]
Out[3]= {"AcyclicGraphQ", "AlgebraicIntegerQ", "AlgebraicUnitQ", \
"AntihermitianMatrixQ", "AntisymmetricMatrixQ", "ArgumentCountQ", \
"ArrayQ", "AssociationQ", "AtomQ", "BinaryImageQ", "BipartiteGraphQ", \
"BooleanQ", "BoundaryMeshRegionQ", "BoundedRegionQ", "BusinessDayQ", \
"ByteArrayQ", "ColorQ", "CompatibleUnitQ", "CompleteGraphQ", \
"CompositeQ", "ConnectedGraphQ", "ConstantRegionQ", \
"ContinuousTimeModelQ", "ControllableModelQ", "CoprimeQ", \
"DateObjectQ", "DaylightQ", "DayMatchQ", "DeviceOpenQ", \
"DiagonalizableMatrixQ", "DigitQ", "DirectedGraphQ", "DirectoryQ", \
"DiscreteTimeModelQ", "DisjointQ", "DispatchQ", \
"DistributionParameterQ", "DuplicateFreeQ", "EdgeCoverQ", "EdgeQ", \
"EllipticNomeQ", "EmptyGraphQ", "EulerianGraphQ", "EvenQ", \
"ExactNumberQ", "FileExistsQ", "FreeQ", "FrontEndSharedQ", \
"GeoWithinQ", "GraphQ", "GroupElementQ", "HamiltonianGraphQ", \
"HermitianMatrixQ", "HypergeometricPFQ", "ImageInstanceQ", "ImageQ", \
"IndefiniteMatrixQ", "IndependentEdgeSetQ", "IndependentVertexSetQ", \
"InexactNumberQ", "IntegerQ", "IntersectingQ", "IntervalMemberQ", \
"InverseEllipticNomeQ", "IrreduciblePolynomialQ", "IsomorphicGraphQ", \
"JavaObjectQ", "KEdgeConnectedGraphQ", "KernelSharedQ", "KeyExistsQ", \
"KeyFreeQ", "KeyMemberQ", "KnownUnitQ", "KVertexConnectedGraphQ", \
"LeapYearQ", "LegendreQ", "LetterQ", "LinkConnectedQ", "LinkReadyQ", \
"ListQ", "LoopFreeGraphQ", "LowerCaseQ", "MachineNumberQ", \
"ManagedLibraryExpressionQ", "MandelbrotSetMemberQ", "MarcumQ", \
"MatchLocalNameQ", "MatchQ", "MatrixQ", "MemberQ", "MeshRegionQ", \
"MixedGraphQ", "MultigraphQ", "NameQ", "NegativeDefiniteMatrixQ", \
"NegativeSemidefiniteMatrixQ", "NormalMatrixQ", "NumberQ", \
"NumericQ", "ObservableModelQ", "OddQ", "OptionQ", "OrderedQ", \
"OrthogonalMatrixQ", "OutputControllableModelQ", "PacletNewerQ", \
"PartitionsQ", "PathGraphQ", "PermutationCyclesQ", \
"PermutationListQ", "PlanarGraphQ", "PolynomialQ", \
"PositiveDefiniteMatrixQ", "PositiveSemidefiniteMatrixQ", \
"PossibleZeroQ", "PrimePowerQ", "PrimeQ", "PrintableASCIIQ", \
"ProcessParameterQ", "QHypergeometricPFQ", "QuadraticIrrationalQ", \
"QuantityQ", "RegionQ", "RegularlySampledQ", "RootOfUnityQ", \
"SameObjectQ", "SameQ", "SatisfiableQ", "SimpleGraphQ", \
"SquareFreeQ", "SquareMatrixQ", "StringContainsQ", "StringEndsQ", \
"StringFreeQ", "StringMatchQ", "StringQ", "StringStartsQ", "SubsetQ", \
"SymmetricMatrixQ", "SyntaxQ", "TautologyQ", "TensorQ", \
"TimeObjectQ", "TreeGraphQ", "TrueQ", "UnateQ", "UndirectedGraphQ", \
"UnitaryMatrixQ", "UnsameQ", "UpperCaseQ", "URLExistsQ", "ValueQ", \
"VectorQ", "VertexCoverQ", "VertexQ", "WeaklyConnectedGraphQ", \
"WeightedGraphQ"}
In[4]:= Length[%]
Out[4]= 157
I haven't figured out how get their definitions all at once. The following doesn't work:
(? #)& /@ Names["*Q"]