Looks like you are on windows. If so, you do not need to escape the parentheses with ^. As to your main question, in general, you have to compute variables ahead of time and then use them in your command line. IM 6 does not have the flexibility to do what you want, except for a few options, such as distort. IM 7 should be more flexible as this was on the main things that was on the wish list.
In particular with regard to your command, why do you need the 100x100 transparent background if you want the size to be the same as a.png?
Why not just do
convert a.png b.png -gravity center -composite c.png
The output will be the same size as a.png. Then b.png will be cropped by the limits of a.png, if b.png extends beyond. And both images will be centered. If you want the b.png top left to be at the center, then you will have to compute the offset from the center as half of the b.png image.
ww=`convert b.png -format "%[fx:w/2]" info:`
hh=`convert b.png -format "%[fx:h/2]" info:`
convert a.png b.png -gravity center -geometry +${ww}+${hh} -composite c.png
Sorry the above is unix style. For windows, see
http://www.imagemagick.org/Usage/windows/
P.S. This will do the latter in one command by using -distort to compute and apply the shift
convert -respect-parenthesis a.png \( b.png -virtual-pixel none -filter point \
-set option:distort:viewport "%[fx:2*w]x%[fx:2*h]+0+0" -distort SRT "0,0 1 0 %[fx:w],%[fx:h]" +repage \) \
-gravity center -compose over -composite result.png
One needs to enlarge the viewport so that the shift will not crop the image.
see
http://www.imagemagick.org/Usage/distor ... t_viewport