Regular Expressions list.
^
– означает, что соответствие будет искаться с начала строки, а не с любого символа. Выражение /box/ будет соответствовать и box-web и home-box-web, а /^box/ только первой строке.
$
– означает привязку к концу строки /index\.php/ будет соответствовать и site.ru/index.php и site.ru/index.php?v=3, выражение /index\.php$/ будет соответствовать только первому варианту.
.+
– любое количество символов. Точка – любой символ, комбинация .+ – один или больше любых символов.
\.
– Так как точка специальный символ, то для того, чтобы обозначить точку, ее нужно экранировать слешем.
\w
– любой символ, который может составить слово \w+ – любое количество таких символов (один или больше).
Имя сервера, заданное регулярным выражением, должно начинаться с символа тильды:
server_name ~^www\d+\.example\.net$;
в противном случае оно будет рассматриваться как точное, или же, если выражение содержит звёздочку (“*”), то как имя с маской (и, скорее всего, некорректное). Не забывайте ставить специальные символы начала (“^”) и конца (“$”) строки. По синтаксису они не требуются, но логически они могут быть нужны. Также заметьте, что все точки в доменных именах должны быть экранированы символом обратной косой черты. Регулярное выражение, содержащее символы “{” и “}”, необходимо экранировать:
server_name "~^(?