It might help if we replace the variable #x# in #f(x)# with a different variable than the one used in #g(x)#. (We can do this because #x# is just an arbitrary place holder). Suppose for example we write:

#color(white)("XXX")f(color(red)(w)) = 1/(color(red)(w)+1)#

Then it might be easier to see how we can replace

#color(white)("XXX")color(red)(w)color(white)("XXX")# with #color(white)("XXX")color(blue)(g(x))#

#color(white)("XXX")f(color(blue)(g(x))) = 1/(color(blue)(g(x))+1)#

#color(white)("XXXXXXX")=1/(color(blue)(2/(2x-1))+1)#

#color(white)("XXXXXXX")=1/((2+2x-1)/(2x-1))#

#color(white)("XXXXXXX")=(2x-1)/(2x+1)#

The #f(g(x))#is defined for all Real values of #x# for which

#color(white)("XXX")2x+1 !=0#

#color(white)("XXX")x!=-1/2#

That is, the Domain of #f(g(x))# is #RR-{-1/2}#

#color(white)("XXX")#(or, if you prefer) #(-oo,-1/2)uu(-1/2,+oo)#

One way to determine the range is to ask: "Is there any value, #c# for which #(2x-1)/(2x+1) = c# is impossible?"

#color(white)("XXX")2x-1 = c(2x+1)#

#color(white)("XXX")2x-2cx= c+1#

#color(white)("XXX")x = (c+1)/(2(c-1))#

This equation is clearly undefined if #c=1#

Therefore the Range of #f(g(x))# is

#color(white)("XXX")RR-{1}#

#color(white)("XXX XX")# (...or, #(-oo,1)uu(1,+oo)#)

This can also be seen from the graph of #(2x+1)/(2x-1)#

graph{(2x-1)/(2x+1) [-5.546, 5.55, -2.773, 2.774]}