I believe the statement below should evaluate to True.
MatchQ["a_", b_ ~~ "_"]
Hovever it does return False.
Strangely, this pattern is well matched by StringReplace, as illustrated by:
StringReplace["a_", b_ ~~ "_" :> b ~~ b]
Which returns the String "aa", implying the pattern is indeed recognized as it should.
So, is this a bug in the MatchQ function or is there something I'm missing? Thanks.