An alternative to Edward's is to pass 2 as the last parameter to strtran and then take care of the ~, if necessary, only in the last entry, so I presume it would run faster
m.String = STREXTRACT(m.test, "*", "*", 4, 2)
The last string would have the ~, but you can just get rid of it easily outside of the loop I presume you are using
"The five senses obstruct or deform the apprehension of reality."
Jorge L. Borges?
"Premature optimization is the root of all evil in programming."
Donald Knuth, repeating C. A. R. Hoare
"To die for a religion is easier than to live it absolutely"
Jorge L. Borges