Using Series in this context requires constant maintenance wheras "LongestCommonString()" as you put it so very essentially would be just an "implement & forget it" solution. On the other hand Series is good enough because always only one objects series tag has to be filled after a new group is being recognized by the group expression:
Expression to group by: Left([Filename (name)],10)
Expression to display: If(compare(GroupCount(), >, 1), GroupSummary(Series) /(GroupCount()/), [Name])
--------
In the net I found a solution in PHP which would possibly do the job and serve at least as a good start for the display expression:
It compares strings $a, $b and returns $longest, e.g. abcdef, abcxef = abc
preg_match('/^'.preg_replace('/^(.\()(?=(.*)$)|\G.\(/','\1\2)?+',preg_replace('/(.)/','\1(',$a)).'/',$b,$longest);