法语字符的正则表达式无法根据法语字符的位置进行验证

Regex for french characters fails validation based on the position of french character

在我的代码中,我有一个密码正则表达式(由某人编写) (/^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\x20-\x7E]{8,40}$/) 不支持法语字符。 我对其进行了一些修改以支持法语字符。和 /^(?=.*[a-z])(?=.*[A-Z])(?:.*[àâäæèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]*)(?=.*\d)[\x20-\x7E]{8,40}$/ 是新的正则表达式。但是这个没有按预期工作。行为随着法语字符的位置而改变。 例如NewàTest123! - 作品和 NewTàest123!不工作

有没有想过为什么当角色位置改变时它会失败?

工作正则表达式:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[\x20-\x7EàâäæèéêëîïôœùûüÿçÀÂÄÈÉÊËÎÏÔŒÙÛÜŸÇ]{8,40}$

感谢@Wiktor Stribiżew