| _<start>_ and _<end>_ can take one of these forms: | |
| - _<number>_ | |
| + | |
| If _<start>_ or _<end>_ is a number, it specifies an | |
| absolute line number (lines count from 1). | |
| + | |
| - `/<regex>/` | |
| + | |
| This form will use the first line matching the given | |
| POSIX _<regex>_. If _<start>_ is a regex, it will search from the end of | |
| the previous `-L` range, if any, otherwise from the start of file. | |
| If _<start>_ is `^/<regex>/`, it will search from the start of file. | |
| If _<end>_ is a regex, it will search starting at the line given by | |
| _<start>_. | |
| + | |
| - `+<offset>` or `-<offset>` | |
| + | |
| This is only valid for _<end>_ and will specify a number | |
| of lines before or after the line given by _<start>_. | |
| + | |
| If `:<funcname>` is given in place of _<start>_ and _<end>_, it is a | |
| regular expression that denotes the range from the first funcname line | |
| that matches _<funcname>_, up to the next funcname line. `:<funcname>` | |
| searches from the end of the previous `-L` range, if any, otherwise | |
| from the start of file. `^:<funcname>` searches from the start of | |
| file. The function names are determined in the same way as `git diff` | |
| works out patch hunk headers (see 'Defining a custom hunk-header' | |
| in linkgit:gitattributes[5]). |