Observe que -regex / -iregex (extensões GNU), como o padrão -path , correspondem ao caminho completo, não apenas ao nome do arquivo.
Se você quiser encontrar arquivos cujo nome (em oposição a caminho ) comece com 2 dígitos decimais, seguindo por algo que não seja um dígito decimal e terminando em .flac , você poderia fazer portably:
find . -name '[0-9][0-9][!0-9]*.[fF][lL][aA][cC]'
Observe que não corresponderia em 01.flac porque o [!0-9] não pode corresponder a ele. Em vez disso, você poderia escrever:
find . -name '[0-9][0-9][!0-9]*' -name '*.[fF][lL][aA][cC]'
Eles usam padrões curinga, não regexps.
Para usar o find do GNU -iregex , os equivalentes seriam:
find . -regextype egrep -iregex '.*/[0-9]{2}[^0-9/][^/]*\.flac'
find . -regextype egrep -iregex '.*/[0-9]{2}([^0-9/][^/]*)?\.flac'
Ou seja, nós ancoramos os dois dígitos no início, pois nos certificamos de que o resto do regexp não abranja um / .