I have the same problem as in [this link](https://stackoverflow.com/questions/18751486/matching-one-string-multiple-times-using-regex-in-java)

but with multiple patterns. My regex is like:

```
Pattern word = Pattern.compile("([\w]+ [\d]+)|([\d]+ suite)|([\w]+ road)");

```

If my sample text is,

> 
> XYZ Road 123 Suite
> 
> 
> 

My desire output is,

> 
> XYZ Road 123
> 
> 
> 123 suite
> 
> 
> 

But am getting

> 
> XYZ Road 123
> 
> 
> 

only.

Thanks in advance!