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;