diff --git a/misc-scripts/stable_id_lookup/populate_stable_id_lookup.pl b/misc-scripts/stable_id_lookup/populate_stable_id_lookup.pl
index 3bccf29c46382b3b281e02c0e189612a038f45c3..e004725a78d85dc94f714a3f493d3256b91582e9 100644
--- a/misc-scripts/stable_id_lookup/populate_stable_id_lookup.pl
+++ b/misc-scripts/stable_id_lookup/populate_stable_id_lookup.pl
@@ -224,7 +224,7 @@ sub process_dbs {
 
   foreach my $db (@dbs) {
 
-    if ( $db =~ /([\w\_]+)_(core|otherfeatures)_([\d\_\w]+)/ )
+    if ( $db =~ /([a-z]+_[a-z0-9]+(?:_[a-z0-9]+)?_([a-z]+)(?:_\d+)?)_(\d+)_\w+/ )
     {
       my ( $species, $dbtype, $dbversion ) = ( $1, $2, $3 );
       print "SPECIES: $species\tDBTYPE $dbtype\tDBVERSION: $dbversion\n";