The editbox for inputting the identd string takes the 1st 10 characters of the input, and then strips out anything that's considered to not be a valid character, which can result in a string longer than 10 being being accepted and written to mirc.ini as being shorter than 10 or even as blank if none of the 1st 10 were accepted.

Suggesting that it should do it the other way around, by first filtering out the invalid characters, and then take the 1st 10 characters from the remainder.

now: $regsubex($left(%input,10),/([^\w.-])/g,)
new: $left($regsubex(%input,/([^\w.-])/g,),10)