Используйте чередование сокращенных названий месяцев. То есть используйте следующий шаблон регулярных выражений:
(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[\s-]\d{2,4}
Это говорит о том, что вы намереваетесь, а именно, чтобы соответствовать одному из 12 сокращенных названий месяцев, затем пробел / тире, затем 2 или 4 цифры.
x = 'januray valo na Feb 2017 valo Jan-2015 anj 1900 puch Janu Feb Jan Mar 15 MMMay-85 anF 15'
results = re.findall('(?:Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)[\s-]\d{2,4}', x)
print(results)
['Feb 2017', 'Jan-2015', 'Mar 15', 'May-85']
Проблема с вашим текущим шаблоном в том, что он использует класс символов :
[Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec]{3}[\s-]\d{2,4}
Это фактически означает совпадение трех букв из букв, содержащихся в названиях месяцев (плюс труба). Другими словами, вы говорите так:
[abceglnoprtuvyADFJMNOS|]{3}[\s-]\d{2,4}