Strings may have locale-specific characters included, which should be identified as part of the key, as described below. Those keys which have several values should have a semicolon as the trailing character. The locale entries should match those of the standard C library. Case is significant. The same holds for group names.
Key values are case sensitive as well.
If a key is optional it may or may not be present in the file. However, if it isn't, the implementation of the standard should not blow up, it must provide some sane defaults. Additionally, keys either MUST or MAY be supported by a particular implementation. Some keys only make sense in the context when another particular key is also present. The following table is 100 columns wide.