Simple: you have told it not to!
If I compact this a bit it may be a bit more obvious:
^x+y+(z+)?$
Where x, y, and z are the "phrases" in your regex.
That requires "one or more x", then "one or more y", then "one or more z" - a minimum of three characters.
I don't know exactly what you are trying to achieve, so I can't begin to correct it, but get a copy of
Expresso [
^] - it's free, and it examines and generates Regular expressions. It will make it pretty obvious what the problem is!