diff --git a/Library/Homebrew/test/language/node_spec.rb b/Library/Homebrew/test/language/node_spec.rb
index 0501297b7cf9018ddbb2b73a66388acd67b04b98..79c3cf249692976cd36257c2a7ff264735171d83 100644
--- a/Library/Homebrew/test/language/node_spec.rb
+++ b/Library/Homebrew/test/language/node_spec.rb
@@ -6,7 +6,7 @@ describe Language::Node do
   describe "#setup_npm_environment" do
     it "calls prepend_path when node formula exists only during the first call" do
       node = formula "node" do
-        url "node-test"
+        url "node-test-v1.0"
       end
       stub_formula_loader(node)
       expect(ENV).to receive(:prepend_path)
diff --git a/Library/Homebrew/test/version_spec.rb b/Library/Homebrew/test/version_spec.rb
index 9b10aed3a28992ee10029b355a7ebfa0bb2bdda8..60128a8a2c8598cdadd0672c39f6eee65de4ac48 100644
--- a/Library/Homebrew/test/version_spec.rb
+++ b/Library/Homebrew/test/version_spec.rb
@@ -686,7 +686,7 @@ describe Version do
 
     specify "from tag" do
       expect(described_class.create("1.2.3"))
-        .to be_detected_from("https://github.com/foo/bar.git", tag: "v1.2.3")
+        .to be_detected_from("https://github.com/foo/bar.git", tag: "v1.2.3-stable")
     end
 
     specify "beta from tag" do
diff --git a/Library/Homebrew/version.rb b/Library/Homebrew/version.rb
index 8ca79245ca3acf1aba2560d148fd6954063e33c4..27116a243e94a30c138070333a05013067e53791 100644
--- a/Library/Homebrew/version.rb
+++ b/Library/Homebrew/version.rb
@@ -336,11 +336,11 @@ class Version
     return m.captures.first unless m.nil?
 
     # e.g. https://www.openssl.org/source/openssl-0.9.8s.tar.gz
-    m = /-v?([^-]+)/.match(stem)
+    m = /-v?(\d[^-]+)/.match(stem)
     return m.captures.first unless m.nil?
 
     # e.g. astyle_1.23_macosx.tar.gz
-    m = /_([^_]+)/.match(stem)
+    m = /_v?(\d[^_]+)/.match(stem)
     return m.captures.first unless m.nil?
 
     # e.g. http://mirrors.jenkins-ci.org/war/1.486/jenkins.war