Ruby - Regular Expressions Character and Sub-Expression Modifiers

Introduction

Modifier Description
* Match zero or more occurrences of the preceding character, and match as many as possible.
+ Match one or more occurrences of the preceding character, and match as many as possible.
*?Match zero or more occurrences of the preceding character, and match as few as possible.
+?Match one or more occurrences of the preceding character, and match as few as possible.
?Match either one or none of the preceding character.
{x} Match x occurrences of the preceding character.
{x,y}Match at least x occurrences and at most y occurrences.

Consider the following code.

Demo

"this is a test $1000 and this is a test $10".scan(/\d+/) do |x| 
 puts x 
end

Result

The regular expression \d matches any digit.

The + following \d makes \d match as many digits in a row as possible.

This means it matches both 1000 and 10, rather than just each individual digit at a time.

Demo

"this is a test $1000 and this is a test $10".scan(/\d/) do |x| 
 puts x 
end

Result