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.})yieldsFalsebut{42.}~MatchQ~(x0 : {_} : {1.})yieldsTrue. AndTraceing doesn't illuminate anything:Trace[{42.}~MatchQ~(x0 : {___} : {1.})]yields{MatchQ[{42.}, x0 : {___} : {1.}], False}. $\endgroup$