$hfind seems to search the complete hash table in $hget(hash,n).item sequence, so the $regml you get is the one for item $hget(hash,$hget(hash,0).item).item.

I agree it would be more logical that matching would stop at the point where the requested match has been found...


For your problem now: if (($hfind(spam,$1-,1,R).data) && ($regex($1-,$hget(spam,$v1)))) { ... }