im attempting to delete all items NOT matching *.*

for example, items such as

nick -> user
this -> that

would be deleted, and items such as

nick.them -> user
this.something -> that

would NOT be deleted... Im using the code below...

Code:
alias del_users {
 var %x = 1
 while (%x <= $hfind(nicks,/^?!((.+?)\.(.+?)))/,0,r)) {
   hdel nicks $hfind(nicks,/^?!((.+?)\.(.+?)))/,%x,r)
   inc %x
 }
}


The trouble is.. if there's 3 entries, it only deletes the first 2... if there's 6 it only deletes the first 5....

i have tried it with var %x = 0 and also tried it as < instead of <= in the while...

any ideas???