Is your exclamation point a shape layer?
You should be able to do this with sourceRectAtTime. If you put the expression below on the Position node on the shape layer’s path in the Shape’s Contents. Not the position node on the layer itself. The (-your number) at the end should be the pixel measurement of your text layer’s width. If you right click on scale of any layer, select “Edit Value” then change the measurement to pixels you can find out how wide you layer is in pixels.
You can also put this in the position node of your layer then change the x and y values to what you need. For both cases the sourceRectAtTime will automatically move your exclamation point as the text layer changes length.
Hope this helps.
//Put this one on the shape layer's Position node under that shapes Contents.
x=thisComp.layer("text layer").sourceRectAtTime(time,false).width-your number;
y= your number;
[x,y]
//Put this one on the layer's position node and change the x and y as needed.
x=thisComp.layer("text").sourceRectAtTime(time,false).width+135;
y= 310;
[x,y]