Introduction to Eduction > Eduction Concepts > Case Sensitive Matches

Case Sensitive Matches
You can configure Eduction to be case sensitive, or insensitive, when matching characters. By default, it is case sensitive.
At the top level, you can configure it as case insensitive by setting the MatchCase configuration parameter to False in the configuration file. You can also configure individual grammars and entities to be case sensitive or insensitive.
If you configure case-sensitivity at a lower level, it overrides any higher level settings. For optimal control, you can set case-sensitivity at the entity level, which overrides the configuration settings at the grammar level or in the configuration file. Additionally, if you reference this entity in another entity, its own case-sensitivity setting is used.
Most of the entities in the standard grammars do not have case-sensitivity set explicitly. This allows you flexibility to set case-sensitivity in your user-defined grammars that include the standard grammars.
If you design an entity for case-insensitive matching, it is important that entries in the entity have a consistent case style to ensure that all matches are extracted correctly, regardless of case.
Case-sensitive matching generally has better performance. If you require case-insensitive matching, you can use the CaseNormalization parameter to give the same performance as case-sensitive matching.
When you want to use this parameter:
Set the MatchCase configuration parameter to True.
Set CaseNormalization to:
LOWER if all your entities are lowercase
UPPER if all your entities are uppercase.
Eduction normalizes the input accordingly before the (case-sensitive) matching.
Because both your input and grammars are all in the same case, the matching is effectively case insensitive. However, it has the performance benefits of case-sensitive matching.
Case Sensitivity and Configured Field Names
You can set the CaseSensitiveFieldName configuration parameter to 1 to preserve the case and case sensitivity of configured field names in your output. See CaseSensitiveFieldName for more information.