Control codes can be the cause depending on your script and what you're seeing. A way around it is to use $strip($1-) instead of $1-.
isin vs iswm:
if (this isin $1-) is basically the same as if (*this* iswm $1-). isin works fine if you don't care where it is in the line of text you are looking at. In most cases, however, you want more control and then you use iswm. iswm can let you require that the text is only at the beginning of the line, only at the end of the line, the only thing on the line, etc. It all depends on how you use your wildcards. Sometimes you also want to use it for something like if (*this*and*that* iswm $1-). That requires that those words are all in the line and that they are in that order, but anything can be between them. With isin, if you use multiple words, it will check that they are all within the text and that they are in the same order, but nothing else can be between the words unless you specifically put it there in your IF... no control codes, other words, etc.