Should additional security measures like mysqli::real_escape_string() or htmlspecialchars() be used in conjunction with RegEx for user input validation in PHP?

When using regular expressions (RegEx) for user input validation in PHP, it is also recommended to use additional security measures like mysqli::real_escape_string() or htmlspecialchars() to prevent SQL injection and cross-site scripting attacks. These functions help sanitize user input and make it safe to use in database queries or display on web pages.

// Example of using RegEx with additional security measures
$user_input = $_POST['user_input'];

// Validate user input using RegEx
if (preg_match('/^[a-zA-Z0-9]+$/', $user_input)) {
    // Sanitize user input using mysqli::real_escape_string()
    $safe_input = $mysqli->real_escape_string($user_input);

    // Or sanitize user input using htmlspecialchars()
    $safe_input = htmlspecialchars($user_input);

    // Use the sanitized input in your code
    // For example, in a database query
    $query = "SELECT * FROM users WHERE username = '$safe_input'";
}