#
# If the iterator was not stopped on a cased character, advance it to the first cased char
#
-($NotCased | $CaseIgnorable)*;
+$NotCased+;
#
# If the iterator starts on a cased item, advance through all adjacent cased items plus
#
# Reverse Rules
#
-!$NotCased* ($Cased | $CaseIgnorable)* $NotCased?;
+! $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;
\ No newline at end of file