It is my understanding that the code should match if and only if there is a non vowel character at the beginning of the string...
No, see Quantifiers in perlre, and contrast * with + (see choroba’s answer above).
Why does the if statement not require brackets?
See Statement Modifiers in perlsyn.
Why is the $ anchor necessary at the end?
In this particular case, it probably isn’t. Update: See the answer by MidLifeXis below.
HTH,
Athanasius <°(((>< contra mundum
In reply to Re^4: Regular Expression
by Athanasius
in thread Regular Expression
by Socrates440
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |