location ^~
não é um local de regex, é um local de prefixo que tem precedência sobre todos os locais de expressão regular.
Veja este documento para detalhes.
O que você provavelmente quer é:
location ~ ^/vexim/.*\.php$ { ... }
location ~ \.php$ { ... }
Certifique-se de que a localização /vexim
vem em primeiro lugar, pois as localizações de expressões regulares são ordenadas.