Puede ser que PHP este antponiendo un diagonal a la inversa "\" antes de tu variable. Por eso no la procesa. Prueba con esto
Código PHP:
<?PHP
$indice = 1;
//Le puse la diagonal para que no la procese como variable por ahora
$url = 'nat mapdelete index=\$indice';
//Aqui se la quito usando stripslashes();
$url = stripslashes($url);
//Armo una cadena para evaluarla...
eval("\$var1 = \"$url\";");
//SI todo salió bien $var1 contiene ya nat mapdelete index=1
echo $var1;
?>
Como comentario, eval() no es una buena solución, sería mejor que usaras str_replace() o alguna similar, ya que si en vez de poner nat mapdelete index=$index, pueden poner cualquier código.
Saludos y espero que te sirva, si no, puedes postear algo de tú código.