tikz latex3 add tag
In the following code, I am trying to put arc over the text between <...>. I am using this particular way because it fits as a part in a bigger code. 

The following code should replace all <...> with arc over the text inside but it only replaces the last occurrence of <...>, I don't understand why.



\tl_const:Nx \c_colon_tl { \token_to_str:N : }
\tl_new:N \l_names_tl
\tl_put_right:Nx \l_names_tl {abcdefghijklmnopqrstuvwxyz} 
\int_new:N \l_counter_int
\tl_new:N \l_aa_tl
\tl_new:N \l_bb_tl
\tl_new:N \l_cc_tl

	\tl_set:Nn \l_aa_tl {#1}

	\int_set:Nn \l_counter_int {1}
	\int_while_do:nNnn {\l_counter_int}<{27}
		\tl_set:Nx \l_bb_tl {\tl_item:Nn \l_names_tl{\l_counter_int}}
		\tl_set:Nx \l_cc_tl {\tl_item:Nn \l_names_tl{\l_counter_int+1}}

		\tl_replace_once:Nnn \l_aa_tl {<} { \tikzmark{\l_bb_tl} }
		\tl_replace_once:Nnn \l_aa_tl {>} { \tikzmark{\l_cc_tl} }
		\tikz[remember~picture,overlay,baseline=0pt,transform~canvas={yshift=1em}] \draw (pic~cs \c_colon_tl \l_bb_tl) edge[bend~left] (pic~cs \c_colon_tl \l_cc_tl);  
		\int_add:Nn \l_counter_int{2} 	     

	\tl_use:N \l_aa_tl


\barr{ab<cde>fghi <jkl>mnopqr<stu>vw}

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.