http://qs1969.pair.com?node_id=197486


in reply to Re: Re: Re: Regex refresher (help?)
in thread Regex refresher

See FoxtrotUniform's answer above. 101 is not matched.

As for your other problems, here's a solution to one of them which should help with the others:

For reference, the original regex was:

/^(0|1(01*0)*1)*$/

Let's take your first example: 0011. 0 matches the first branch, and the final asterisk right at the end makes that greedy, so it also matches the second 0. 1 matches the second branch, the (01*0) matches nothing - which is ok because of the asterisk right after it. This effectively reduces the second branch to 1*1, which matches 11.

The others (1100, 0110) are variations on this theme.