"implementation-defined" characters. In practice, C compilers follow the above pattern, with the
addition of the @samp{$} character.
+@item UTF-8 Encoded Unicode Code Point
+@verbatim
+[\x09\x0A\x0D\x20-\x7E]|[\xC2-\xDF][\x80-\xBF]|\xE0[\xA0-\xBF][\x80-\xBF]|[\xE1-\xEC\xEE\xEF]([\x80-\xBF]{2})|\xED[\x80-\x9F][\x80-\xBF]|\xF0[\x90-\xBF]([\x80-\xBF]{2})|[\xF1-\xF3]([\x80-\xBF]{3})|\xF4[\x80-\x8F]([\x80-\xBF]{2})
+@end verbatim
+
@end table
@node Quoted Constructs, Addresses, Identifiers, Common Patterns
{
++rulelen;
- if ( caseins && $1 >= 'A' && $1 <= 'Z' )
+ if ( caseins && isupper($1))
$1 = clower( $1 );
if ($1 == nlch)
| ccl CHAR
{
- if ( caseins && $2 >= 'A' && $2 <= 'Z' )
+ if ( caseins && isupper($2))
$2 = clower( $2 );
ccladd( $1, $2 );
string : string CHAR
{
- if ( caseins && $2 >= 'A' && $2 <= 'Z' )
+ if ( caseins && isupper($2))
$2 = clower( $2 );
if ( $2 == nlch )