Я делал когда-то так. Всё работало (расшифровка запросов с ЧПУ
станка). Из буфера копировал строку-запрос в линейный буфер, дальше
поиск по маске, возврат указателя. Он либо указывает на первый
символ после совпадения, либо пустой, если уперлись в конец строки
и ничего не совпало. Были ещё таймауты на приём и пр.