Bug introduced in 8.0.4 or earlier and persists through 11.1.1
Thank you for bringing this to our attention. I have filed a report with our developers.
Why does this
{42.`}~MatchQ~(x0 : _List)
{42.`}~MatchQ~(x0 : {___})
{42.`}~MatchQ~(x0 : _List : {1.})
{42.`}~MatchQ~(x0 : {___} : {1.})
give
True
True
True
False
Instead of all true?
{42.}~MatchQ~(x0 : {__} : {1.})
yieldsFalse
but{42.}~MatchQ~(x0 : {_} : {1.})
yieldsTrue
. AndTrace
ing doesn't illuminate anything:Trace[{42.}~MatchQ~(x0 : {___} : {1.})]
yields{MatchQ[{42.}, x0 : {___} : {1.}], False}
. $\endgroup$