diff --git a/lib/spack/spack/test/url_parse.py b/lib/spack/spack/test/url_parse.py
index 1131d2debc62b9ea4503e1ab6973d625cf23d426..65b49faaa1d51f299b3c5c694891ca7357b5c489 100644
--- a/lib/spack/spack/test/url_parse.py
+++ b/lib/spack/spack/test/url_parse.py
@@ -340,3 +340,8 @@ def test_nco_version(self):
         self.check(
             'nco', '4.6.3-alpha04',
             'https://github.com/nco/nco/archive/4.6.3-alpha04.tar.gz')
+
+    def test_yorick_version(self):
+        self.check(
+            'yorick', '2_2_04',
+            'https://github.com/dhmunro/yorick/archive/y_2_2_04.tar.gz')
diff --git a/lib/spack/spack/url.py b/lib/spack/spack/url.py
index 6921770f6c1dce6f7955f7c57c1a3094fcbe23bf..aa3867b792fe8c86d3a991e88edcf2f59fa39161 100644
--- a/lib/spack/spack/url.py
+++ b/lib/spack/spack/url.py
@@ -188,6 +188,10 @@ def parse_version_offset(path, debug=False):
         # e.g. https://github.com/petdance/ack/tarball/1.93_02
         (r'github.com/.+/(?:zip|tar)ball/v?((\d+\.)+\d+_(\d+))$', path),
 
+        # Yorick is very special.
+        # e.g. https://github.com/dhmunro/yorick/archive/y_2_2_04.tar.gz
+        (r'github.com/[^/]+/yorick/archive/y_(\d+(?:_\d+)*)$', path),
+
         # e.g. https://github.com/hpc/lwgrp/archive/v1.0.1.tar.gz
         (r'github.com/[^/]+/[^/]+/archive/v?(\w+(?:[.-]\w+)*)$', path),