Eu não consigo explicar porque seu regex não funciona.
Embora eu ache um pouco ambíguo e complicado demais. Experimente:
(ne|cs|hs|cc|lo|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al)?
Estou tentando escrever uma regra de marcador de sintaxe para assembly de braço a ser usada no gedit. Em arm, cada comando tem alguns sufixos opcionais que o fazem executar condicionalmente. Então, obviamente, eu quero que o comando seja destacado, mas também seja destacado se ele tiver um sufixo. Então, criei uma lista de palavras-chave que se parece com isso:
<context id="keywords" style-ref="keyword">
<suffix>(ne)?|(cs)?|(hs)?|(cc)?|(lo)?|(mi)?|(pl)?|(vs)?|(vc)?|(hi)?|(ls)?|(ge)?|(lt)?|(gt)?|(le)?|(al)?</suffix>
<keyword>add</keyword>
....keywords....
</context>
Todas as palavras-chave listadas são destacadas. No entanto, apenas [ANYKEYWORDHERE] ne [ANYKEYWORDHERE] cs são destacados. Parece que está apenas prestando atenção nos dois primeiros sufixos. O que estou fazendo errado?