It has taken me a while to get to grips with \tl_set_rescan:Nnn <tl var> {setup} {tokens}, not least the fact that *omission* from the setup means "revert to usual catcode". I think this is worth documenting in interface3.pdf, since it seems not unreasonable (at least it did to me) to suppose that if one has explicitly changed a catcode using \tl_set_rescan:Nnn, only a similarly explicit change would revert the catcode to its usual value. In particular it would be helpful to document the fact that using an empty setup { } reverts everything to usual values. Andrew --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus