9.3 Advanced Issues: Escaping and !

When a reference is silenced with the ! character and the ! character preceded by an \ escape character, the reference is handled in a special way. Note the differences between regular escaping, and the special case where \ precedes ! follows it:

#set( $foo = "bar" )
$\!foo
$\!{foo}
$\\!foo
$\\\!foo

This renders as:

$!foo $!{foo} $\!foo
      $\\!foo

Contrast this with regular escaping, where \ precedes $:

\$foo
\$!foo
\$!{foo}
\\$!{foo}

This renders as:

$foo $!foo $!{foo} \bar