Não, isso corresponderia apenas
xxx.xxx.128
xxx.xxx.129
xxx.xxx.138
xxx.xxx.139
xxx.xxx.148
xxx.xxx.149
xxx.xxx.158
xxx.xxx.159
O que você quer (se regexes é mesmo a ferramenta certa; não tenho certeza se existe uma maneira melhor de combinar em netmasks que funcionem aqui) seria
^xxx\.xxx\.1(2[89]|[3-5][0-9])
A parte dos parênteses corresponde a ou 2 seguido por 8 ou 9 , ou 3 , 4 ou 5 seguidos por qualquer dígito.
Você precisa do "qualquer dígito" no segundo caso, porque, caso contrário, o regex corresponderia, por exemplo, xxx.xxx.13.57 , que não está no seu intervalo.