in reply to R.Exp. Matching from the Right

You might consider using File::Basename.

Update: Since [id://Corion] beat me by seconds in answering your question, I'll have to redeem myself by adding a little more detail.

The reason that [id://Corion]'s solution works is because of regular expression greed. Specifically, the '.*' part of the expression is greedy (since it doesn't have a '?' after it) and it will expand to consume the largest string possible while still leaving a few crumbs for the rest of the regex -- that is, the /(\w+\.txt) part.

There is probably a better way to describe regular expression greed, but that is the way it has made sense to me.


No good deed goes unpunished. -- (attributed to) Oscar Wilde