Well, this is very strange and I don't know what is going on. I almost suspect 
some sort of bug in the regex processor in SA.

replace_tag N1      (?:1|l|\xf0\x9d\x9f\x8f)
replace_tag DIGIT   (?:[0-9Ol]|\xf0\x9d\x9f[\x8e-\x97])
replace_rules       OB_PHONE_TEST4 OB_PHONE_TEST5 OB_PHONE_TEST6

body OB_PHONE_TEST4 
/\b(?:\+?\s?<N1>\s?)?\(?<DIGIT>{3}\)?[-\s]{0,3}<DIGIT>{3}[-\s]{0,3}\b/
body OB_PHONE_TEST5 
/\b(?:\+?\s?<N1>\s?)?\(?<DIGIT>{3}\)?[\s-]{0,3}<DIGIT>{3}[\s-]{0,3}<DIGIT>{4}/
body OB_PHONE_TEST6                     
/\(?<DIGIT>{3}\)?[\s-]{0,3}<DIGIT>{3}[\s-]{0,3}<DIGIT>{4}/

Rules 4 and 6 match. Rule 5, which is the complete match, does not. I have no 
idea why.
I was getting the same results using your rule form before I simplified things 
a bit. Partial overlapping matches work, a complete match does not. The 
complete match DOES work if the phone number is in ASCII. But not if any digit 
is unicode.

Reply via email to