There are 2 new version using TiddlyWiki v5.3.0-prerelease https://tiddlywiki5-9kmb2mhrt-jermolene.vercel.app/
I do prefer test-text-substitution, because it’s shorter and imo simpler using known filter operators.
The +[limit[1]]
is only there for testing to get shorter output
\function sub() "[" [<operator>] ":" [<suffix>] "<term>]" +[join[]]
\procedure search-macro(f, operator, suffix, term)
debug: <$text text=<<sub>>/>
<$list filter="[subfilter<f>] +[subfilter<sub>] +[limit[1]]"/>
\end
<<search-macro "[all[tiddlers]!is[system]]" "regexp" "title" "\.[a-zA-Z]{2,4}$">>
----
<<search-macro "[!is[system]limit[250]]" "search" "text" "operator">>