import re
strs = ['Some $ 10 here',
'And 10$ here',
'And 10 $ here',
'And 1000005 dollars here',
'And dollars one million and five here']
r_dollar = r'(?:\$(?:usd)?|(?:dollar|buck)s?)' # USD dollar name
r_textnumber = r'\b(?!\s)(?:[\sa-]|zero|one|tw(?:elve|enty|o)|th(?:irt(?:een|y)|ree)|fi(?:ft(?:een|y)|ve)|(?:four|six|seven|nine)(?:teen|ty)?|eight(?:een|y)?|ten|eleven|forty|hundred|thousand|[mb]illion|and)+\b(?<!\s)'
r_number = r'(?:[1-9][0-9]+|{})'.format(r_textnumber) # Dollar amount
valuta_with_num = r'{0}\s?{1}|{1}\s?{0}'.format(r_number, r_dollar) # Main regex
currency_tags = re.compile(valuta_with_num)
for s in strs:
print(currency_tags.findall(s))
aW1wb3J0IHJlCnN0cnMgPSBbJ1NvbWUgJCAxMCBoZXJlJywgCgkJJ0FuZCAxMCQgaGVyZScsCgkJJ0FuZCAxMCAkICBoZXJlJywKCQknQW5kIDEwMDAwMDUgZG9sbGFycyBoZXJlJywKCQknQW5kIGRvbGxhcnMgb25lIG1pbGxpb24gYW5kIGZpdmUgaGVyZSddCnJfZG9sbGFyID0gcicoPzpcJCg/OnVzZCk/fCg/OmRvbGxhcnxidWNrKXM/KScgIyBVU0QgZG9sbGFyIG5hbWUKcl90ZXh0bnVtYmVyID0gcidcYig/IVxzKSg/Oltcc2EtXXx6ZXJvfG9uZXx0dyg/OmVsdmV8ZW50eXxvKXx0aCg/OmlydCg/OmVlbnx5KXxyZWUpfGZpKD86ZnQoPzplZW58eSl8dmUpfCg/OmZvdXJ8c2l4fHNldmVufG5pbmUpKD86dGVlbnx0eSk/fGVpZ2h0KD86ZWVufHkpP3x0ZW58ZWxldmVufGZvcnR5fGh1bmRyZWR8dGhvdXNhbmR8W21iXWlsbGlvbnxhbmQpK1xiKD88IVxzKScKcl9udW1iZXIgPSByJyg/OlsxLTldWzAtOV0rfHt9KScuZm9ybWF0KHJfdGV4dG51bWJlcikgIyBEb2xsYXIgYW1vdW50CnZhbHV0YV93aXRoX251bSA9IHInezB9XHM/ezF9fHsxfVxzP3swfScuZm9ybWF0KHJfbnVtYmVyLCByX2RvbGxhcikgIyBNYWluIHJlZ2V4CmN1cnJlbmN5X3RhZ3MgPSByZS5jb21waWxlKHZhbHV0YV93aXRoX251bSkKCmZvciBzIGluIHN0cnM6CiAgICBwcmludChjdXJyZW5jeV90YWdzLmZpbmRhbGwocykpCg==