# # Title Casing Break Rules # $CaseIgnorable = [[:Mn:][:Me:][:Cf:][:Lm:][:Sk:] \u0027 \u00AD \u2019]; $OtherUpperCase = [\u2160-\u216f \u24b6-\u24cf]; $OtherLowerCase = [\u02b0-\u02b8 \u02c0-\u02c1 \u02e0-\u02e4 \u0345\u037a \u2170-\u217f \u24d0-\u24e9]; $Cased = [[:Lu:][:Lt:][:Ll:] $OtherUpperCase $OtherLowerCase - $CaseIgnorable]; $NotCased = [^ $Cased $CaseIgnorable]; # # 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*;