Allow nesting of brace-like delimiters in regex
Summary:
Allow nested brace-like delimiters in regular expressions.
Check balanced nested delimiters only for delimiter type on outside.
Done in 2 steps:
1 ) Find ending delimiter by searching from end of regex
- if cannot find ending, report Missing delimiter
2 ) Take inner string (w/o outer delimiters) and use a stack to push and pop delimiters in linear scan across regex. Report missing delimiter if cannot find corresponding delimiter.
- skip escaped delimiters
- re"[[]]" still reports an error: ```Bad regex pattern; missing terminating ] for character class [2]. (Typing[4275])``` However, it passes through check of balanced brace delimiters, and the error is thrown farther along in the regex check. New error appears to be legitimate.
Reviewed By: kmeht
Differential Revision:
D16182873
fbshipit-source-id:
012b677df29d415dfd7bc57e3f643d4eac86edad