Fixed: extension matching should take upper and lowercase variants into account