diff --git a/perl-fig/Dist/lib/Graphics/Fig/Arc.pm b/perl-fig/Dist/lib/Graphics/Fig/Arc.pm
index 9f78d25..ce4b5b3 100644
--- a/perl-fig/Dist/lib/Graphics/Fig/Arc.pm
+++ b/perl-fig/Dist/lib/Graphics/Fig/Arc.pm
@@ -22,7 +22,6 @@ use warnings;
 use utf8;
 use Carp;
 use Math::Trig;
-use Regexp::Common qw /number/;
 use Graphics::Fig::Color;
 use Graphics::Fig::Ellipse;
 use Graphics::Fig::Matrix;
@@ -30,6 +29,12 @@ use Graphics::Fig::Parameters;
 use Graphics::Fig::Arc;
 
 #
+# RE_INT: regular expression matching an integer
+#
+my $RE_INT = '(?:(?:[-+]?)(?:[0123456789]+))';
+
+
+#
 # Graphics::Fig::Arc::convertSubtype
 #   $fig:     Fig instance
 #   $prefix:  error message prefix
@@ -51,7 +56,7 @@ sub convertSubtype {
     if ($value eq "pie" || $value eq "pie-wedge" || $value eq "closed") {
 	return 2;
     }
-    if (!($value =~ s/^\s*($RE{num}{int})//)) {
+    if (!($value =~ s/^\s*(${RE_INT})//)) {
 	croak("${prefix}: ${value}: error: expected open or pie");
     }
     if ($value != 1 && $value != 2) {
@@ -82,7 +87,7 @@ sub convertDirection {
     if ($value eq "counterclockwise" || $value eq "ccw") {
 	return 1;
     }
-    if (!($value =~ s/^\s*($RE{num}{int})//)) {
+    if (!($value =~ s/^\s*(${RE_INT})//)) {
 	croak("${prefix}: ${value}: error: expected clockwise or " .
 			                   "counterclockwise");
     }
diff --git a/perl-fig/Dist/lib/Graphics/Fig/Compound.pm b/perl-fig/Dist/lib/Graphics/Fig/Compound.pm
index 0d3a12e..52ac77c 100644
--- a/perl-fig/Dist/lib/Graphics/Fig/Compound.pm
+++ b/perl-fig/Dist/lib/Graphics/Fig/Compound.pm
@@ -22,7 +22,6 @@ use warnings;
 use utf8;
 use Carp;
 use POSIX qw(floor ceil);
-use Regexp::Common qw /number/;
 use Graphics::Fig::Parameters;
 
 #
diff --git a/perl-fig/Dist/lib/Graphics/Fig/Ellipse.pm b/perl-fig/Dist/lib/Graphics/Fig/Ellipse.pm
index f9827ad..92ab13a 100644
--- a/perl-fig/Dist/lib/Graphics/Fig/Ellipse.pm
+++ b/perl-fig/Dist/lib/Graphics/Fig/Ellipse.pm
@@ -21,12 +21,16 @@ use strict;
 use warnings;
 use Carp;
 use Math::Trig;
-use Regexp::Common qw /number/;
 use Graphics::Fig::Color;
 use Graphics::Fig::Matrix;
 use Graphics::Fig::Parameters;
 
 #
+# RE_INT: regular expression matching an integer
+#
+my $RE_INT = '(?:(?:[-+]?)(?:[0123456789]+))';
+
+#
 # Graphics::Fig::Ellipse::generalToCanonical
 #   ( $A, $B, $C, $D, $E, $F )
 #
@@ -79,7 +83,7 @@ sub _convertCircleSubtype {
     if ($value eq "diameter") {
 	return 4;
     }
-    if ($value =~ m/^$RE{num}{int}$/) {
+    if ($value =~ m/^${RE_INT}$/) {
 	if ($value != 3 && $value != 4) {
 	    croak("${prefix}: ${value}: error: " .
 	    	    "expected integer between 3 and 4");
@@ -108,7 +112,7 @@ sub _convertEllipseSubtype {
     if ($value eq "diameters") {
 	return 2;
     }
-    if ($value =~ m/^$RE{num}{int}$/) {
+    if ($value =~ m/^${RE_INT}$/) {
 	if ($value != 1 && $value != 2) {
 	    croak("${prefix}: ${value}: error: " .
 	    	    "expected integer between 1 and 2");
diff --git a/perl-fig/Dist/lib/Graphics/Fig/Parameters.pm b/perl-fig/Dist/lib/Graphics/Fig/Parameters.pm
index 864aac2..ff8d3ba 100644
--- a/perl-fig/Dist/lib/Graphics/Fig/Parameters.pm
+++ b/perl-fig/Dist/lib/Graphics/Fig/Parameters.pm
@@ -21,7 +21,18 @@ use strict;
 use warnings;
 use Carp;
 use Math::Trig qw(deg2rad);
-use Regexp::Common qw /number/;
+
+#
+# RE_INT: regular expression matching an integer
+#
+my $RE_INT = '(?:(?:[-+]?)(?:[0123456789]+))';
+
+#
+# RE_REAL regular expression matching a floating point number
+#
+my $RE_REAL = '(?:(?i)(?:[-+]?)(?:(?=[.]?[0123456789])(?:[0123456789]*)' .
+	      '(?:(?:[.])(?:[0123456789]{0,}))?)(?:(?:[E])(?:(?:[-+]?)' .
+	      '(?:[0123456789]+))|))';
 
 my %ArrowStyles = (
     "stick"				=> [  0, 0 ],
@@ -214,7 +225,7 @@ sub convertAngle {
     my $result;
     my $temp;
 
-    if (!($value =~ m/^\s*($RE{num}{real})/)) {
+    if (!($value =~ m/^\s*($RE_REAL})/)) {
 	croak("${prefix}: error: ${value}: expected angle");
     }
     return deg2rad($value);
@@ -393,7 +404,7 @@ sub convertDepth {
     my $value   = shift;
     my $context = shift;
 
-    if (!($value =~ m/^$RE{num}{int}$/) || $value < 0 || $value > 999) {
+    if (!($value =~ m/^${RE_INT}$/) || $value < 0 || $value > 999) {
 	croak("${prefix}: error: ${value}: expected integer from 0 to 999");
     }
     return $value;
@@ -505,7 +516,7 @@ sub convertFontSize {
     my $context = shift;
     my $temp;
 
-    if (!($value =~ s/^\s*($RE{num}{real})//) && $value <= 0) {
+    if (!($value =~ s/^\s*(${RE_REAL})//) && $value <= 0) {
 	croak("${prefix}: error: ${value}: invalid font size");
     }
     return $value + 0;
@@ -526,7 +537,7 @@ sub convertInt {
     my $result;
     my $temp;
 
-    if (!($value =~ m/^\s*($RE{num}{int})/)) {
+    if (!($value =~ m/^\s*(${RE_REAL})/)) {
 	croak("${prefix}: error: ${value}: expected integer");
     }
     return $value;
@@ -571,7 +582,7 @@ sub convertLength {
     my $result;
     my $temp;
 
-    if (!($value =~ s/^\s*($RE{num}{real})//)) {
+    if (!($value =~ s/^\s*(${RE_REAL})//)) {
 	croak("${prefix}: error: ${value}: invalid number");
     }
     $result = $1;
@@ -763,7 +774,7 @@ sub convertPositiveReal {
     my $value   = shift;
     my $context = shift;
 
-    if ($value =~ s/^($RE{num}{real})$// && $value > 0) {
+    if ($value =~ s/^(${RE_REAL})$// && $value > 0) {
 	return $value;
     }
     croak("${prefix}: error: ${value}: expected positive number");
@@ -787,12 +798,12 @@ sub convertScale {
     if (ref($value) eq "ARRAY") {
 	if (scalar(@{$value}) != 2 ||
 	    !defined($u = ${$value}[0]) || !defined($v = ${$value}[1]) ||
-	    !($u =~ m/^$RE{num}{real}/) || !($v =~ m/^\s*$RE{num}{real}/)) {
+	    !($u =~ m/^${RE_REAL}/) || !($v =~ m/^\s*${RE_REAL}/)) {
 		croak("${prefix} error: expected scalar or [u, v] pair");
 	}
     } else {
 	if (!defined($value) || !ref($value) eq "" ||
-	    !($value =~ m/$RE{num}{real}/)) {
+	    !($value =~ m/${RE_REAL}/)) {
 	    croak("${prefix} error: expected scalar or [u, v] pair");
 	}
 	$u = $value;
@@ -832,7 +843,7 @@ sub convertSplineSubtype {
     if ($value eq "closed-x") {
 	return 5;
     }
-    if ($value =~ m/^\s*($RE{num}{int})/) {
+    if ($value =~ m/^\s*(${RE_INT})/) {
 	if ($value < 0 || $value > 5) {
 	    croak("${prefix}: error: ${value}: expected integer in 0..5");
 	}
@@ -891,7 +902,7 @@ sub convertTextJustification {
     if ($value eq "right") {
 	return 2;
     }
-    if (!($value =~ m/^$RE{num}{int}$/) || $value < 0 || $value > 2) {
+    if (!($value =~ m/^${RE_INT}$/) || $value < 0 || $value > 2) {
 	croak("${prefix}: error: ${value}: expected " .
 	      "left|center|right");
     }
@@ -939,7 +950,7 @@ sub convertUnits {
     my $scalar  = 1.0;
     my $temp;
 
-    if ($value =~ s/^\s*($RE{num}{real})//) {
+    if ($value =~ s/^\s*(${RE_REAL})//) {
 	$scalar = $1;
     }
     $value =~ s/^\s*//;
diff --git a/perl-fig/Dist/lib/Graphics/Fig/Polyline.pm b/perl-fig/Dist/lib/Graphics/Fig/Polyline.pm
index 570c874..77d3669 100644
--- a/perl-fig/Dist/lib/Graphics/Fig/Polyline.pm
+++ b/perl-fig/Dist/lib/Graphics/Fig/Polyline.pm
@@ -22,13 +22,19 @@ use warnings;
 use Carp;
 use Math::Trig;
 use Image::Info qw(image_info);
-use Regexp::Common qw (number);
 use Graphics::Fig::Color;
 use Graphics::Fig::Parameters;
 
 my $DEFAULT_RESOLUTION = 100.0;		# dpi
 
 #
+# RE_REAL regular expression matching a floating point number
+#
+my $RE_REAL = '(?:(?i)(?:[-+]?)(?:(?=[.]?[0123456789])(?:[0123456789]*)' .
+	      '(?:(?:[.])(?:[0123456789]{0,}))?)(?:(?:[E])(?:(?:[-+]?)' .
+	      '(?:[0123456789]+))|))';
+
+#
 # _parseResolution: parse resolution string
 #   $value: resolution
 #   $state: state structure
@@ -49,8 +55,8 @@ sub _parseResolution {
     #
     # Match against pattern.
     #
-    my $pattern = "\\s*($RE{num}{real})" .
-		  "(\\s*[/xX,]?\\s*($RE{num}{real}))?" .
+    my $pattern = "\\s*(${RE_REAL})" .
+		  "(\\s*[/xX,]?\\s*(${RE_REAL}))?" .
 		  "(\\s*(dpi|dpcm|dpm))?\\s*";
     if (defined($value) && $value =~ m/^${pattern}$/) {
 	my $x = $1;
diff --git a/perl-fig/Dist/lib/Graphics/Fig/Spline.pm b/perl-fig/Dist/lib/Graphics/Fig/Spline.pm
index 2e61c27..2a8a1ab 100644
--- a/perl-fig/Dist/lib/Graphics/Fig/Spline.pm
+++ b/perl-fig/Dist/lib/Graphics/Fig/Spline.pm
@@ -22,18 +22,24 @@ use warnings;
 use Carp;
 use Math::Trig;
 use Image::Info qw(image_info);
-use Regexp::Common qw (number);
 use Graphics::Fig::Color;
 use Graphics::Fig::Parameters;
 
 #
+# RE_REAL regular expression matching a floating point number
+#
+my $RE_REAL = '(?:(?i)(?:[-+]?)(?:(?=[.]?[0123456789])(?:[0123456789]*)' .
+	      '(?:(?:[.])(?:[0123456789]{0,}))?)(?:(?:[E])(?:(?:[-+]?)' .
+	      '(?:[0123456789]+))|))';
+
+#
 # Graphics::Fig::Spline::validateControlPoint
 #
 sub validateControlPoint {
     my $prefix = shift;
     my $value  = shift;
 
-    if (!($value =~ m/^\s*($RE{num}{real})/)) {
+    if (!($value =~ m/^\s*(${RE_REAL})/)) {
 	croak("${prefix}: expected number");
     }
     if ($value < -1.0 || $value > 1.0) {
diff --git a/perl-fig/Dist/lib/Graphics/Fig/Text.pm b/perl-fig/Dist/lib/Graphics/Fig/Text.pm
index 1176c3c..d2d625d 100644
--- a/perl-fig/Dist/lib/Graphics/Fig/Text.pm
+++ b/perl-fig/Dist/lib/Graphics/Fig/Text.pm
@@ -22,7 +22,6 @@ use warnings;
 use Carp;
 use Math::Trig;
 use Image::Info qw(image_info);
-use Regexp::Common qw (number);
 use Graphics::Fig::Color;
 use Graphics::Fig::Parameters;
 
