This week's book giveaway is in the OCPJP forum. We're giving away four copies of OCA/OCP Java SE 7 Programmer I & II Study Guide and have Kathy Sierra & Bert Bates on-line! See this thread for details.
While it's possible to do that with a single regex, I wouldn't. I'd create one regex for each condition and test that input.matches(upperRegex) && input.matches(lowerRegex) && input.matches(digitRegex).