I'm not entirely sure which one of these to hate, so I think I'll spread it evenly and hate both of them.
In Bash 3.2, the syntax of regular expressions were changed. So if [[ $string =~ 'foo(.*)' ]] then ... should become if [[ $string =~ foo(.*) ]] then ... You can imagine how many scripts that breaks. Well, maybe there's a justification. Oh by the way, Ubuntu Feisty, included an upgrade to Bash 3.2. No warning about that in the Release Notes at http://www.ubuntu.com/getubuntu/releasenotes/704 Oops.