Girish
Using regex_replace_all I am tryign to do the following:

Given a tl  which has  (a,b'x',{de}'y',f) I want to get (,x,y,). Meaning, I want to keep only the things between ' ' and the symbols , , ( and ). I can delete things between ' ' by using ('.*?') and I thought [^('.*?')] will serve the purpose, but it doesn't work.

I also tried  ^(?!.*('.*?')) for deleting everything but '...',  this too doesn't work.

I have asked this question here: [https://stackoverflow.com/questions/62319853/regex-matching-complement-of-a-group]
Skillmon
The following code doesn't handle outer parenthesis and assumes a few things:

- braced groups should be ignored even if they contain two ticks
- there are no commas between two ticks (so each "ticked" item is inside *one* clist item)
- there is at most *one* ticked item inside *one* clist item
- the category code of the ticks doesn't change
- inner parenthesis which are not in between two ticks shouldn't be kept

If you're ok with that (and perhaps strip the outer parenthesis before hand and re-add them later -- but I could include them in my code, if you so wish) you could use the following expandable code.


\documentclass[]{article}

\ExplSyntaxOn
\scan_new:N \s_girish_stop
\prg_new_conditional:Npnn \girish_if_contains_two_ticks:n #1 { TF }
{
\__girish_if_contains_two_ticks:w #1 '' \s_girish_stop
\prg_return_false:
\prg_return_true:
}
\cs_new:Npn \__girish_if_contains_two_ticks:w #1 ' #2 ' #3 \s_girish_stop
{
\tl_if_empty:nTF { #3 }
}
\cs_new:Npn \__girish_filter_results:n #1
{
\exp_not:o { \use_none:n #1 }
}
\cs_new:Npn \__girish_filter_ticks_extract:w #1 '
{
\__girish_filter_ticks_extract_auxi:w \q_mark
}
\cs_new:Npn \__girish_filter_ticks_extract_auxi:w #1 ' #2 \s_girish_stop
{
\exp_after:wN \__girish_filter_output:nw \exp_after:wN
{ \exp_after:wN , \use_none:n #1 }
}
\cs_new:Npn \__girish_filter_output:nw #1 #2 \__girish_filter_results:n #3
{
#2 \__girish_filter_results:n { #3 #1 }
}
\cs_new:Npn \__girish_filter_ticks:n #1
{
\girish_if_contains_two_ticks:nTF { #1 }
{ \__girish_filter_ticks_extract:w #1 \s_girish_stop }
{ \__girish_filter_output:nw { , } }
}
\cs_new:Npn \girish_filter_ticks:n #1
{
\clist_map_function:nN { #1 } \__girish_filter_ticks:n
\__girish_filter_results:n {}
}

\cs_new_eq:NN \girishfilter \girish_filter_ticks:n
\ExplSyntaxOff

\begin{document}
\girishfilter{a,b'x',{de}'y',f}
\end{document}


![noregexneeded.png](/image?hash=6a917eda2502c864a6c18de7ae998b9e2098e16da0518bbb6d0f22849cd2c3fb)

Enter question or answer id or url (and optionally further answer ids/urls from the same question) from

Separate each id/url with a space. No need to list your own answers; they will be imported automatically.