>perl -wMstrict -le "my @dates = ( 'December 1st 2012', 'December 2nd 2012', 'December 23rd 2012', 'December 24th 2012', 'December 765th 2012', 'an 8th note', ); ;; for my $date (@dates) { printf qq{'$date' -> }; $date =~ s{ \d \K (?: st | nd | rd | th) \b }{}xms; print qq{'$date'} } " 'December 1st 2012' -> 'December 1 2012' 'December 2nd 2012' -> 'December 2 2012' 'December 23rd 2012' -> 'December 23 2012' 'December 24th 2012' -> 'December 24 2012' 'December 765th 2012' -> 'December 765 2012' 'an 8th note' -> 'an 8 note'