I propose a /n flag for regular expressions, which would swap the default capturing/non-capturing behavior between ( ) and (?: ) operators (that is, ( ) would not capture, and (?: ) would capture).

The /n property would reflect on the RegExp object as `Noncapturing == true`.


Is there any precedent for this in other perl-based regexp packages?
....Perl6....
But more to the point of my intended proposal, .NET has the /n flag for turning off capturing for ( ) -- I'm not sure if it then turns on capturing for (?: ) or not, someone more familiar with .NET would have to inform here.

That's interesting. I found

http://msdn.microsoft.com/en-us/library/yd1hzczs.aspx
http://msdn.microsoft.com/en-us/library/yd1hzczs.aspx#Explicit

There is no sign of non-capturing syntax (?:...) here at all. This n flag seems a bit different from what you propose.

http://msdn.microsoft.com/en-us/library/bs2twtah.aspx#noncapturing_group

Again, I'm not sure if .NET swaps the default behavior as I'm proposing, when /n is present. But it seems quite natural to me that /n would do so, rather than having a strange asymmetry where without the flag, both capturing and non-capturing are possible, but with the flag present *only* non-capturing is possible.


As with all things RegExp, I wonder what Steve thinks.

Do you mean Steven Levithan (aka "Mr Regex")? If so, he already commented at length on that blog post I mentioned. I guess he implies the discussion is worth having by saying "...and which can be explored in future ECMAScript specs."


--Kyle



_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to