This doesn't make much sense: yes, it's silly! Perhaps you should explain what it is that bothers you about doing a substitution. And I can't see why you're so keen on $1 instead. Granted these variables are often useful, but I for one prefer to use the return value of m// whenever possible.