Zakah cannot be given to a non-Muslim even if he is poor and needy. When The Prophet (ٍصلی اللہ علیہ وسلم) directed Hazrat Maaz bin Jabal (رضی اللہ عنہ) as qazi and administrator to Yemen, he instructed him: خذ من اغنیائھم و ردھا فی فقرائھم (take Zakah from the rich Muslims and return it to their poor ones.) This hadith is mentioned in all six major authentic books of Hadith. Yes, optional charities (other than Zakah) can be given to non-Muslims, since it is stated in a hadith: تصدقوا علی اھل الادیان i.e. give charities to people of other religions. (Ibn Abi Shaibah) The details can be seen in the books: Hidayah, Fathul Qadeer etc.
Allah (Subhana Wa Ta’ala) knows Best
Darul Uloom Deoband