There might be a bit of Python bias going on here....
I think your submission is certainly deserving of a most readable award. I believe that mine starts out better, but it gets a bit uglier at the end. Because of the php syntax, Brain's submission isn't the easiest on the eyes, but it was probably the most writable - you can see how the replace methods that use regex to both match and replace are very powerful.
I'm not sure what criteria Dudex used to award the most concise implementation, but I would have probably made that a co-winner between Brain and myself. Brain's solution is 1 loc shorter, but he failed to remove some loc that are close to redundant. I try to base loc off of loc the person has to think about and write. For example, most Java IDE's will fill in the following when you create a new file....
Code:
class Filename {
public Filename() {
//
}
public static void main (String args[]) {
//
}
}
... so I don't count these lines in my concise evaluation. The same for main's in most languages because even if you do write it, you don't actually have to stop and think about it so it only takes a few seconds to type, which is insignificant compared to the amount of time it takes to think about and solve a problem.
I am pretty swamped right now, but when I get a chance, I'll post a Groovy submission.