README.md in regexp-examples-1.4.2 vs README.md in regexp-examples-1.4.3
- old
+ new
@@ -55,10 +55,11 @@
* MRI 2.0.x
* MRI 2.1.x
* MRI 2.2.x
* MRI 2.3.x
* MRI 2.4.x
+* MRI 2.5.x
MRI ≤ 1.9.3 are not supported. This is primarily because MRI 2.0.0 introduced a new
regexp engine (`Oniguruma` was replaced by `Onigmo`). Whilst *most* of this gem could
be made to work with MRI 1.9.x (or even 1.8.x), I feel the changes are too significant
to implement backwards compatability (especially since [long-term support for MRI
@@ -108,10 +109,13 @@
* And backreferences(!!!), e.g. `/(this|that) \1/` `/(?<name>foo) \k<name>/`
* ...even for the more "obscure" syntax, e.g. `/(?<future>the) \k'future'/`, `/(a)(b) \k<-1>/`
* ...and even if nested or optional, e.g. `/(even(this(works?))) \1 \2 \3/`, `/what about (this)? \1/`
* Non-capture groups, e.g. `/(?:foo)/`
* Comment groups, e.g. `/foo(?#comment)bar/`
+ * [Absent operator groups, e.g. `/(?~exp)/`](https://medium.com/rubyinside/the-new-absent-operator-in-ruby-s-regular-expressions-7c3ef6cd0b99)
+ This feature is available in ruby version `>= 2.4.1`.
+ However, support in this gem is [limited](https://github.com/tom-lord/regexp-examples/issues/22).
* Control characters, e.g. `/\ca/`, `/\cZ/`, `/\C-9/`
* Escape sequences, e.g. `/\x42/`, `/\x5word/`, `/#{"\x80".force_encoding("ASCII-8BIT")}/`
* Unicode characters, e.g. `/\u0123/`, `/\uabcd/`, `/\u{789}/`
* Octal characters, e.g. `/\10/`, `/\177/`
* Named properties, e.g. `/\p{L}/` ("Letter"), `/\p{Arabic}/` ("Arabic character")
@@ -198,18 +202,13 @@
All forms of configuration mentioned above **are thread safe**.
## Bugs and TODOs
-There are no known major bugs with this library. However, there are a few obscure issues that you *may* encounter:
+There are no known major bugs with this library. However, there are a few obscure issues that you *may* encounter.
-* Conditional capture groups, e.g. `/(group1)? (?(1)yes|no)/.examples` are not yet supported. (This example *should* return: `["group1 yes", " no"]`)
-* Nested repeat operators are incorrectly parsed, e.g. `/b{2}{3}/` - which *should* be interpreted like `/b{6}/`. (However, there is probably no reason
- to ever write regexes like this!)
-* A new ["absent operator" (`/(?~exp)/`)](https://medium.com/rubyinside/the-new-absent-operator-in-ruby-s-regular-expressions-7c3ef6cd0b99)
- was added to Ruby version `2.4.1`. This gem does not yet support it (or gracefully fail when used).
-* Ideally, `regexp#examples` should always return up to `max_results_limit`. Currenty, it usually "aborts" before this limit is reached.
- (I.e. the exact number of examples generated can be hard to predict, for complex patterns.)
+All known bugs/missing features are [documented in GitHub](https://github.com/tom-lord/regexp-examples/issues).
+Please discuss known issues there, or raise a new issue if required. Pull requests are welcome!
Some of the most obscure regexp features are not even mentioned in [the ruby docs](http://ruby-doc.org/core/Regexp.html).
However, full documentation on all the intricate obscurities in the ruby (version 2.x) regexp parser can be found
[here](https://raw.githubusercontent.com/k-takata/Onigmo/master/doc/RE).