There are three places you can use placeholders: top-level position, expression position and LVALUE position. Each has slightly different syntax rules.
Top-level position means interspersed in text.  This is the only place
you can use the placeholder long form: ${var}.
Expression position means inside a Cheetah expression, which is the same
as a Python expression.  The placeholder names a searchList or other variable
to be read.  Expression position occurs inside () and ![$[]$](img1.png) arguments within
placeholder tags (i.e., a placeholder inside a placeholder), and in several
directive tags.
 arguments within
placeholder tags (i.e., a placeholder inside a placeholder), and in several
directive tags.
LVALUE position means naming a variable that will be written to.  LVALUE
is a computer science term meaning ``the left side of an assignment 
statement''.  The first argument of directives #set, #for,
#def, #block and #attr is an LVALUE.
This stupid example shows the three positions.  Top-level position is shown
in courier, expression position is italic, and LVALUE position is
bold.
#for $count in $range($ninetyNine, 0, -1)
#set $after = $count - 1$countbottles of beer on the wall.$countbottles of beer!
Take one down, pass it around.$afterbottles of beer on the wall.
#end for$hex($myVar, $default=None)
The output of course is:
99 bottles of beer on the wall.  99 bottles of beer!
    Take one down, pass it around.  98 bottles of beer on the wall.
98 bottles of beer on the wall.  98 bottles of beer!
    Take one down, pass it around.  97 bottles of beer on the wall.
...