[Indic] Treat Register Shifters like Nukta

Really this time.

Fixes another 18 Khmer tests.
diff --git a/src/hb-ot-shape-complex-indic-machine.rl b/src/hb-ot-shape-complex-indic-machine.rl
index 0943b4d..a266a12 100644
--- a/src/hb-ot-shape-complex-indic-machine.rl
+++ b/src/hb-ot-shape-complex-indic-machine.rl
@@ -57,7 +57,7 @@
 Ra    = 16;
 
 c = (C | Ra);			# is_consonant
-n = (N.N? | ZWNJ?.RS);		# is_consonant_modifier
+n = ((ZWNJ?.RS)? (N.N?)?);	# is_consonant_modifier
 z = ZWJ|ZWNJ;			# is_joiner
 h = H | Coeng;			# is_halant_or_coeng
 reph = (Ra H | Repha);		# possible reph
diff --git a/src/hb-ot-shape-complex-indic.cc b/src/hb-ot-shape-complex-indic.cc
index 3f1faec..9b5b499 100644
--- a/src/hb-ot-shape-complex-indic.cc
+++ b/src/hb-ot-shape-complex-indic.cc
@@ -299,8 +299,6 @@
       info.indic_position() = consonant_position (info.codepoint);
       if (is_ra (info.codepoint))
 	info.indic_category() = OT_Ra;
-    } else if (info.indic_category() == OT_RS) {
-      info.indic_position() = POS_ABOVE_M;
     } else if (info.indic_category() == OT_SM ||
 	       info.indic_category() == OT_VD) {
       info.indic_position() = POS_SMVD;
diff --git a/test/shaping/texts/in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt b/test/shaping/texts/in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt
index c9e5443..46a8073 100644
--- a/test/shaping/texts/in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt
+++ b/test/shaping/texts/in-tree/shaper-indic/south-east-asian/script-khmer/misc/misc.txt
@@ -14,3 +14,4 @@
 ង្រ្គ
 ម៉្លេះ
 ម‌៉្លេះ
+ប៊័