Well, considering the fact that the + or - at the beginning of that section would also be in $2, your suggestion (which uses $1) wouldn't work either.
I said it was a suggestion, not a guaranteed solution.
Also, my code does take into account the non q modes that might be set, since I check the position in $2 for the q mode, and add the name that matches the equivalent position..