zeros = "0000000000" for (var i = 0; i < 12; i += 1) zeros += zeros nines = "9999999999" for (var i = 0; i < 12; i += 1) nines += nines ometa M { zero = '0', one = '1', two = '2', three = '3', four = '4', five = '5', six = '6', seven = '7', eight = '8', nine = '9', digit = zero | one | two | three | four | five | six | seven | eight | nine, digits = digit*, xdigit = zero || one || two || three || four || five || six || seven || eight || nine, xdigits = xdigit* } start = (new Date()).getTime() M.matchAll(zeros, "digits") t1 = (new Date()).getTime() - start // 908 775 870 start = (new Date()).getTime() M.matchAll(nines, "digits") t1 = (new Date()).getTime() - start // 2903 2870 2943 start = (new Date()).getTime() M.matchAll(zeros, "xdigits") t1 = (new Date()).getTime() - start // 2877 2934 2897 start = (new Date()).getTime() M.matchAll(nines, "xdigits") t1 = (new Date()).getTime() - start // 2930 3048 2875 M.disableXORs() start = (new Date()).getTime() M.matchAll(zeros, "xdigits") t1 = (new Date()).getTime() - start // 804 867 786 start = (new Date()).getTime() M.matchAll(nines, "xdigits") t1 = (new Date()).getTime() - start // 2919 2899 2891