Índice Regex na string correspondente em que a correspondência falhou

Eu estou querendo saber se é possível extrair a posição do índice em uma determinada string onde um Regex falhou ao tentar combiná-lo?

Por exemplo, se minha regex fosse "abc" e eu tentasse combinar com "abd", a correspondência falharia no índice 2.

Edite para esclarecimentos. A razão pela qual eu preciso disso é permitir que eu simplifique o componente de análise do meu aplicativo. O aplicativo é uma ferramenta de ensino de idiomas da Assmebly que permite aos alunos escrever, compilar e executar programas semelhantes a montagens.

Atualmente eu tenho uma classe de tokenizer que converte strings de entrada em tokens usando regex's. Isso funciona muito bem. Por exemplo:

O tokenizador produziria os seguintes tokens com a seguinte entrada = "INP: x:"
:

Token.OPCODE, Token.WHITESPACE, Token.LABEL, Token.EOL

Esses tokens são então analisados ​​para garantir que eles estejam em conformidade com uma sintaxe para uma determinada instrução. Atualmente isso é feito usando instruções IF e está sendo complicado. A vantagem dessa abordagem é que posso fornecer mensagens de erro detalhadas. Eu.

if(token[2] != Token.LABEL) { throw new SyntaxError("Expected label");}

Eu quero usar uma expressão regular para definir uma sintaxe em vez das instruções IF irritantes. Mas, ao fazer isso, perco a capacidade de retornar relatórios detalhados de erros. Eu, portanto, gostaria de informar ao usuário de ONDE o erro ocorreu.

questionAnswers(5)

yourAnswerToTheQuestion