 <p>Try this : <code>(?&lt;=\bHOUSE\s)(?:\d+-\w|\d+\s\w|\d+)\b</code></p> <p>NB. the order on a conditional statement is important, and the first successful match is taken, so if you have <code>\d+|\d+-\w</code> it will only match <strong>4</strong> in <strong>4-C</strong> but <code>\d+-\w|\d+</code> will match <strong>4-C</strong></p> <p><a href="http://regex101.com/r/gS0aO6" rel="nofollow">http://regex101.com/r/gS0aO6</a></p>