Création d'un language listings pour les expressions régulières
Cette question ne trouve pas de réponse sur [TeX StackExchange][1], je me permets donc de la reposer ici.
Je cherche à créer un language `listings` pour les expressions régulières. La difficulté principale repose sur le fait que les caractères spéciaux sont des caractères spéciaux en LaTeX également.
Voici ma tentative actuelle :
\documentclass[12pt]{article}
\usepackage{listings}
\usepackage{xcolor}
\lstdefinelanguage{regex}{
commentstyle=\color{gray},
keywords={},
otherkeywords={^, \{, \}, ?, +},
alsoletter={},
basicstyle=\ttfamily,
keywordstyle=\bfseries\color{green},
breakatwhitespace=false,
breaklines=true,
captionpos=b,
showspaces=false,
showstringspaces=true,
literate=%
*{0}{{{\color{red}0}}}1
{1}{{{\color{red}1}}}1
{2}{{{\color{red}2}}}1
{3}{{{\color{red}3}}}1
{4}{{{\color{red}4}}}1
{5}{{{\color{red}5}}}1
{6}{{{\color{red}6}}}1
{7}{{{\color{red}7}}}1
{8}{{{\color{red}8}}}1
{9}{{{\color{red}9}}}1
{(}{{{\bfseries\color{blue}(}}}1
{)}{{{\bfseries\color{blue}\)}}}1
}
\begin{document}
\begin{lstlisting}[language=regex]
((a+b){4,5})*c? + [^ab{?]{3}
\end{lstlisting}
\end{document}
C'est un peu moche mais j'y suis presque. Le problème c'est que les parenthèses fermantes ne se colorent pas avec cette définition. J'ai déjà essayé d'enlever le `\` devant la parenthèse, ça ne change rien.
Comment puis-je faire pour corriger ça ? Est-ce qu'il y a un paquet existant / une meilleure manière de le faire ?
[1]: https://tex.stackexchange.com/questions/690180/creating-a-regex-language-for-listings