Я не исследовал специально, но впечатление такое, что готового инструмента нет. Хотя конструкция кажется очевидной — есть
M конечных автоматов (регексов), мы объединяем их в один (методы известны), плюс в начальном и/или конечном состоянии каждого исходного автомата устанавливаем callback с идентификатором этого автомата и позицией в тексте.
Может быть, взять какую-нибудь библиотеку KA и из нее что-то попытаться смастерить? Для C есть
libfa (порт явовской
dk.brics.automaton), первую половину задачи она выполнит, а вот помеченные состояния и callback — не знаю.