You could try substring-after to get the word after the space:
substring-after("main street", " ")
will return "street", for example.
So, using your formula above, if the value of the current node is "main street":
concat(substring(translate(substring-after(., " "), "abcdefghijklmnopqrstuvwxyz", "ABCDEFGHIJKLMNOPQRSTUVWXYZ"), 1, 1), substring(substring-after(., " "), 2, string-length(substring-after(., " ")) - 1))
should return "Street". Mind you -- I didn't test the above formula, just replaced the '.' character with 'substring-after(., " ")'.
That being said, how will you handle addresses with more than two words? Like if it is West Main Street?