Yes, your examples are correct.

As for the $remove, it's because it's treating the []'s as evaluation brackets rather than text because they aren't touching any other characters (not counting the ()'s that surround the whole thing). To deal with that, change the []'s to their ascii code equivalents.

Just like a space is $chr(32), all characters have a similar code. To find it out, you can use:

//echo -a $asc([)
//echo -a $asc(])

Then you'd have $remove($1-,$chr(##) TEST $chr(##)) where the ## are the ascii numbers. Most characters can easily be checked with the $asc() command. A few won't work, such as a comma, due to how mIRC interprets code. To get around that limitation, you can look them up online, get a script that works around that, get a script that lists all of the ascii codes, or just try characters that are close to it on the keyboard.

Because . is close to , you can try:
//echo -a $asc(.)

And then, just increase the number or descrease the number until you find the right number.

//echo -a $chr(42)
//echo -a $chr(43)
//echo -a $chr(44)

Kind of line that. Eventually, you memorize the common ones that you use regularly.

As for removing the - in that example, you'll need to make sure that you include it in the $remove command. smile

Btw, you may want to look up $gettok as well. $gettok works similar to using $1,$2,etc., but will let you get parts of text even if the spaces aren't there.

For example, if you wanted to get the text between the first two []'s and nothing else, you'd use $gettok to get it. Check it out and see what you can do with it.

Format:
$gettok(text,#,chr) <<-- My version of it.

text could be $1- or a variable or actual text.
# is the number of the item you want. If you were doing it based on spaces, # would be the number of the word.
chr is the $chr that you're separating the text by. For spaces, $chr(32) is a space. In $gettok, you just put 32 (no $chr part) and it will count by spaces.