Very crude but with some data at hand illustrates one way...
[b,S]=polyfit(X,log10(c),1);
[yhat,se]=polyval(b,X,S);
hL(2)=plot(X,yhat,'k-','linewidth',2);
hF=fill([X flip(X)],[ylo flip(yhi)],'m','FaceAlpha',0.5);
legend([flip(hL);hF],'Observations','Regression','Error Band')
xlabel('Observation'),ylabel('Response')
The above produced the following figure...
You can obviously choose a less garish color than magenta, but the 'FaceAlpha' setting at less than 0.5 or so is the key to being able to write on top of the existing lines and still see them through the colored area. fill uses an x, y vector to define the region; note the "trick" of string the X vector back-to-back, flipping the second copy to retrace from end of first back to beginning and then putting the two error vectors together to match.
You'll note a small white gap at the left edge; that's because the X data begin at 1 and the autoscaled axes limits go to zero; you can augment X by the zero first for the fill() if desired to make that artifact disappear.
Anyways, there's a set of breadcrumbs through the forest; if you are on loglog scale then will have to deal with that as well as for the semilogy illustrated here; I forget if there's a builtin loglog regression model or not in either the statistics or curve fitting toolbox that actually does the whole thing for you or not...