Hi,

> Marko Schulz <in6x059 / public.uni-hamburg.de> writes:
> > Changing ...
> >    /^(11+)\1+$/
> > into 
> ...
> >    /^(1{2,}){2,}$/

Michael Cook wrote:
> looks like you made two mistakes in that last transformation:
>  1. you dropped the \1
>  2. x+ is equivalent to x{1,} not x{2,}

I guess Michael's explanation doesn't follow the thoughts of Marko.

I'd rather put it this way:
1) /.*/ matches "abc", right?
2) so /.{2}/ is equivalent to /../ and matches not only "xx"
   but also "xy"
3) on contrary, /(.)\1/ matches only "xx", not "xy"

Similarily, /(1{2,}){2}/ means /(1{2,})(1{2,})/ and matches
every 1-row with length >=4.
The regular expression /(1{2,}){2}/ may match only strings
which length is even number.

Thus your example is equivalent to
    /^(1{2,})(1{2,})+$/
    /^(1{2,})(1{2,})(1{2,})*$/
effectively
    /^1{4,}$/

You have to keep in mind that "{.,.}" construct, as well as "*" and "+"
means repeating of the _regular expression_, not of the match.

Hope this was not too detailed and boring,
	Stepan Kasal