# 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;