| 1 | _<start>_ and _<end>_ can take one of these forms: |
| 2 | |
| 3 | - _<number>_ |
| 4 | + |
| 5 | If _<start>_ or _<end>_ is a number, it specifies an |
| 6 | absolute line number (lines count from 1). |
| 7 | + |
| 8 | |
| 9 | - `/<regex>/` |
| 10 | + |
| 11 | This form will use the first line matching the given |
| 12 | POSIX _<regex>_. If _<start>_ is a regex, it will search from the end of |
| 13 | the previous `-L` range, if any, otherwise from the start of file. |
| 14 | If _<start>_ is `^/<regex>/`, it will search from the start of file. |
| 15 | If _<end>_ is a regex, it will search starting at the line given by |
| 16 | _<start>_. |
| 17 | + |
| 18 | |
| 19 | - `+<offset>` or `-<offset>` |
| 20 | + |
| 21 | This is only valid for _<end>_ and will specify a number |
| 22 | of lines before or after the line given by _<start>_. |
| 23 | |
| 24 | + |
| 25 | If `:<funcname>` is given in place of _<start>_ and _<end>_, it is a |
| 26 | regular expression that denotes the range from the first funcname line |
| 27 | that matches _<funcname>_, up to the next funcname line. `:<funcname>` |
| 28 | searches from the end of the previous `-L` range, if any, otherwise |
| 29 | from the start of file. `^:<funcname>` searches from the start of |
| 30 | file. The function names are determined in the same way as `git diff` |
| 31 | works out patch hunk headers (see 'Defining a custom hunk-header' |
| 32 | in linkgit:gitattributes[5]). |