in reply to perl 5.6.1 bug?

That is one weird regex. It matches something at the start of the string with a single lower-case character, then a single upper-case character, then a number, then an underscore, then any character then a -. So this matches:

   aA0_X-

But this doesn't:

   aZZ0_X-

Maybe you should slow down and tell us what you're trying to do here.

UPDATE: Whoops, never mind. Your node got munged by your attempt to show code without using <code> and hid the square-brackets in the regex.

-sam