In a large bowl or the bowl of a stand mixer, add the warm milk, active dry yeast, and sugar. Mix it around and let it sit for about 5 minutes until the yeast is dissolved and slightly foamy. Mix in the eggs, egg yolks, and the softened butter. Add 1 cup of flour, followed by the salt, and then add the rest of the flour.
If making in a stand mixer: Once all of the flour is added, turn the mixer to high and knead for 7-10 minutes. If the dough is too sticky add 1 tbsp. more flour as needed only if absolutely necessary. No more than 4 tbsp. more. The dough should be smooth, elastic, and bounce back when gently pressed in.
If making by hand: Use a large wooden spoon to mix the dough in the bowl and then turn the dough out onto a lightly floured surface. Lightly dust the dough and your hands with flour and knead the dough by pushing it away with the palm of your hand, turn it 90 degrees, fold it over, and push it away again. Lightly dust your hands and the surface with more flour every so often to help keep the dough from sticking. If the dough is too sticky you can add 1 tbsp. more flour, but only if absolutely necessary and no more than 4 tbsp. more. Knead the dough for 7-10 minutes. It should be smooth, elastic, and bounce back when gently pressed in.
Shape the dough into a ball and place it in a large, lightly greased bowl. Cover the bowl with plastic wrap and let the dough rise for about 2 hours or until doubled in size. The dough will rise faster in a warm environment.
Shape the dough: Punch the dough down to release the air and divide it in half.
For braided brioche: Divide each half of the dough into 3 equal portions. Roll each portion into a long, skinny rope, about 12" long. Attach them at one end and braid the dough like you would braid hair. See post for a visual. Place the shaped dough in a 9 x 5" loaf pan and cover with plastic wrap.
For rolled brioche: Divide each half of the dough into 8 equal portions. Roll each into a ball and arrange in a 9 x 5" loaf pan and cover the pan with plastic wrap.
Let the shaped brioche rise for about 2 hours or until doubled in size. It will rise faster in a warm environment. You can also refrigerate the shaped dough overnight if desired.
When ready to bake, preheat your oven to 375°F.
Brush the tops of the loaves with the beaten egg and bake for 15 minutes. Cover the pans with aluminum foil and continue baking for 20 minutes longer.