# 2.5. Match Something at the Start and/or the End of a Line

## Problem

Create four regular expressions. Match the word `alpha`, but only if it occurs at the very beginning of the subject text. Match the word `omega`, but only if it occurs at the very end of the subject text. Match the word `begin`, but only if it occurs at the beginning of a line. Match the word `end`, but only if it occurs at the end of a line.

## Solution

### Start of the subject

`^alpha`
 Regex options: None (“^ and \$ match at line breaks” must not be set) Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python
`\Aalpha`
 Regex options: None Regex flavors: .NET, Java, PCRE, Perl, Python, Ruby

### End of the subject

`omega\$`
 Regex options: None (“^ and \$ match at line breaks” must not be set) Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python
`omega\Z`
 Regex options: None Regex flavors: .NET, Java, PCRE, Perl, Python, Ruby

### Start of a line

`^begin`
 Regex options: ^ and \$ match at line breaks Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby

### End of a line

`end\$`
 Regex options: ^ and \$ match at line breaks Regex flavors: .NET, Java, JavaScript, PCRE, Perl, Python, Ruby

## Discussion

### Anchors and lines

The regular expression tokens `^`, `\$`, `\A`, `\Z`, and `\z` are called anchors. They do not match any characters. Instead, they match at certain positions, effectively anchoring the regular expression match at those positions.

A line is the part of the subject text that lies between the start of the subject and a line break, between two line breaks, or between ...

Get Regular Expressions Cookbook, 2nd Edition now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.