TODO Check Regexes and add unsupported now countries ```elixir "AA" => %{length: 16, rule: ~r/^[0-9A-Z]{12}$/i}, "AO" => %{length: 25, rule: ~r/^[0-9]{21}$/i}, "AX" => %{length: 18, rule: ~r/^[0-9]{14}$/i}, "BF" => %{length: 27, rule: ~r/^[0-9]{23}$/i}, "BI" => %{length: 16, rule: ~r/^[0-9]{12}$/i}, "BJ" => %{length: 28, rule: ~r/^[A-Z]{1}[0-9]{23}$/i}, "BL" => %{length: 27, rule: ~r/^[0-9]{10}[0-9A-Z]{11}[0-9]{2}$/i}, "BY" => %{length: 28, rule: ~r/^[0-9A-Z]{4}[0-9]{4}[0-9A-Z]{16}$/i}, "CF" => %{length: 27, rule: ~r/^[0-9]{23}$/i}, "CG" => %{length: 27, rule: ~r/^[0-9]{23}$/i}, "CI" => %{length: 28, rule: ~r/^[A-Z]{1}[0-9]{23}$/i}, "CM" => %{length: 27, rule: ~r/^[0-9]{23}$/i}, "CV" => %{length: 25, rule: ~r/^[0-9]{21}$/i}, "DJ" => %{length: 27, rule: ~r/^[0-9]{23}$/i}, "DZ" => %{length: 24, rule: ~r/^[0-9]{20}$/i}, "GA" => %{length: 27, rule: ~r/^[0-9]{23}$/i}, "GF" => %{length: 27, rule: ~r/^[0-9]{10}[0-9A-Z]{11}[0-9]{2}$/i}, "GP" => %{length: 27, rule: ~r/^[0-9]{10}[0-9A-Z]{11}[0-9]{2}$/i}, "GQ" => %{length: 27, rule: ~r/^[0-9]{23}$/i}, "GW" => %{length: 25, rule: ~r/^[0-9A-Z]{2}[0-9]{19}$/i}, "HN" => %{length: 28, rule: ~r/^[A-Z]{4}[0-9]{20}$/i}, "IE" => %{length: 22, rule: ~r/^[A-Z]{4}[0-9]{14}$/i}, "IQ" => %{length: 23, rule: ~r/^[0-9A-Z]{4}[0-9]{15}$/i}, "IR" => %{length: 26, rule: ~r/^[0-9]{22}$/i}, "IS" => %{length: 26, rule: ~r/^[0-9]{22}$/i}, "KM" => %{length: 27, rule: ~r/^[0-9]{23}$/i}, "LC" => %{length: 32, rule: ~r/^[A-Z]{4}[0-9A-Z]{24}$/i}, "MA" => %{length: 28, rule: ~r/^[0-9]{24}$/i}, "MF" => %{length: 27, rule: ~r/^[0-9]{10}[0-9A-Z]{11}[0-9]{2}$/i}, "MG" => %{length: 27, rule: ~r/^[0-9]{23}$/i}, "MK" => %{length: 19, rule: ~r/^[0-9]{3}[0-9A-Z]{10}[0-9]{2}$/i}, "ML" => %{length: 28, rule: ~r/^[A-Z]{1}[0-9]{23}$/i}, "MQ" => %{length: 27, rule: ~r/^[0-9]{10}[0-9A-Z]{11}[0-9]{2}$/i}, "MU" => %{length: 30, rule: ~r/^[A-Z]{4}[0-9]{19}[A-Z]{3}$/i}, "MZ" => %{length: 25, rule: ~r/^[0-9]{21}$/i}, "NC" => %{length: 27, rule: ~r/^[0-9]{10}[0-9A-Z]{11}[0-9]{2}$/i}, "NE" => %{length: 28, rule: ~r/^[A-Z]{2}[0-9]{22}$/i}, "NI" => %{length: 32, rule: ~r/^[A-Z]{4}[0-9]{24}$/i}, "PF" => %{length: 27, rule: ~r/^[0-9]{10}[0-9A-Z]{11}[0-9]{2}$/i}, "PM" => %{length: 27, rule: ~r/^[0-9]{10}[0-9A-Z]{11}[0-9]{2}$/i}, "PS" => %{length: 29, rule: ~r/^[A-Z]{4}[0-9A-Z]{21}$/i}, "QA" => %{length: 29, rule: ~r/^[A-Z]{4}[0-9]{4}[0-9A-Z]{17}$/i}, "RE" => %{length: 27, rule: ~r/^[0-9]{10}[0-9A-Z]{11}[0-9]{2}$/i}, "SC" => %{length: 31, rule: ~r/^[A-Z]{4}[0-9]{20}[A-Z]{3}$/i}, "SN" => %{length: 28, rule: ~r/^[A-Z]{1}[0-9]{23}$/i}, "ST" => %{length: 25, rule: ~r/^[0-9]{8}[0-9]{13}$/i}, "TD" => %{length: 27, rule: ~r/^[0-9]{23}$/i}, "TF" => %{length: 27, rule: ~r/^[0-9]{10}[0-9A-Z]{11}[0-9]{2}$/i}, "TG" => %{length: 28, rule: ~r/^[A-Z]{2}[0-9]{22}$/i}, "TN" => %{length: 24, rule: ~r/^[0-9]{20}$/i}, "WF" => %{length: 27, rule: ~r/^[0-9]{10}[0-9A-Z]{11}[0-9]{2}$/i}, "YT" => %{length: 27, rule: ~r/^[0-9]{10}[0-9A-Z]{11}[0-9]{2}$/i} ```