Not to put too fine of a point on it here, but ... I, too, would favor “two regexes” because the OP stated the original requirement also in two naturally-separable parts:
- The string must be a valid filename.
- The string must begin with a \w character.
Now, thinking as I always do about how one day the source-code might need to be changed
(and what sort of testing might then be required based on the nature of that change), a two-regex approach splits the problem along very-natural boundaries that match a human description of the objective. A more “clever” approach might demand much more exhaustive future testing.