# 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