title.txt revision ac04d0bbe12b3ef54518635711412f178cb4d16
1ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru# Copyright (c) 2002-2003, International Business Machines Corporation and
2ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru# others. All Rights Reserved.
3ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#
4ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#  Title Casing Break Rules
5ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#
6ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
7ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru$CaseIgnorable   = [[:Mn:][:Me:][:Cf:][:Lm:][:Sk:] \u0027 \u00AD \u2019];
8ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru$Cased           = [[:Upper_Case:][:Lower_Case:][:Lt:]  - $CaseIgnorable];
9ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru$NotCased        = [^ $Cased];
10ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
11ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#
12ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#  If the iterator was not stopped on a cased character, advance it to the first cased char
13ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#
14ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru$NotCased+;
15ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
16ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#
17ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#  If the iterator starts on a cased item, advance through all adjacent cased items plus
18ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#    any non-cased stuff, to reach the start of the next word.
19ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#
20ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru$Cased ($Cased | $CaseIgnorable)* $NotCased*;
21ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
22ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#
23ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#  Reverse Rules
24ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#
25ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
26ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru! $NotCased+;
27ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru
28ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#
29ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#  If the iterator starts on a cased item, advance through all adjacent cased items plus
30ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#    any non-cased stuff, to reach the start of the next word.
31ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru#
32ac04d0bbe12b3ef54518635711412f178cb4d16Jean-Baptiste Queru! $NotCased* ($Cased | $CaseIgnorable)* $Cased;