1. (x)(y )никто не отменял $1$2 и тд тоже.
2. SET тоже работает. в чем проблема ?
if ($host ~* ^(www\.)(.+)) {
set $HBW $2;
root /var/www/$HBW/web;
Хотя все это очень странно обычно это делают на стороне php
Опишите что вы хотите получить по итогу конкретную задачу, покане совсем понятно зачем так делать.