Find the inside of a Loop
MATLAB, 163 159 146 78 bytes
function m=f(m,y,x);[~,i]=bwfill(m~=m(y,x),x,y,8);m=m*0;m(i)=1;m=bwfill(m,'h')

Thanks @rahnema1 for -66 bytes!!!
Now it does work on Try it online! BUT a few adjustments were needed, as MATLAB and Octave are not entirely compatible.
Explanation
First we make a binary image that just masks all the characters that are equal to the initial character. Then we determine the connected component the initial character is in.
% determine the connected component that is contains initial character
        
[~,i]=bwfill(m~=m(y,x),x,y,8);     % i contains the indices of the connected component
m=m*0;m(i)=1;                      % create an image of the connected component

After that we create an image of that connected component and apply fill all the &quot;holes&quot; in the image.
m=bwfill(m,'h')