From https://doc.rust-lang.org/nightly/reference/macros-by-example.html#r-macro.decl.transcription.fragment:
When forwarding a matched fragment to another macro-by-example, matchers in the second macro will see an opaque AST of the fragment type. The second macro can’t use literal tokens to match the fragments in the matcher, only a fragment specifier of the same type. The ident, lifetime, and tt fragment types are an exception, and can be matched by literal tokens.
I don't know what a "literal token" is, but it's apparently not the same as a token of kind literal (i.e., $foo:literal), so the term is confusing and also not properly introduced.
Cc @petrochenkov