Issue #23: "^[a-zA-Z0-9]+$" is broken for FPE, fix it and simplify the cycle-walking implementation