# [Grime], 16 bytes e`..|!.*.^-d\0.* [Try it online!] [Grime]: https://github.com/iatorm/grime [Try it online!]: https://tio.run/nexus/grime#@5@aoKdXo6inpRenmxJjoKf1/390dKyOgiEQGcQCAA "Grime – TIO Nexus" The `e` tells Grime to try and match the entire input and print `0` or `1` depending on whether that's possible. The `|!` is effectively a "neither" operator, because `x|!y` is shorthand for `(x|y)!`. So we make sure that the input is neither a string of only two characters (`[]`) nor contains a zero preceded by a non-digit. A note about the second half: `.` matches any character, `d` matches any digit and `-` is boolean difference (so we require it to match one character, but disallow that character to be a digit). The only issue is that `-` has lower precedence than concatenation so we'd have to add parentheses. But Grime has a really nifty feature where you can change the operator precedence. `^-` is like `-` but with higher precedence than any other operator, which is the same as wrapping it and its arguments in parentheses and saves a byte.