It is helpful to remember that #x# is just a name for the stuff inside the parentheses.
Some color might help:
#fcolor(red)((x))=color(red)((x))^2-4#
Whatever goes in for the #color(red)((x))# on the left, goes in for all the #color(red)((x))#'s on the right. (Yes, in this function there is only one on the right.)
So:
#fcolor(red)((3))=color(red)((3))^2-4#
and
#f(color(red)(-5))=color(red)((-5))^2-4#
And even:
#f(color(red)(Delta))=color(red)((Delta))^2-4#
So we have:
#fcolor(red)((g(x)))=color(red)((g(x)))^2-4#
But #g(x) = sqrt(x-3)#, so we have:
#f(g(x)) = (g(x))^2 -4# which can also be written:
#f(g(x)) = f(sqrt(x-3))= (sqrt(x-3))^2-4#
Now we simplify, using #(sqrt(x-3))^2 = x-3# to get:
#f(g(x)) = f(sqrt(x-3))#
# = (sqrtx-3))^2-4 #
#= x-3-4 #
#=x-7#
This is the composition #f " of " g#, usually written #f@g#
To find #g" of "f#, we need:
#g(f(x)) = g(x^2-4)#
And what does #g# do to the stuff in parentheses?
It does:
#gcolor(red)((x))=sqrt(color(red)((x))-3#
So #g(x^2-4) = sqrt ((x^2-4)-3)#, Now simplify to get:
#(g@f)(x) = g(f(x)) = sqrt(x^2-7)#