also, you are wrong, wrong wrong wrong... here's an example of two regexes i wrote to catch filesystem references both absolute and relative:
this is relative:, it assumes no ./ or anything, just the first filename to start:
^((([a-zA-Z@0-9-_.]+/)+([a-zA-Z@0-9-_.]+)):([0-9]+))
this is one that expects a space before a relative, i had to handle both because one is for the condition of start of line and one is the condition of in a typical stack trace (iirc)
[ ]((([a-zA-Z@0-9-_.]+/)+([a-zA-Z@0-9-_.]+)):([0-9]+))
and this is an absolute filepath:
([/](([a-zA-Z@0-9-_.]+/)+([a-zA-Z@0-9-_.]+)):([0-9]+))
as you can see starts with a / - and yes, i don't have one for the explicit relative because nobody does that except i have to do that with certain go tool commands like run and build and install