code: func lexAfterDataPrefix(l *lexer) stateFn {
  	switch r := l.next(); {
  	case r == paramSemicolon:
  		l.backup()
  		return lexParamSemicolon
  	case r == dataComma:
  		l.backup()
  		return lexDataComma
  	case r == eof:
  		return l.errorf("missing comma before data")
  	case r == 'x' || r == 'X':
  		if l.next() == '-' {
  			return lexXTokenMediaType
  		}
  		return lexInDiscreteMediaType
  	case isTokenRune(r):
  		return lexInDiscreteMediaType
  	default:
  		return l.errorf("invalid character after data prefix")
  	}
  }
docs: // lex what's after data prefix.
  // it can be the media type/subtype separator,
  // the base64 encoding, or the comma preceding the data