import java.util.regex.Pattern;

public class UserRegistration {
    
    // Regex für Benutzernamen, nur Buchstaben und Zahlen
    private static final Pattern USERNAME_PATTERN = Pattern.compile("^[A-Za-z0-9]{3,15}$");

    public static boolean registerUser(String username, String password, String email) throws RegistrationException {
        if (!USERNAME_PATTERN.matcher(username).matches()) {
            throw new RegistrationException("Invalid username. Only letters and numbers allowed, 3-15 characters.");
        }

        if (password.length() < 8 || password.length() > 20) {
            throw new RegistrationException("Invalid password length. Password must be 8-20 characters.");
        }

        if (!EmailMatcher.isValidEmail(email)) {
            throw new RegistrationException("Invalid email format.");
        }

        return true;
    }
}


class RegistrationException extends Exception {
	RegistrationException(String msg) { super(msg); } 
}