in reply to Regex: Specifying quantity for bracketed items

The reason that your RE does not work as expect is that the [^ ]+ atom will match any number of non space chars, which effectively makes your 5,12 limit useless. You first regex is also (probably) broken as it will match all sorts of non lowercase stuff. Here is what it does:

while(<DATA>) { chomp; print "Matches like: ($1)($2)($3)\n" if m/^([^ ]+)([a-z0-9]+)([^ ] ++)$/ } __DATA__ >>>>this<<<< $$$$that$$$$

As suggested you probably want m/^[a-z0-9]+$/ which will only match strings that are lowercase or numbers. Changing the + to {MIN,MAX) limits the number. If you want something special at the begining or end of the string using lookback and lookahead assertions may be relevant. However given that a space is not part of your match class.....

cheers

tachyon