O motivo pelo qual você não precisa escapar de /
é que /
não é um delimitador.
Parece que você está acostumado a escrever expressões regulares em outros aplicativos, onde um delimitador é necessário. Por exemplo, em Perl você pode escrever algo como:
m/\/.serverfault/
A chave aqui é que você escolheu o delimitador . Não há nada de especial sobre /
. Na verdade, você poderia usar praticamente qualquer personagem. #
é bastante comum também.
m#/.serverfault#
Se você escolher um delimitador específico, e esse caractere aparecer na expressão regular, você deve escapar, ou escolher um delimitador diferente .
Como o nginx não precisa executar operações de substituição em correspondências de expressões regulares (por exemplo, s/old/new/
), ele também não precisa usar um delimitador; assim, quando você especifica expressões regulares em nginx, nenhum delimitador é usado e (quase) nada precisa ser escapado.