TyPe LiKe ThIs AnD iRrItAtE yOuR fRiEnDs Your goal is to alternate uppercase and lowercase letters, while ignoring non-alphaneumeric characters.

Input =&gt; Output
abc =&gt; aBc OR AbC
a c =&gt; A c OR a C
abc123abc =&gt; AbC123aBc OR aBc123AbC


Shortest answer wins.
JavaScript, 116

s=&gt;{x=!0;return s.split("").map(e=&gt;{if(e.match(/[a-zA-Z]/))x=!x;return x?e.toUpperCase():e.toLowerCase()}).join("")}


Saved two bytes thanks to NTCG