##C, <s>112</s> <s>101</s> <s>96</s> <s>98</s> 104 bytes *Thanks to @MartinEnder for saving <s>5</s> 3 bytes <s>while fixing my code</s>!* <!-- language: lang:c --> j,i,k,l;f(char*s){l=strlen(s);for(i=l,j=k=0;j<l;)k+=(s[j++]-48)*(i>1?i--:-1);return!(k%11)&&k&&(l^8)<2;} Returns 0 if invalid, 1 if valid. <a href="https://tio.run/nexus/c-gcc#DcVLDoIwEADQvbeQhGYG2sQpLohD9SBGE6IQ@rGaFleEs6Nv8zYnrfQy8AiPqU9VxiWYPKcwRMjI4zuBNUE6482BXRcYfW0gX11d39SxxQrsmS5WqZMi5DTM3xT34EsiFMILAeHeYqd53b16GwGXT7JxHqEon4X8R0Ra66ZpCkRet@0H" title="C (gcc) – TIO Nexus">Try it online!</a>