A regex literal in Ruby is a pattern written between slashes, like /pattern/, used to match text.
Click to reveal answer
beginner
How do you write a regex literal to match the word 'cat' exactly?
You write /cat/. This matches the exact sequence of characters 'cat' anywhere in the text.
Click to reveal answer
intermediate
What does the regex literal /\d+/ match?
It matches one or more digits in a row. \d means any digit, and + means one or more times.
Click to reveal answer
intermediate
How do you include options like case-insensitive matching in a regex literal?
Add a letter after the closing slash. For example, /cat/i matches 'cat', 'Cat', or 'CAT'.
Click to reveal answer
intermediate
How do you write a regex literal to match a string that starts with 'hello'?
Use the caret symbol ^ at the start: /^hello/. This matches 'hello' only at the beginning of the text.
Click to reveal answer
What does the regex literal /ruby/ match?
AThe exact sequence 'ruby' anywhere in the text
BOnly the word 'Ruby' with capital R
CAny word ending with 'ruby'
DOnly the start of a string
✗ Incorrect
The regex literal /ruby/ matches the exact sequence 'ruby' anywhere in the text, case-sensitive.
How do you write a regex literal to match one or more digits?
A/\d+/
B/\w+/
C/\s+/
D/\D+/
✗ Incorrect
\d matches digits, and + means one or more times.
What does the i after a regex literal do? For example, /cat/i
AMatches only at the start of the string
BMakes the regex match whitespace
CMatches only digits
DMakes the match case-insensitive
✗ Incorrect
The i flag makes the regex ignore case differences.
Which regex literal matches a string that starts with 'hello'?
A/hello$/
B/^hello/
C/hello/
D/^hello$/
✗ Incorrect
The caret ^ means the start of the string.
How do you write a regex literal to match a newline character?
A/\s/
B/\t/
C/\n/
D/\r/
✗ Incorrect
\n matches a newline character.
Explain how to write a regex literal in Ruby and how to add options like case-insensitivity.
Think about the slashes and letters after them.
You got /4 concepts.
Describe how anchors like ^ and $ work inside regex literals.
Anchors fix where the match happens.
You got /3 concepts.
Practice
(1/5)
1. What is the correct way to write a regex literal in Ruby to match the word cat?
easy
A. regex('cat')
B. "cat"
C. 'cat'
D. /cat/
Solution
Step 1: Understand regex literal syntax
In Ruby, regex literals are written between slashes, like /pattern/.
Step 2: Identify the correct pattern for 'cat'
The pattern to match the word 'cat' is simply /cat/.
Final Answer:
/cat/ -> Option D
Quick Check:
Regex literal = /pattern/ [OK]
Hint: Regex literals always use slashes /pattern/ in Ruby [OK]
Common Mistakes:
Using quotes instead of slashes
Calling a non-existent regex() function
Confusing string and regex syntax
2. Which of the following is the correct regex literal to match the word Dog case-insensitively in Ruby?
easy
A. /Dog/m
B. /Dog/g
C. /Dog/i
D. /Dog/
Solution
Step 1: Identify the case-insensitive option
In Ruby regex, the i option after the slashes makes matching case-insensitive.
Step 2: Check the options given
Only /Dog/i uses the correct i flag for case-insensitive matching.
Final Answer:
/Dog/i -> Option C
Quick Check:
Case-insensitive flag = i [OK]
Hint: Use /pattern/i for case-insensitive regex in Ruby [OK]
Common Mistakes:
Using g or m flags which mean different things
Omitting the i flag for case-insensitivity
Placing flags inside the slashes
3. What will be the output of this Ruby code?
text = "Hello World"
match = text =~ /world/i
puts match
medium
A. nil
B. 6
C. 0
D. Error
Solution
Step 1: Understand the =~ operator with regex
The operator =~ returns the index of the first match or nil if no match.
Step 2: Analyze the regex and string
The regex /world/i matches 'World' ignoring case. In "Hello World", 'World' starts at index 6 (0-based).
Final Answer:
6 -> Option B
Quick Check:
Case-insensitive match index = 6 [OK]
Hint: =~ returns match start index or nil if no match [OK]
Common Mistakes:
Ignoring case-insensitive flag i
Thinking output is true/false instead of index
Assuming match starts at 0 always
4. Identify the error in this Ruby regex literal:
pattern = /hello/i/
medium
A. Extra slash at the end causes syntax error
B. Missing quotes around pattern
C. Missing i flag for case-insensitivity
D. Regex literals cannot have flags
Solution
Step 1: Check regex literal syntax
A regex literal starts and ends with a single slash. Here, there is an extra slash at the end.
Step 2: Identify the syntax error
The extra slash after /hello/i is invalid and causes a syntax error.
Final Answer:
Extra slash at the end causes syntax error -> Option A
Quick Check:
Regex literal must start and end with one slash pair [OK]
Hint: Regex literals have exactly two slashes, no extras [OK]
Common Mistakes:
Adding extra slash after regex
Confusing regex with string quotes
Thinking flags go inside slashes
5. You want to find all words starting with a or A in a string using a regex literal. Which regex literal correctly matches this requirement?
hard
A. /\b[a]\w*/i
B. /\b[A]\w*/
C. /\b[a]\w*/
D. /\b[a-z]\w*/i
Solution
Step 1: Understand the requirement
We want words starting with 'a' or 'A'. Using case-insensitive flag i simplifies matching both.
Step 2: Analyze options
/\b[a]\w*/i uses /\b[a]\w*/i which matches word boundary, then 'a' (case-insensitive), then zero or more word chars. This matches words starting with 'a' or 'A'.
Final Answer:
/\b[a]\w*/i -> Option A
Quick Check:
Use i flag to match both 'a' and 'A' easily [OK]
Hint: Use /pattern/i to match letters ignoring case [OK]
Common Mistakes:
Listing both 'a' and 'A' inside brackets without i flag
Using wrong character classes
Missing word boundary \b
Recommended
Ready to prove it?
Pass the test and this pattern moves unknownstrongwhile earning +1 Grip toward your certificate.