I've edited the regex expression in the fudge/general/www.inc file to match what you have put above and it has stopped Matrix from throwing the preg_match() errors and I can now enter email address for users and register users using account manager asset.
Aha! The issue you are having can be replicated in recent version of PCRE (>8.32). This has already been fixed in Squizmap #7322.
To fix this issue you will need to upgrade to Matrix version 5.1.12.2 / 5.2.4.0 at least.
Alternatively you can patch you system manually with the following changes:
diff --git a/fudge/general/www.inc b/fudge/general/www.inc
index 8a79fa1..b89fe29 100755
--- a/fudge/general/www.inc
+++ b/fudge/general/www.inc
@@ -112,10 +112,10 @@ function valid_email($e)
// dot character cannot be the first or last character in the local-part
// and it cannot appear two or more times consecutively
- if (preg_match('/^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*\s+<(['.$local.']+(\.['.$local.']+)*@(((?:[\da-zA-Z]|[\da-zA-Z][\'-\w]*[\da-zA-Z])\.)+[a-zA-Z]{2,7}))>$/', $e)) {
+ if (preg_match('/^[a-zA-Z]+(([\'\,\.\- ][a-zA-Z ])?[a-zA-Z]*)*\s+<(['.$local.']+(\.['.$local.']+)*@(((?:[\da-zA-Z]|[\da-zA-Z][\'\-\w]*[\da-zA-Z])\.)+[a-zA-Z]{2,7}))>$/', $e)) {
// matches email with display name, for example, 'Someone <some.one@squiz.net>'
return TRUE;
- } else if (preg_match('/^(['.$local.']+(\.['.$local.']+)*@(((?:[\da-zA-Z]|[\da-zA-Z][\'-\w]*[\da-zA-Z])\.)+[a-zA-Z]{2,7}))$/', $e)) {
+ } else if (preg_match('/^(['.$local.']+(\.['.$local.']+)*@(((?:[\da-zA-Z]|[\da-zA-Z][\'\-\w]*[\da-zA-Z])\.)+[a-zA-Z]{2,7}))$/', $e)) {
// matches normal email address
return TRUE;
} else {
The reason the email are still not being send is likely due to email validation still failing (the regex I provided you before was only one of the two parts of this fix).