# 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 | $CaseIgnorable)*;

#
#  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* ($Cased | $CaseIgnorable)* $NotCased?;

