Fix RegExp for version pattern (#63)

Escape the `.` character instead of allowing
any character in between the digits.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index ae26139..6f0d45b 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,4 +1,7 @@
-# 2.1.1-dev
+# 2.1.1
+
+- Fixed the version parsing pattern to only accept dots between version
+  components.
 
 # 2.1.0
 - Added `Version.canonicalizedVersion` to help scrub leading zeros and highlight
diff --git a/lib/src/patterns.dart b/lib/src/patterns.dart
index d5f1897..03119ac 100644
--- a/lib/src/patterns.dart
+++ b/lib/src/patterns.dart
@@ -4,7 +4,7 @@
 
 /// Regex that matches a version number at the beginning of a string.
 final startVersion = RegExp(r'^' // Start at beginning.
-    r'(\d+).(\d+).(\d+)' // Version number.
+    r'(\d+)\.(\d+)\.(\d+)' // Version number.
     r'(-([0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*))?' // Pre-release.
     r'(\+([0-9A-Za-z-]+(\.[0-9A-Za-z-]+)*))?'); // Build.
 
diff --git a/pubspec.yaml b/pubspec.yaml
index ca45a9e..99392f5 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -1,5 +1,5 @@
 name: pub_semver
-version: 2.1.1-dev
+version: 2.1.1
 description: >-
  Versions and version constraints implementing pub's versioning policy. This
  is very similar to vanilla semver, with a few corner cases.
diff --git a/test/version_test.dart b/test/version_test.dart
index 467d0b7..2979706 100644
--- a/test/version_test.dart
+++ b/test/version_test.dart
@@ -300,6 +300,7 @@
         equals(Version(1, 0, 0, pre: 'rc-1', build: 'build-1')));
 
     expect(() => Version.parse('1.0'), throwsFormatException);
+    expect(() => Version.parse('1a2b3'), throwsFormatException);
     expect(() => Version.parse('1.2.3.4'), throwsFormatException);
     expect(() => Version.parse('1234'), throwsFormatException);
     expect(() => Version.parse('-2.3.4'), throwsFormatException);