Please enable JavaScript to use regex101
/
^
r
e
g
e
x
[
\
-
_
]
?
1
0
1
$
/
i
Reg
ular
Ex
pressions
101
Upgrade to Pro
Enterprise
Regular Expression
/
(?<!\\) # negative look-behind to make sure start is not escaped (?: # start non-capture group for all possible match starts # group 1, match dollar signs only # single or double dollar sign enforced by look-arounds ((?<!\$)\${1,2}(?!\$))| # group 2, match escaped parenthesis (\\\()| # group 3, match escaped bracket (\\\[)| # group 4, match begin equation (\\begin\{equation\}) ) # if group 1 was start (?(1) # non greedy match everything in between # group 1 matches do not support recursion (.*?)(?<!\\) # match ending double or single dollar signs (?<!\$)\1(?!\$)| # else (?: # greedily and recursively match everything in between # groups 2, 3 and 4 support recursion (.*(?R)?.*)(?<!\\) (?: # if group 2 was start, escaped parenthesis is end (?(2)\\\)| # if group 3 was start, escaped bracket is end (?(3)\\\]| # else group 4 was start, match end equation \\end\{equation\} ) ))))
/
gmx
Input 1
1
New
NOTE: For test purposes each test has been contained to one line, please enable the s flag for multi-line matches. $ match $ don't match nested $ match $ $$ no match$ $no match$$ \\$no match\\$ $no match\\$ \\$no match\\$ $$ match $$ don't match nested $$ match $$ $$$ no match $$ $$ no match $$$ \\$$ no match$$ $$ no match\\$$ \\$$ no match\\$$ \( match \) \( 1 \( nested match \) 3 \) \\( no match \\) \( no match \\\\) \\\\( no match \\\\) \[ match \] \[ 1 \[ nested match \] 3 \] \\\\[ no match \\] \\[ no match \\\\] \\\\[ no match \\\\] \begin{equation} match \end{equation} \begin{equation} 1 \begin{equation} nested match \end{equation} \end{equation} \\\\begin{equation} no match \\end{equation} \\begin{equation} no match \\\\end{equation} \\\\begin{equation} no match \\end{equation}
Extraction
NOTE: For test purposes each test has been contained to one line, please enable the s flag for multi-line matches. $ match $ don't match nested $ match $ $$ no match$ $no match$$ \\$no match\\$ $no match\\$ \\$no match\\$ $$ match $$ don't match nested $$ match $$ $$$ no match $$ $$ no match $$$ \\$$ no match$$ $$ no match\\$$ \\$$ no match\\$$ \( match \) \( 1 \( nested match \) 3 \) \\( no match \\) \( no match \\\\) \\\\( no match \\\\) \[ match \] \[ 1 \[ nested match \] 3 \] \\\\[ no match \\] \\[ no match \\\\] \\\\[ no match \\\\] \begin{equation} match \end{equation} \begin{equation} 1 \begin{equation} nested match \end{equation} \end{equation} \\\\begin{equation} no match \\end{equation} \\begin{equation} no match \\\\end{equation} \\\\begin{equation} no match \\end{equation}