Thanks Adam and Paul for responding.
The manual does indicate that only JavaScript compatible
patterns will work in CFPARAM and that does indicate using the
longhand Unicode syntax which doesn't suck a bit, it SUCKS A
LOT!!!!
The only way I have found to overcome the issue is to wrap my
cfparam in a try/catch, use the basic JS compatible pattern eg \w ,
and when it throws an error do a negative test using the POSIX
style class. Then if that fails I know I have a character that is
unacceptable and so I can rethrow the original error. EG:
<cftry>
<cfparam name="FORM.houseNo" type="regex"
pattern="[-a-zA-z0-9_#]+|\s{1}" default="32">
<cfcatch type="any">
<cfif ReFindNoCase("[^[:print:]]+",FORM.houseNo,1,"true")
>
<!--- Fail here - doesn't match ASCII Or UNICODE --->
<cfrethrow>
</cfif>
</cfcatch>
</cftry>
Of course I then need to wrap all my individual try/catch
cfparam blocks with another try / catch block just so I can pick up
the rethrows.
This is so ugly I am thinking of removing my cfparam tags
altogether and just going with the regular expression checks.