static Position getSAN_EndPosition(String san) throws Exception {
        int file = -1, rank = -1;
        char c;
        for (int i = san.length() - 1; i > -1; i--) {
            if (rank == -1) {
                c = san.charAt(i);
                if (c >= '1' && c <= '8') {
                    rank = c - '1';
                }
            } else {
                c = san.charAt(i);
                if (c >= 'a' && c <= 'h') {
                    file = c - 'a';
                    return getPosition(rank, file);
                }
            }
        }
        throw new Exception("Not a valid Standard Arithmetic Notation");
    }