SyntaxError: invalid regexp group

The JavaScript exception "invalid regexp group" occurs when the sequence (? does not start a valid group syntax. Recognized group syntaxes that start with (? include:

(? followed by any other character would cause this error.

Message

SyntaxError: Invalid regular expression: /(?1)/: Invalid group (V8-based) SyntaxError: invalid regexp group (Firefox) SyntaxError: Invalid regular expression: unrecognized character after (? (Safari) 

Error type

What went wrong?

? is not an atom, so it does not make sense to appear at the start of a capturing group (? is a quantifier and should be placed after an atom). Maybe you want to match the ? character literally, in which case you should escape it with a backslash (\?). Maybe you remembered the regex syntax wrong, and you intend to use one of the recognized group syntaxes listed above. Maybe you are using a feature that is not supported by the current JavaScript engine.

Examples

Invalid cases

js
/Hello(?|!)/; // This is Perl syntax /(?[\p{Thai}&\p{Digit}])/; 

Valid cases

js
/Hello(\?|!)/; // This is JavaScript syntax for character set operations /[\p{Thai}&&\p{Digit}]/v; 

See also