Missing regular expression summary documentation


#1

There is no documentation on the regular expression dialect being used. The page
https://atom.io/docs/v1.3.3/using-atom-find-and-replace provides no summary of the RE dialect used. A new user to Atom coming from ed, sed, nvi, TextPad, etc. with a some knowledge of RE has no indication whether POSIX Extended Regular, Expressions, PCRE, Javascript, or some other is used. I was left to search in more depth external to atom.io to discover Javascript RE is used.

It would be useful to have a summary table of the RE syntax supported and/or a link to a more in-depth off site explanation thereof.


#2

To document javascript flavor I find the following page useful
http://www.regular-expressions.info/javascript.html

In particular:

JavaScript implements Perl-style regular expressions. However, it lacks quite a number of advanced features available in Perl and other modern regular expression flavors:

  • No \A or \Z anchors to match the start or end of the string. Use a caret or dollar instead.
  • Lookbehind is not supported at all. Lookahead is fully supported.
  • No atomic grouping or possessive quantifiers.
  • No Unicode support, except for matching single characters with \uFFFF.
  • No named capturing groups. Use numbered capturing groups instead.
  • No mode modifiers to set matching options within the regular expression.
  • No conditionals.
  • No regular expression comments.

There is no /s modifier to make the dot match all characters, including line breaks. To match absolutely any character, you can use character class that contains a shorthand class and its negated version, such as [\s\S].


#3

This implementation of regular expressions is quite limited to the point of being difficult to use. Is it possible for me to (write code to add functionality to) expand the regular expression implementation in Atom?


#4

What part of Atom are you talking about? It would be considerably easier to submit a pull request to the repo of the find-and-replace package, for instance, than it would be to expand the implementation of regular expressions in the V8 engine.