On 25/08/2015 1:35 a.m., Joseph Wright wrote: > On 25/08/2015 07:05, Joseph Wright wrote: >> On 26/08/2015 00:44, aparsloe wrote: >>> (1) I wanted to use \tl_replace_all:Nnn on a token list that might >>> contain braced groups. Using \tl_set_rescan:Nnn to change the category >>> codes of { and } seemed the most direct way of proceeding. (Then >>> resetting the category codes after replacement with an empty setup.) >> I see what you mean (I have a similar case in siunitx, for historical >> reasons). We'll explore what we can do with this: there are >> mapping-based approaches one can imagine that will enter brace groups. >> (We do that for \tl_lower_case:n, for example). However, for a general >> 'search and replace' I'd be slightly wary as the TeX convention that >> stuff in brace groups is 'special' is quite prevalent. (Depending on >> performance requirements, you might also look at l3regex if you are >> doing the replacement only very rarely.) > It would be useful here to see what your real use case is, as that's > often illustrative. > -- > Joseph Wright Thank you for the responses. I was remiss. I didn't make it clear that looking inside braced groups was not the concern, rather to replace (or remove) a list of tokens that might include braced groups. I've been reworking the code of a package that turns latex expressions into expressions that can be digested by l3fp. In fact, this particular issue has now been reworked away, but the problem had been to remove a varying expression, e.g. \sqrt{123} or \frac{1-x}{1+x}, from the initial segment of a formula. Rescanning { and } to "other" allowed me to use \tl_remove:Nn successfully. Although I can think of other means of doing this, they seem cumbersome by comparison. Andrew --- This email has been checked for viruses by Avast antivirus software. https://www.avast.com/antivirus