# ЭТО РАБОТАЕТ:
re.findall(r'(?<=\$)\d+', s) # фиксированная длина: 1 символ
re.findall(r'(?<=USD)\d+', s) # фиксированная длина: 3 символа
re.findall(r'(?<=\${1,3})\d+', s) # ОШИБКА! Переменная длина
# Альтернатива для переменной длины:
re.findall(r'(?<=\$)\d+|(?<=\$\$)\d+|(?<=\$\$\$)\d+', s)
Негативный просмотр назад: (?<!...)
"Найди позицию, перед которой НЕ идёт указанный паттерн"