In Perl 6.c, regexes/grammars can only parse strings (at the grapheme level).
If you want to parse a Blob or Buf, you have to decode it into a string first by calling the `.decode` method¹ on it. Early Perl 6 design documents² suggested support for parsing at the byte or code-point level, but this hasn't become part of the language yet. I suspect it might be added in a future version. Marking this ticket [NYI]. --- 1) https://docs.perl6.org/routine/decode 2) http://design.perl6.org/S05.html#line_476