В вашем паттерне b0+\b([1-9]|[1-9][0-9]|100)\b.png
\b
в этой части 0+\b
не будет работать, потому что нет границы слова между 0 и другим di git из следующего чередования.
Вы также можете опустить границу слова в этой части \b.png
и экранировать точку, чтобы буквально соответствовать ей.
Если вы хотите сопоставить только нули, вы можете сделать часть из 1-100 необязательной, как сейчас есть ожидаемое по крайней мере значение из ожидаемого чередования.
Чередование можно сократить, сделав необязательной деталь 0-9 [1-9][0-9]?
Для сопоставления от b0000.png
до b0100.png
Вы можете обновить шаблон до:
b0+(100|[1-9][0-9]?)?\.png
Regex demo
Весь диапазон от 0000 до 0373 можно сопоставить, используя:
b0+([1-9][0-9]?|[12][0-9]{2}|3[0-6][0-9]|37[0-3])?\.png
Regex demo