in reply to regex splitting

Its doing what you are asking it to. Which is split by space and left bracket. Split will keep doing that as many times as it can to make your array.
You could look at adding a;
join('\s\(',(@pos[1]..@pos[$#pos]))
This is pretty ugly though.