I need to check for a PO Box addresses in a string. I should not allow a pobox in a address Line. For that I need a pattern and willl match this pattern with my string

Ex:***** something like this ******
Pattern poBoxPattern = Pattern.compile("\\bp\\s*\\d") ....
Matcher matcher = poBoxPattern.matcher(locationAddressStreet);


So, could anyone help me with making the pattern.
My pattern should recognize sub strings like...
1. po 123 ( meaning: po followed by any integer/integers )
2. p o 123
3. p.o. 123
4. p. o. 123
5. po box
6. po box
7. p o box
8. p o 123

Note: "po sometext" or "p o sometext" should not be recognized.

Any help is truly appreciated.