There can be instances where identifying all the networks from a certain provider may be too complicated or numerous, and a regular expression may be more suitable to filter all networks from a certain AS. Regular expression can be used for this.
A quick guide to regular expression
| Modifier | Purpose | 
| _ | Matches a space | 
| ^ | Indicates the start of a string | 
| $ | Indicates the end of a string | 
| [] | Matches a single character with a range of characters | 
| – | Indicates a range of numbers in brackets | 
| [^] | Excludes the characters listed in the brackets | 
| () | Nesting of search patterns uses parentheses | 
| | | Acts as an OR logic to a query | 
| . | Matches a single character including space | 
| * | Matches zero or more characters, or pattern | 
| + | Matches one or more instances of the character, or pattern | 
| ? | Matches one or no instances of the character, or pattern | 
Common regular expression modifiers
Examples of Common Regular Expressions in BGP
^$ – Local originating routes
permit ^205_ – Only routes from neighbor AS 205
permit _205$ – Only routes originating from AS205
permit _205_ – Only routes that pass through AS205
permit ^[0-9]+ [0-9]+ [0-9]+? – Routes with three or fewer AS_Path entries
Some commonly used regular expressions in the context of BGP route manipulation or filtering. Let’s break down their meanings:
.*: Matches anything. This is a wildcard expression that can match any string of characters.^$: Matches an empty AS path, indicating locally originated routes. This is useful for filtering routes that originated within the local AS.^100_: Matches routes learned from AS 100. This expression specifies that the AS path should begin with AS 100._100$: Matches routes originated in AS 100. This expression specifies that the AS path should end with AS 100._100_: Matches any instance of AS 100 in the AS path. This expression specifies that AS 100 can appear anywhere in the AS path.^[0-9]+$: Matches directly connected ASes. This expression matches AS paths consisting only of digits, indicating directly connected ASes.
Here are some additional useful BGP regular expressions for route manipulation or filtering:
- Matching specific AS paths:
^51_65100$– Matches prefixes originated from AS 65100 directly connected to AS 51.
 - Matching AS paths with specific AS prepending:
^(51_)+65100$– Matches prefixes originated from AS 65100 with AS 51 prepended one or more times.
 - Matching AS paths with a specific AS prepending pattern:
^51_([0-9]+_)+65100$– Matches prefixes originated from AS 65100 with AS 51 prepending a sequence of AS numbers one or more times.
 - Matching prefixes from specific AS neighbors:
^([0-9]+)_51_65100$– Matches prefixes originated from AS 65100, received via AS 51, and originated from one of our directly connected ASes.
 - Matching prefixes with specific community attributes:
^65100:100$– Matches prefixes tagged with community 65100:100.
 - Matching prefixes with specific local preference values:
^_100$– Matches prefixes with a local preference of 100.
 - Matching prefixes with specific next-hop addresses:
^192.0.2.1$– Matches prefixes with the next-hop address 192.0.2.1.
 
