A while back I created a SAS program to clean U.S. addresses.  While not the most elegant thing in the world, it gets the job done (for the most part).  The SAS address cleaning program uses regular expressions to clean the addresses and they have placed in a separate include file.  Both of these files have been placed in a zip file which can be found here: SASAddressClean.zip.  Don't forget that I also created a similar program in C# which can be found here: CSharp_SelfInflictedProject_AddressCleaning.pdf.