$_ = 'aaabbb'; /((?: a | c? )*)/x; # 'c' matches once with zero-length # which is not the same as /(( a )* | ( c? )?)/x; # where 'c' does not match at all