Что именно вы пытаетесь сделать? Вам не нужно анализировать какие-либо выходные данные git с помощью эвристики - вы всегда можете запросить именно те данные, которые вам нужны.
Если вы хотите сопоставить полное шестнадцатеричное представление суммы SHA1, попробуйте:
/\b([a-f0-9]{40})\b/
То есть слово, состоящее из 40 символов, которые представляют собой либо цифры, либо буквы от a до f.
Если у вас есть только несколько персонажей и вы не знаете, где они находятся, то вам не повезло. Является ли "e78fd98" сокращенным идентификатором коммита? Может быть, но как насчет "1234567"? Это идентификатор фиксации? Номер проблемного билета? Число, которое делает тест неудачным?
Без контекста вы не можете точно знать, что означают данные.
Чтобы ответить на ваш прямой вопрос, не существует свойства SHA1, которое сделало бы первые три символа (в шестнадцатеричной форме) цифрами. Вам просто повезло или, возможно, не повезло, в зависимости от того, как вы на это смотрите.