| # Copyright (c) 2002-2003, International Business Machines Corporation and |
| # others. All Rights Reserved. |
| # |
| # Title Casing Break Rules |
| # |
| |
| $CaseIgnorable = [[:Mn:][:Me:][:Cf:][:Lm:][:Sk:] \u0027 \u00AD \u2019]; |
| $Cased = [[:Upper_Case:][:Lower_Case:][:Lt:] - $CaseIgnorable]; |
| $NotCased = [^ $Cased]; |
| |
| # |
| # If the iterator was not stopped on a cased character, advance it to the first cased char |
| # |
| $NotCased+; |
| |
| # |
| # If the iterator starts on a cased item, advance through all adjacent cased items plus |
| # any non-cased stuff, to reach the start of the next word. |
| # |
| $Cased ($Cased | $CaseIgnorable)* $NotCased*; |
| |
| # |
| # Reverse Rules |
| # |
| |
| ! $NotCased+; |
| |
| # |
| # If the iterator starts on a cased item, advance through all adjacent cased items plus |
| # any non-cased stuff, to reach the start of the next word. |
| # |
| ! $NotCased* ($Cased | $CaseIgnorable)* $Cased; |