Question: I am working on open-source project on github, and I cloned a the project by doing

`git clone git@gitlab.domain.com:project.git`

Now, All works fine, I can run the project and working on it. But this was a master branch, and now
someone has created a branch called `user_interface` and added some basic HTML, now I need to pull this `user_interface` and merge it to my local working file, so I can immediately start using these additional features from that user. But, the problem is specifying how to explicitly call call that branch `user_interface` and merge it to my local copy. 

So far, I tried only `git pull`, but it pulls the original data and merges it to my local directory, so I end up with the same copy I got the last time.

Answer: 
The problem seems to be that egrep is not resetting captured groups on repeats. Not sure if this is a bug or just ambiguity in what the notation implies. If you manually repeat then it should work:

```
egrep -i "(\w)\1(\w)\2(\w)\3(\w)\4" /usr/share/dict/words

```

However, it is strange that this does not work. This does work in perl:

```
perl -lne "print if /((\w)\2){3}/" /usr/share/dict/words

```

BTW, egrep does support {m,n} syntax. This proves that:

```
egrep -i "a{2}" /usr/share/dict/words

```
On my freebsd system it did find match

```
[vaibhavc@freebsd-vai ~]$ cat acb
subbookkeeper

[vaibhavc@freebsd-vai ~]$ egrep "((\w)\2){4,}" -i acb
subbookkeeper

```