in reply to Can't rename all directories but only some

The only difference I can see between your two approaches is the non greedy matches on your re in the second case. If you aren't getting a permission denied error with the first code then perhaps $concat isn't being set to what you think? My advice is for your error messages to always say exactly what you were trying to do ie.

rename($_, $concat) || print "Error could not rename $_ to $concat : $ +!";

When you give us an error message please copy and paste it, don't paraphrase it. The error message could contain the clue that somebody will see and that you are missing.

--
Until you've lost your reputation, you never realize what a burden it was or what freedom really is. -Margaret Mitchell