@Saq, much appreciated. Your filter is good but/and thanks to it I realized I need a "split
beforeregexp". The idea is to use it to extract things in a dictionary so I circumvented the "$
:/" issue by instead searching for colon+space. This is less than optimal because users might not stick to that when they type in an entry... but it's good enough.
Here's the result for anyone curious. Soon to be included in an updated HackSearch:
\define search-inner()
<$vars hasterm="""[enlist-input[]match[$(searchterm)$]]""">
<$list filter="""[[dic]get[text]splitregexp[\n]prefix<candidate>filter<hasterm>then<candidate>]""">
</$list>
</$vars>
\end
<$vars searchterm={{searchterm}} >
<$list filter="""[[dic]get[text]splitregexp[\n]regexp<searchterm>splitbefore[: ]removesuffix[: ]]""" variable=candidate>
<<hacksearch-inner>>
</$list>
</$vars>
<:-)