Not using the code you've got there. Firstly, is the number of tokens always the same? If it is, you can use this (assuming 7 tokens every time):
$hfind(Table,* * * * %matchtext * *,1,w).data
If not, you'll have to use regular expressions to search like so:
$hfind(Table, $+(/^(?:\S+\s){4}, $re_escape(%matchtext), (?:\s|$)/), 1, r).data
You'll also need the following alias to use that:
alias re_escape return $regsubex($1, /([^\w\s])/g, \\t)
I have no idea what the performance of a regular expression search is on a hash table with 3000 items, my guess is "not good". But you'll have to try it and see.