Символы и спецсимволы в шаблоне можно объединять в наборы (сеты). Для этого несколько символов заключаются в квадратные скобки. Набор замещает собой один из символов, входящих в его состав. Например, вот такой набор [%d%p] замещает цифру или знак препинания. А такой [_%w] - букву, цифру или символ подчеркивания. Порядок символов, в котором они идут в наборе значения не имеет.
Теперь мы можем найти в строке значение переменной y даже если оно будет отрицательным или сопровождаться знаком +
s:match('y=[%+%-]?%d+')
Знаки % перед + и - говорят о том, что это не спецсимволы, а обычные + и -
Знак ? после набора указывает на то, что + или - могут отсутствовать.
А вот такой шаблон
s:match('y=[%+%-%d]%d*%.?%d*')
позволит найти число в формате с десятичной точкой.
Если набор начинается с символа ^ , то такой набор интерпретируется как "всё кроме указанных символов".