diff --git a/features.admin.inc b/features.admin.inc
index ff8d63c..9ecef1e 100644
--- a/features.admin.inc
+++ b/features.admin.inc
@@ -153,8 +153,8 @@ function features_export_form($form_state, $feature = NULL) {
 function features_export_form_validate_field($element, &$form_state) {
   switch ($element['#name']) {
     case 'module_name':
-      if (!preg_match('!^[a-z0-9_]+$!', $element['#value'])) {
-        form_error($element, t('The machine-readable name must contain only lowercase letters, numbers, and underscores.'));
+      if (!preg_match('/^[abcdefghijklmnopqrstuvwxyz][abcdefghijklmnopqrstuvwxyz0-9_]{0,254}$/', $element['#value'])) {
+        form_error($element, t('The machine-readable name needs to start with a letter and contain only lowercase letters, numbers, and underscores.'));
       }
       // If user is filling out the feature name for the first time and uses
       // the name of an existing module throw an error.
