Com pcregrep , com um padrão como 12*3 :
pcregrep -o1 '(12*3).*'
Com pcregrep ou GNU grep -P :
grep -Po '^.*?\K12*3'
( pcregrep trabalha com bytes mais que caracteres, enquanto o GNU grep funcionará em caracteres conforme definido na localidade atual (e você deve certificar-se de que a entrada contém texto válido na localidade atual)).
Observe que o GNU grep não imprime nada se o padrão corresponder à string vazia.