funcs = Prepend[
DeleteCases[
Sequence @@ (count ↦
SymbolName[#][
count]) /@ (Length[Flatten[#]] & /@
Select[Union[(del ↦
Replace[Delete[#, del],
Optional -> Identity, ∞, Heads -> True]) /@
Subsets[Position[#, _Optional]]],
FreeQ[#, Verbatim[__] | Verbatim[___], ∞] &] &)[
DeleteCases[
"ArgumentsPattern" /.
SyntaxInformation[#], _OptionsPattern]] & /@
Symbol /@
DeleteCases[