Question: Is there a shorthand which would allow to get the value of the Promise and push it forward the promise chain without explicitly returning it?

In other words, is there a shorthand syntax for the following in bluebird:

```
.then(result => { callSomething(result); return result })

```

Answer: 
Hope this will work fine

Regex: `(?<!\()\bAPPLE\b(?![\w\s]*[\)])`

`\b` a word boundary 

`(?![\w\s]*[\)])` Negatively lookahead for `) followed by words or spaces`

`(?<!\()` Negatively lookbehind for `(`

[RegexDemo](https://regex101.com/r/e2dw0k/6)
Try this Regex (if you don't need javascript regex):

```
(?<!\()\b\w+\b(?![\)])

```

[See Explanation and try Demos](https://regex101.com/r/tbqcfi/1)

---

You may have some complex texts between `(..\n..)`. So I suggest:

1- Add `)` in beginning and `(` to end of string! wait!

2- split your text with this regex `/\)[^\(]*\b(\w+)\b[^\)]*\(/` or execute this regex, two similar ways!

3- you've extract texts out of parenthesis and you can use `/\b\w+\b/` to match your words in out of parenthesis in Original text. `/\bAPPLE\b/` is for APPLE.

for example:

```js
var mytext = "Long text (for finding APPLE word and maybe replace\n"+
"by bold APPLE or something else!)\n"+
"So if APPLE APPLE and APPLE appear out of parenthesis\n"+
"they should convert to bold APPLE !" ;   
mytext = ")" + mytext + "(" ;

var r= new RegExp(/\)[^\(]*\b(\w+)\b[^\)]*\(/g);
var res = mytext.match(r) ;

console.log(res);

//for each matched item in res,
//  find APPLE and replace with new value
//   by this regex: /\b\w+\b/g
```

in this case, you will able to ignore APPLE in `"(BANANA APPLE what? no! it's not working :P should)"` or more complex texts!