diff --git a/README.md b/README.md
index 88990e5..054a9d4 100644
--- a/README.md
+++ b/README.md
@@ -6,7 +6,7 @@ A plugin that adds NASM support for the IntelliJ Platform IDEs.
 
 # Features
 
-Version v0.4-beta.4 pre-release
+Version v0.4-beta.5 pre-release
 
     FPU, MMX, SSE, SSE2, SSE3, SSE4, AVX, AVX2, AVX512, Virtualization, and General instruction support.
     Syntax highlighting.
@@ -23,9 +23,9 @@ Version v0.4-beta.4 pre-release
 - Goto Symbol
 - Debugger Support
 
-# v0.4-beta.4 Changes
+# v0.4-beta.5 Changes
     
-    Macro parameters can now be any expression or mnemonic.
+    Added size type prefix for registers.
 
 # Complete Changelog
 
@@ -70,6 +70,7 @@ Version v0.4-beta.4 pre-release
     Began adding more conditions for conditional expressions.
     Added ability to use non-local to macro labels.
     Macro parameters can now be any expression or mnemonic.
+    Added size type prefix for registers.
 
 # License
 
diff --git a/gen/com/nasmlanguage/parser/NASMParser.java b/gen/com/nasmlanguage/parser/NASMParser.java
index 77fb5d1..fbb9351 100644
--- a/gen/com/nasmlanguage/parser/NASMParser.java
+++ b/gen/com/nasmlanguage/parser/NASMParser.java
@@ -2680,17 +2680,25 @@ private static boolean Address_0_0(PsiBuilder b, int l) {
     return true;
   }
 
-  // REGISTER
+  // SIZE_TYPE? REGISTER
   public static boolean Reg(PsiBuilder b, int l) {
     if (!recursion_guard_(b, l, "Reg")) return false;
-    if (!nextTokenIsSmart(b, REGISTER)) return false;
+    if (!nextTokenIsSmart(b, REGISTER, SIZE_TYPE)) return false;
     boolean r;
-    Marker m = enter_section_(b);
-    r = consumeTokenSmart(b, REGISTER);
-    exit_section_(b, m, REG, r);
+    Marker m = enter_section_(b, l, _NONE_, REG, "<reg>");
+    r = Reg_0(b, l + 1);
+    r = r && consumeToken(b, REGISTER);
+    exit_section_(b, l, m, r, false, null);
     return r;
   }
 
+  // SIZE_TYPE?
+  private static boolean Reg_0(PsiBuilder b, int l) {
+    if (!recursion_guard_(b, l, "Reg_0")) return false;
+    consumeTokenSmart(b, SIZE_TYPE);
+    return true;
+  }
+
   // SEGMENT_REGISTER
   public static boolean Seg(PsiBuilder b, int l) {
     if (!recursion_guard_(b, l, "Seg")) return false;
diff --git a/gen/com/nasmlanguage/psi/NASMReg.java b/gen/com/nasmlanguage/psi/NASMReg.java
index fe43184..c72e228 100644
--- a/gen/com/nasmlanguage/psi/NASMReg.java
+++ b/gen/com/nasmlanguage/psi/NASMReg.java
@@ -10,4 +10,7 @@ public interface NASMReg extends NASMExpr {
   @NotNull
   PsiElement getRegister();
 
+  @Nullable
+  PsiElement getSizeType();
+
 }
diff --git a/gen/com/nasmlanguage/psi/impl/NASMRegImpl.java b/gen/com/nasmlanguage/psi/impl/NASMRegImpl.java
index ff6d44c..9ae2888 100644
--- a/gen/com/nasmlanguage/psi/impl/NASMRegImpl.java
+++ b/gen/com/nasmlanguage/psi/impl/NASMRegImpl.java
@@ -31,4 +31,10 @@ public PsiElement getRegister() {
     return findNotNullChildByType(REGISTER);
   }
 
+  @Override
+  @Nullable
+  public PsiElement getSizeType() {
+    return findChildByType(SIZE_TYPE);
+  }
+
 }
diff --git a/resources/META-INF/plugin.xml b/resources/META-INF/plugin.xml
index 98c2b7c..bb223fe 100644
--- a/resources/META-INF/plugin.xml
+++ b/resources/META-INF/plugin.xml
@@ -1,13 +1,13 @@
 <idea-plugin>
     <id>com.nasmlanguage</id>
     <name>NASM Assembly Language</name>
-    <version>0.4-beta.4</version>
+    <version>0.4-beta.5</version>
     <vendor email="aidankhoury@gmail.com" url="https://github.com/ajkhoury">Aidan Khoury</vendor>
 
     <description><![CDATA[
         <h1>NASM assembly language for JetBrains IDEs</h1>
         <br>
-        <h2>Version v0.4-beta.4 pre-release</h2>
+        <h2>Version v0.4-beta.5 pre-release</h2>
         <br>
         <h3>Features</h3>
         <ul>
@@ -72,6 +72,7 @@
             <li>Began adding more conditions for conditional expressions.</li>
             <li>Added ability to use non-local to macro labels.</li>
             <li>Macro parameters can now be any expression or mnemonic.</li>
+            <li>Added size type prefix for registers.</li>
         </ul>
     ]]>
     </change-notes>
diff --git a/src/com/nasmlanguage/NASM.bnf b/src/com/nasmlanguage/NASM.bnf
index 993c36e..7aed5a7 100644
--- a/src/com/nasmlanguage/NASM.bnf
+++ b/src/com/nasmlanguage/NASM.bnf
@@ -424,7 +424,7 @@ ParenthesisNumericExpr ::= ROUND_L NumericExpr ROUND_R { pin(".*")=1 extends=Num
 NumericLiteral ::= ((SIZE_TYPE (BITWISE_NOT|MINUS|PLUS)?)? (BINARY|ZEROES|HEXADECIMAL|DECIMAL|CHARACTER)) { extends=Expr }
 Identifier ::= ID { extends=Expr mixin="com.nasmlanguage.psi.impl.NASMNamedElementImpl" implements="com.nasmlanguage.psi.NASMNamedElement" methods=[getName setName getNameIdentifier getReferences getPresentation] }
 LabelIdentifier ::= (SIZE_TYPE? (LBL|ID)) { extends=Expr }
-Reg ::= REGISTER { extends=Expr }
+Reg ::= SIZE_TYPE? REGISTER { extends=Expr }
 Seg ::= SEGMENT_REGISTER { extends=Expr }
 Str ::= STRING { extends=Expr }
 StructureField ::= STRUCT_FIELD { extends=Expr }