# Reserved prefixes Current status: * [RFC #3101](https://github.com/rust-lang/rfcs/pull/3101) is awaiting a checkbox * but some questions need to be resolved Open questions: * Error in lexer or not? * If so: * Existing DSLs that peek at whitespace will break, e.g., Mara's python procedural macro, which relies on `f"..."` * If not: * Will change from 2 tokens to 1, but we can migrate that change * People can update their procedural macros accordingly to cope with either variety * However, we have to answer some questions * `b"abc"` errors for things that are not valid byte strings * Q: example? * raw strings `r""` and `r#"..."#` are well known to the lexer * Q: do they ever issue *errors*? * Q: do they generate strings differently in any way *other* than permitting embedded quotes with the `#` prefix and suffix? * Answer: `r"fo\"` treats the `\` as a regular character, I believe, not an escape * so do we do this with any other prefixes or suffixes? * e.g., `br"..."` is permitted today * what about `bfr`? `rb`? * Options * just do `ident # ident` * but we want `f#`! * just do `ident # ident` and reserve `f#` * but that's arbitrary * error in tokenizer * but existing crates break and can't be truly migrated * error in tokenizer but not for `f#` or some other specific cases * we do have to come up with sensible rules for `f#` then, but that seems plausible * how do we know we have the right set? * tokenize all strings but tokenize those ending in `r` as raw strings * this follows the precedent of `br"..."` * one catch: `b".."` enforces some conditions in lexer now, we'd probably want to change that