README.md in regexp-examples-0.6.0 vs README.md in regexp-examples-0.7.0
- old
+ new
@@ -42,10 +42,11 @@
* 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/`
* POSIX bracket expressions (including negation), e.g. `/[[:alnum:]]/`, `/[[:^space:]]/`
+* Named properties, e.g. `/\p{L}/` ("Letter"), `/\p{Arabic}/` ("Arabic character"), `/\p{^Ll}/` ("Not a lowercase letter")
* **Arbitrarily complex combinations of all the above!**
* Regexp options can also be used:
* Case insensitive examples: `/cool/i.examples #=> ["cool", "cooL", "coOl", "coOL", ...]`
* Multiline examples: `/./m.examples #=> ["\n", "a", "b", "c", "d"]`
@@ -58,15 +59,10 @@
* `/[[abc]de]/.examples` (which _should_ return `["a", "b", "c", "d", "e"]`)
* `/[[a-d]&&[c-f]]/.examples` (which _should_ return: `["c", "d"]`)
* Conditional capture groups, such as `/(group1) (?(1)yes|no)`
-Using any of the following will raise a RegexpExamples::UnsupportedSyntax exception (until such time as they are implemented!):
-
-* Named properties, e.g. `/\p{L}/` ("Letter"), `/\p{Arabic}/` ("Arabic character"), `/\p{^Ll}/` ("Not a lowercase letter")
-* Subexpression calls, e.g. `/(?<name> ... \g<name>* )/` (Note: These could get _really_ ugly to implement, and may even be impossible, so I highly doubt it's worth the effort!)
-
There are loads more (increasingly obscure) unsupported bits of syntax, which I cannot be bothered to write out here. Full documentation on all the various other obscurities in the ruby (version 2.x) regexp parser can be found [here](https://raw.githubusercontent.com/k-takata/Onigmo/master/doc/RE).
## Impossible features ("illegal syntax")
The following features in the regex language can never be properly implemented into this gem because, put simply, they are not technically "regular"!
@@ -75,9 +71,10 @@
Using any of the following will raise a RegexpExamples::IllegalSyntax exception:
* Lookarounds, e.g. `/foo(?=bar)/`, `/foo(?!bar)/`, `/(?<=foo)bar/`, `/(?<!foo)bar/`
* [Anchors](http://ruby-doc.org/core-2.2.0/Regexp.html#class-Regexp-label-Anchors) (`\b`, `\B`, `\G`, `^`, `\A`, `$`, `\z`, `\Z`), e.g. `/\bword\b/`, `/line1\n^line2/`
* However, a special case has been made to allow `^`, `\A` and `\G` at the start of a pattern; and to allow `$`, `\z` and `\Z` at the end of pattern. In such cases, the characters are effectively just ignored.
+* Subexpression calls, e.g. `/(?<name> ... \g<name>* )/`
(Note: Backreferences are not really "regular" either, but I got these to work with a bit of hackery!)
##Configuration Options