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.