diff --git a/pyopencl/tools.py b/pyopencl/tools.py
index 3efbeaafd07f7ccf66ca4ac7de3d936401f4e091..ecb92c354fa466dfc5de5a83e2c06046e8baa8f1 100644
--- a/pyopencl/tools.py
+++ b/pyopencl/tools.py
@@ -184,7 +184,7 @@ def parse_c_arg(c_arg):
 
     # process and remove declarator
     import re
-    decl_re = re.compile(r"(\**)\s*([_a-zA-Z]+)(\s*\[[ 0-9]*\])*\s*$")
+    decl_re = re.compile(r"(\**)\s*([_a-zA-Z0-9]+)(\s*\[[ 0-9]*\])*\s*$")
     decl_match = decl_re.search(c_arg)
 
     if decl_match is None: