Hi all, I somehow just couldn't get my regular expression syntax correct. Will you please help me? some examples of my valid string is: sinx0401-001-45 hkgx0403-020-12 jktx0402-000-01 bkkx0407-013-44 the definition is: 1st 4 characters - can only be "sinx" or "hkgx" or "bkkx" or "jktx" next 4 characters - numbers 0 to 9 next 1 character - a dash "-" next 3 characters - numbers 0 to 9 next 1 character - a dash "-" last 2 characters - numbers 0 to 9 my problem is how can i make sure the first 4 characters are either "sinx" or "hkgx" or "bkkx" or "jktx"? I've tried: eregi("[(sinx)|(hkgx)|(bkkx)|(jktx)][0-9]{4}\-[0-9]{3}\-[0-9]{2}$", $string) but this condition returns a TRUE if the 4th character in the string is "x"! that means, if my $string = "xxxx0408-001-54", this condition returns me with TRUE! i also tried the following but they didn't give me the correct results: eregi("^[(sinx)|(hkgx)|(bkkx)|(jktx)]{4}[0-9]{4}\-[0-9]{3}\-[0-9]{2}$", $string) eregi("[(sinx)|(hkgx)|(bkkx)|(jktx)]{4}[0-9]{4}\-[0-9]{3}\-[0-9]{2}$", $string) eregi("(sinx)|(hkgx)|(bkkx)|(jktx)[0-9]{4}\-[0-9]{3}\-[0-9]{2}$", $string) eregi("^(sinx)|(hkgx)|(bkkx)|(jktx)[0-9]{4}\-[0-9]{3}\-[0-9]{2}$", $string) does anyone have any suggestions? Thank you! Hwee