Regular Expression to match this string Pattern
===

I am trying to construct a regular expression to match the following string patterns in a GWT (Java) program

The pattern must match strings in the following formats (Basically this is an address string that Im trying to send to Google Maps to get coordinates for:

    "2205 someStreet, Miami, USA"
    OR
    "someStreet, Miami, USA" 
    OR
    "Miami, USA"
    OR
    "2205 somestreet Miami USA "
    All other variations should not be allowed

So far I have tried these Regular Expressions 
    "([0-9a-zA-Z]+ ((\\s){0,1} | (,){0,1} (\\s){0,1}) [0-9a-zA-Z]$)+ "
    "^[0-9a-zA-Z]+,|\\s[0-9a-zA-Z]+"

WHile they match some  acceptable string patterns they also match unacceptable string patterns.

So I was wondering if anyone could give me a hand with these.

Thanks
